From bd0f4a71973a1ccb813643c31a0ce228bf019b3a Mon Sep 17 00:00:00 2001 From: Trevor Dunn Date: Tue, 7 Jul 2020 17:50:40 -0600 Subject: [PATCH] Let's fly! --- .gitignore | 49 ++ LICENSE.md | 9 + README.md | 84 ++- flokk_src/.gitignore | 46 ++ flokk_src/.metadata | 10 + flokk_src/.vscode/launch.json | 13 + flokk_src/README.md | 2 + flokk_src/analysis_options.yaml | 61 ++ flokk_src/assets/fonts/Lato-Black.ttf | Bin 0 -> 69484 bytes flokk_src/assets/fonts/Lato-Bold.ttf | Bin 0 -> 73316 bytes flokk_src/assets/fonts/Lato-Light.ttf | Bin 0 -> 77192 bytes flokk_src/assets/fonts/Lato-Regular.ttf | Bin 0 -> 75136 bytes flokk_src/assets/fonts/Lato-Thin.ttf | Bin 0 -> 69968 bytes flokk_src/assets/fonts/OpenSansEmoji.ttf | Bin 0 -> 561512 bytes flokk_src/assets/fonts/Quicksand-Bold.ttf | Bin 0 -> 77032 bytes flokk_src/assets/fonts/Quicksand-Light.ttf | Bin 0 -> 77104 bytes flokk_src/assets/fonts/Quicksand-Medium.ttf | Bin 0 -> 77460 bytes flokk_src/assets/fonts/Quicksand-Regular.ttf | Bin 0 -> 77416 bytes flokk_src/assets/fonts/Quicksand-SemiBold.ttf | Bin 0 -> 77388 bytes flokk_src/assets/icons/2.0x/icon-add.png | Bin 0 -> 340 bytes flokk_src/assets/icons/2.0x/icon-address.png | Bin 0 -> 1792 bytes flokk_src/assets/icons/2.0x/icon-birthday.png | Bin 0 -> 2146 bytes flokk_src/assets/icons/2.0x/icon-calendar.png | Bin 0 -> 795 bytes .../icons/2.0x/icon-checkbox-partial.png | Bin 0 -> 238 bytes .../icons/2.0x/icon-checkbox-selected.png | Bin 0 -> 909 bytes .../assets/icons/2.0x/icon-close-large.png | Bin 0 -> 669 bytes flokk_src/assets/icons/2.0x/icon-copy.png | Bin 0 -> 1372 bytes flokk_src/assets/icons/2.0x/icon-darkmode.png | Bin 0 -> 2224 bytes .../assets/icons/2.0x/icon-dashboard.png | Bin 0 -> 964 bytes .../assets/icons/2.0x/icon-dropdown-close.png | Bin 0 -> 420 bytes .../assets/icons/2.0x/icon-dropdown-open.png | Bin 0 -> 406 bytes flokk_src/assets/icons/2.0x/icon-edit.png | Bin 0 -> 1376 bytes flokk_src/assets/icons/2.0x/icon-form-add.png | Bin 0 -> 1525 bytes .../assets/icons/2.0x/icon-form-addlabel.png | Bin 0 -> 1273 bytes .../assets/icons/2.0x/icon-form-delete.png | Bin 0 -> 1632 bytes .../assets/icons/2.0x/icon-github-active.png | Bin 0 -> 1412 bytes .../assets/icons/2.0x/icon-github-empty.png | Bin 0 -> 2454 bytes flokk_src/assets/icons/2.0x/icon-label.png | Bin 0 -> 1441 bytes .../assets/icons/2.0x/icon-lightmode.png | Bin 0 -> 2702 bytes flokk_src/assets/icons/2.0x/icon-link.png | Bin 0 -> 1662 bytes flokk_src/assets/icons/2.0x/icon-linkout.png | Bin 0 -> 902 bytes flokk_src/assets/icons/2.0x/icon-mail.png | Bin 0 -> 1509 bytes flokk_src/assets/icons/2.0x/icon-next.png | Bin 0 -> 395 bytes flokk_src/assets/icons/2.0x/icon-note.png | Bin 0 -> 686 bytes flokk_src/assets/icons/2.0x/icon-phone.png | Bin 0 -> 1825 bytes flokk_src/assets/icons/2.0x/icon-previous.png | Bin 0 -> 413 bytes flokk_src/assets/icons/2.0x/icon-refresh.png | Bin 0 -> 1793 bytes .../assets/icons/2.0x/icon-relationship.png | Bin 0 -> 1820 bytes flokk_src/assets/icons/2.0x/icon-save.png | Bin 0 -> 605 bytes flokk_src/assets/icons/2.0x/icon-search.png | Bin 0 -> 1534 bytes flokk_src/assets/icons/2.0x/icon-setting.png | Bin 0 -> 2363 bytes flokk_src/assets/icons/2.0x/icon-signout.png | Bin 0 -> 905 bytes .../assets/icons/2.0x/icon-social-fork.png | Bin 0 -> 1216 bytes .../assets/icons/2.0x/icon-social-like.png | Bin 0 -> 1087 bytes .../assets/icons/2.0x/icon-social-retweet.png | Bin 0 -> 1270 bytes .../assets/icons/2.0x/icon-social-star.png | Bin 0 -> 1169 bytes .../assets/icons/2.0x/icon-star-empty.png | Bin 0 -> 1537 bytes .../assets/icons/2.0x/icon-star-filled.png | Bin 0 -> 1169 bytes flokk_src/assets/icons/2.0x/icon-trash.png | Bin 0 -> 694 bytes .../assets/icons/2.0x/icon-twitter-active.png | Bin 0 -> 1177 bytes .../assets/icons/2.0x/icon-twitter-empty.png | Bin 0 -> 2125 bytes flokk_src/assets/icons/2.0x/icon-user.png | Bin 0 -> 1574 bytes flokk_src/assets/icons/2.0x/icon-work.png | Bin 0 -> 534 bytes flokk_src/assets/icons/icon-add.png | Bin 0 -> 183 bytes flokk_src/assets/icons/icon-address.png | Bin 0 -> 850 bytes flokk_src/assets/icons/icon-birthday.png | Bin 0 -> 1059 bytes flokk_src/assets/icons/icon-calendar.png | Bin 0 -> 564 bytes .../assets/icons/icon-checkbox-partial.png | Bin 0 -> 173 bytes .../assets/icons/icon-checkbox-selected.png | Bin 0 -> 480 bytes flokk_src/assets/icons/icon-close-large.png | Bin 0 -> 427 bytes flokk_src/assets/icons/icon-copy.png | Bin 0 -> 1277 bytes flokk_src/assets/icons/icon-darkmode.png | Bin 0 -> 986 bytes flokk_src/assets/icons/icon-dashboard.png | Bin 0 -> 557 bytes .../assets/icons/icon-dropdown-close.png | Bin 0 -> 255 bytes flokk_src/assets/icons/icon-dropdown-open.png | Bin 0 -> 269 bytes flokk_src/assets/icons/icon-edit.png | Bin 0 -> 708 bytes flokk_src/assets/icons/icon-form-add.png | Bin 0 -> 762 bytes flokk_src/assets/icons/icon-form-addlabel.png | Bin 0 -> 584 bytes flokk_src/assets/icons/icon-form-delete.png | Bin 0 -> 836 bytes flokk_src/assets/icons/icon-github-active.png | Bin 0 -> 673 bytes flokk_src/assets/icons/icon-github-empty.png | Bin 0 -> 1115 bytes flokk_src/assets/icons/icon-label.png | Bin 0 -> 745 bytes flokk_src/assets/icons/icon-lightmode.png | Bin 0 -> 1151 bytes flokk_src/assets/icons/icon-link.png | Bin 0 -> 816 bytes flokk_src/assets/icons/icon-linkout.png | Bin 0 -> 506 bytes flokk_src/assets/icons/icon-mail.png | Bin 0 -> 713 bytes flokk_src/assets/icons/icon-next.png | Bin 0 -> 224 bytes flokk_src/assets/icons/icon-note.png | Bin 0 -> 514 bytes flokk_src/assets/icons/icon-phone.png | Bin 0 -> 890 bytes flokk_src/assets/icons/icon-previous.png | Bin 0 -> 200 bytes flokk_src/assets/icons/icon-refresh.png | Bin 0 -> 849 bytes flokk_src/assets/icons/icon-relationship.png | Bin 0 -> 877 bytes flokk_src/assets/icons/icon-save.png | Bin 0 -> 387 bytes flokk_src/assets/icons/icon-search.png | Bin 0 -> 778 bytes flokk_src/assets/icons/icon-setting.png | Bin 0 -> 1260 bytes flokk_src/assets/icons/icon-signout.png | Bin 0 -> 543 bytes flokk_src/assets/icons/icon-social-fork.png | Bin 0 -> 644 bytes flokk_src/assets/icons/icon-social-like.png | Bin 0 -> 536 bytes .../assets/icons/icon-social-retweet.png | Bin 0 -> 695 bytes flokk_src/assets/icons/icon-social-star.png | Bin 0 -> 580 bytes flokk_src/assets/icons/icon-star-empty.png | Bin 0 -> 781 bytes flokk_src/assets/icons/icon-star-filled.png | Bin 0 -> 580 bytes flokk_src/assets/icons/icon-trash.png | Bin 0 -> 421 bytes .../assets/icons/icon-twitter-active.png | Bin 0 -> 555 bytes flokk_src/assets/icons/icon-twitter-empty.png | Bin 0 -> 970 bytes flokk_src/assets/icons/icon-user.png | Bin 0 -> 796 bytes flokk_src/assets/icons/icon-work.png | Bin 0 -> 311 bytes flokk_src/assets/images/avatars/Bear.png | Bin 0 -> 17735 bytes flokk_src/assets/images/avatars/Camel.png | Bin 0 -> 16450 bytes flokk_src/assets/images/avatars/Fox.png | Bin 0 -> 17530 bytes flokk_src/assets/images/avatars/Giraff.png | Bin 0 -> 16649 bytes flokk_src/assets/images/avatars/Monkey.png | Bin 0 -> 18180 bytes flokk_src/assets/images/avatars/Tiger.png | Bin 0 -> 19355 bytes .../assets/images/avatars/avatar_bg0.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg1.png | Bin 0 -> 2348 bytes .../assets/images/avatars/avatar_bg2.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg3.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg4.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg5.png | Bin 0 -> 2348 bytes .../assets/images/avatars/avatar_bg6.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg7.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_bg8.png | Bin 0 -> 2347 bytes .../assets/images/avatars/avatar_fg0.png | Bin 0 -> 10179 bytes .../assets/images/avatars/avatar_fg1.png | Bin 0 -> 10148 bytes .../assets/images/avatars/avatar_fg2.png | Bin 0 -> 20420 bytes .../assets/images/avatars/avatar_fg3.png | Bin 0 -> 18755 bytes .../assets/images/avatars/avatar_fg4.png | Bin 0 -> 20358 bytes .../assets/images/avatars/avatar_fg5.png | Bin 0 -> 18693 bytes .../assets/images/birds/bird-flamingo.png | Bin 0 -> 2659 bytes .../assets/images/birds/bird-hummingbird.png | Bin 0 -> 2552 bytes flokk_src/assets/images/birds/bird-owl.png | Bin 0 -> 2974 bytes flokk_src/assets/images/birds/bird-parrot.png | Bin 0 -> 3232 bytes .../assets/images/birds/bird-peacock.png | Bin 0 -> 3246 bytes .../assets/images/birds/bird-pelican.png | Bin 0 -> 2822 bytes .../assets/images/birds/bird-penguin.png | Bin 0 -> 2373 bytes flokk_src/assets/images/birds/bird-swan.png | Bin 0 -> 2871 bytes flokk_src/assets/images/birds/bird-toucan.png | Bin 0 -> 3063 bytes .../assets/images/birds/bird-woodpecker.png | Bin 0 -> 3521 bytes .../images/empty-dashboard-favorites@2x.png | Bin 0 -> 18791 bytes .../images/empty-dashboard-github@2x.png | Bin 0 -> 19937 bytes .../empty-dashboard-recentActive@2x.png | Bin 0 -> 20169 bytes .../images/empty-dashboard-twitter@2x.png | Bin 0 -> 18460 bytes .../assets/images/empty-noresult-bg@2x.png | Bin 0 -> 4358 bytes .../assets/images/empty-noresult-owl@2x.png | Bin 0 -> 14699 bytes flokk_src/assets/images/flokk-app-logo.png | Bin 0 -> 101083 bytes flokk_src/assets/images/flokk-logo.png | Bin 0 -> 7064 bytes flokk_src/assets/images/flokk-logo.svg | 1 + flokk_src/assets/images/google-signin.png | Bin 0 -> 7009 bytes flokk_src/assets/images/onboarding-bg.png | Bin 0 -> 11134 bytes flokk_src/assets/images/onboarding-birds.png | Bin 0 -> 89265 bytes flokk_src/assets/images/onboarding-clouds.png | Bin 0 -> 9666 bytes flokk_src/assets/images/sidebar-bg.png | Bin 0 -> 6729 bytes flokk_src/assets/images/sidebar-logo.png | Bin 0 -> 10221 bytes .../lib/_internal/abstract_api_keys.dart | 15 + .../_internal/components/animated_panel.dart | 53 ++ .../_internal/components/animated_state.dart | 52 ++ .../components/clickable_extensions.dart | 16 + .../components/content_underlay.dart | 34 + .../_internal/components/delayed_builder.dart | 30 + .../components/design_grid_overlay.dart | 101 +++ .../components/fading_index_stack.dart | 44 ++ .../components/listenable_builder.dart | 10 + .../components/mouse_hover_builder.dart | 31 + .../components/multi_value_listenable.dart | 70 ++ .../components/no_glow_scroll_behavior.dart | 8 + .../_internal/components/one_line_text.dart | 13 + .../lib/_internal/components/pinned.dart | 92 +++ .../_internal/components/pinned_stack.dart | 46 ++ .../lib/_internal/components/rotation_3d.dart | 29 + .../components/scrolling_flex_view.dart | 35 + .../components/selectable_link_text.dart | 77 ++ .../components/seperated_flexibles.dart | 83 +++ .../lib/_internal/components/simple_grid.dart | 54 ++ .../components/simple_value_notifier.dart | 20 + .../lib/_internal/components/spacers.dart | 19 + .../lib/_internal/components/spacing.dart | 29 + .../components/translate_and_align.dart | 20 + flokk_src/lib/_internal/http_client.dart | 89 +++ flokk_src/lib/_internal/log.dart | 37 + flokk_src/lib/_internal/page_routes.dart | 75 ++ flokk_src/lib/_internal/pointer_blocker.dart | 21 + .../lib/_internal/universal_file/io_file.dart | 52 ++ .../universal_file/universal_file.dart | 14 + .../universal_file_locator.dart | 4 + .../_internal/universal_file/web_file.dart | 40 ++ .../universal_picker/desktop_picker.dart | 44 ++ .../universal_picker/universal_picker.dart | 21 + .../universal_picker_locator.dart | 4 + .../universal_picker/web_picker.dart | 54 ++ .../_internal/url_launcher/url_launcher.dart | 41 ++ .../url_launcher/url_launcher_io.dart | 25 + .../url_launcher/url_launcher_locator.dart | 1 + .../url_launcher/url_launcher_web.dart | 12 + .../lib/_internal/utils/build_utils.dart | 25 + .../lib/_internal/utils/color_utils.dart | 21 + flokk_src/lib/_internal/utils/date_utils.dart | 5 + flokk_src/lib/_internal/utils/path.dart | 20 + flokk_src/lib/_internal/utils/picker.dart | 27 + flokk_src/lib/_internal/utils/rest_utils.dart | 12 + .../lib/_internal/utils/string_utils.dart | 41 ++ flokk_src/lib/_internal/utils/utils.dart | 21 + flokk_src/lib/_internal/widget_view.dart | 41 ++ flokk_src/lib/api_keys.dart | 19 + flokk_src/lib/app_extensions.dart | 5 + flokk_src/lib/commands/abstract_command.dart | 90 +++ flokk_src/lib/commands/bootstrap_command.dart | 121 ++++ .../commands/check_connection_command.dart | 27 + .../contacts/delete_contact_command.dart | 52 ++ .../commands/contacts/delete_pic_command.dart | 42 ++ .../contacts/refresh_contacts_command.dart | 49 ++ .../contacts/toggle_favorite_command.dart | 39 + .../contacts/update_contact_command.dart | 72 ++ .../commands/contacts/update_pic_command.dart | 28 + .../dialogs/show_discard_warning_command.dart | 21 + .../dialogs/show_service_error_command.dart | 83 +++ .../groups/add_label_to_contact_command.dart | 32 + .../commands/groups/create_label_command.dart | 25 + .../commands/groups/delete_label_command.dart | 25 + .../refresh_contact_groups_command.dart | 70 ++ .../remove_label_from_contact_command.dart | 26 + .../commands/groups/rename_label_command.dart | 23 + .../groups/update_contact_labels_command.dart | 39 + flokk_src/lib/commands/logout_command.dart | 39 + .../commands/refresh_auth_tokens_command.dart | 31 + .../social/authenticate_twitter_command.dart | 24 + .../commands/social/poll_social_command.dart | 19 + .../social/refresh_github_command.dart | 65 ++ .../social/refresh_social_command.dart | 29 + .../social/refresh_twitter_command.dart | 50 ++ .../commands/social/test_repeat_command.dart | 38 + .../lib/commands/web_sign_in_command.dart | 38 + flokk_src/lib/data/contact_data.dart | 377 ++++++++++ flokk_src/lib/data/contact_data.g.dart | 218 ++++++ flokk_src/lib/data/countries.dart | 201 ++++++ .../lib/data/date_sortable_interface.dart | 3 + flokk_src/lib/data/git_event_data.dart | 24 + flokk_src/lib/data/git_repo_data.dart | 22 + flokk_src/lib/data/group_data.dart | 21 + flokk_src/lib/data/group_data.g.dart | 64 ++ flokk_src/lib/data/social_activity_type.dart | 5 + flokk_src/lib/data/social_contact_data.dart | 82 +++ flokk_src/lib/data/tweet_data.dart | 105 +++ flokk_src/lib/data/tweet_data.g.dart | 32 + flokk_src/lib/data/twitter_user_data.dart | 49 ++ flokk_src/lib/data/twitter_user_data.g.dart | 47 ++ flokk_src/lib/globals.dart | 7 + flokk_src/lib/main.dart | 176 +++++ flokk_src/lib/models/abstract_model.dart | 61 ++ flokk_src/lib/models/app_model.dart | 161 +++++ flokk_src/lib/models/auth_model.dart | 80 +++ flokk_src/lib/models/contacts_model.dart | 265 +++++++ flokk_src/lib/models/github_model.dart | 202 ++++++ flokk_src/lib/models/twitter_model.dart | 113 +++ .../lib/services/github_rest_service.dart | 70 ++ .../google_rest/google_rest_auth_service.dart | 111 +++ .../google_rest_contact_groups_service.dart | 147 ++++ .../google_rest_contacts_service.dart | 434 ++++++++++++ .../google_rest/google_rest_service.dart | 12 + flokk_src/lib/services/service_result.dart | 10 + .../lib/services/twitter_rest_service.dart | 65 ++ flokk_src/lib/strings.dart | 47 ++ .../buttons/base_styled_button.dart | 136 ++++ .../buttons/colored_icon_btn.dart | 70 ++ .../buttons/ok_cancel_btn_row.dart | 31 + .../buttons/primary_btn.dart | 43 ++ .../buttons/secondary_btn.dart | 84 +++ .../buttons/transparent_btn.dart | 112 +++ .../styled_components/clickable_icon_row.dart | 146 ++++ .../lib/styled_components/clickable_text.dart | 37 + .../lib/styled_components/design_grid.dart | 45 ++ .../lib/styled_components/flokk_logo.dart | 40 ++ .../styled_components/opening_divider.dart | 31 + .../styled_horizontal_scroll_view.dart | 74 ++ .../scrolling/styled_listview.dart | 120 ++++ .../scrolling/styled_scrollbar.dart | 201 ++++++ .../scrolling/styled_scrollview.dart | 65 ++ .../social/clickable_social_badges.dart | 150 ++++ .../social/git_item_renderer.dart | 184 +++++ .../social/social_badge.dart | 51 ++ .../social/social_popup_form.dart | 148 ++++ .../social/tweet_item_renderer.dart | 73 ++ .../styled_autocomplete_dropdown.dart | 230 ++++++ .../lib/styled_components/styled_card.dart | 33 + .../styled_components/styled_checkbox.dart | 50 ++ .../styled_components/styled_container.dart | 42 ++ .../lib/styled_components/styled_dialogs.dart | 192 +++++ .../styled_form_label_input.dart | 174 +++++ .../styled_components/styled_group_label.dart | 77 ++ .../lib/styled_components/styled_icons.dart | 91 +++ .../styled_components/styled_image_icon.dart | 21 + .../styled_components/styled_label_pill.dart | 66 ++ .../styled_progress_spinner.dart | 22 + .../lib/styled_components/styled_tab_bar.dart | 69 ++ .../styled_components/styled_text_input.dart | 334 +++++++++ .../styled_components/styled_user_avatar.dart | 109 +++ .../styled_components/textinput_icon_row.dart | 37 + flokk_src/lib/styles.dart | 189 +++++ flokk_src/lib/tests/button_tests.dart | 67 ++ .../lib/tests/command_testing_spike.dart | 118 ++++ flokk_src/lib/tests/native_smoke_test.dart | 76 ++ flokk_src/lib/themes.dart | 126 ++++ flokk_src/lib/todo.txt | 151 ++++ .../contact_edit/contact_edit_panel.dart | 156 ++++ .../contact_edit/contact_edit_panel_view.dart | 145 ++++ .../expanding_miniform_container.dart | 129 ++++ .../miniforms/address_miniform.dart | 98 +++ .../contact_edit/miniforms/base_miniform.dart | 224 ++++++ .../miniforms/birthday_miniform.dart | 29 + .../textfield_with_date_picker_row.dart | 104 +++ .../miniforms/email_miniform.dart | 31 + .../miniforms/events_miniform.dart | 102 +++ .../contact_edit/miniforms/job_miniform.dart | 29 + .../miniforms/label_miniform.dart | 155 ++++ .../contact_edit/miniforms/name_miniform.dart | 35 + .../miniforms/notes_miniform.dart | 35 + .../miniforms/phone_miniform.dart | 31 + .../miniforms/relationship_miniform.dart | 54 ++ .../miniforms/social_miniforms.dart | 58 ++ .../miniforms/website_miniform.dart | 31 + .../contact_info_details_card.dart | 117 +++ .../contact_info_header_card.dart | 91 +++ .../contact_info/contact_info_panel.dart | 145 ++++ .../contact_info_social_card.dart | 76 ++ .../contact_page/bulk_contact_edit_bar.dart | 85 +++ .../views/contact_page/contacts_list_row.dart | 250 +++++++ .../contacts_list_with_headers.dart | 133 ++++ .../lib/views/contact_page/contacts_page.dart | 78 ++ .../views/dashboard_page/dashboard_page.dart | 39 + .../dates/important_date_card.dart | 63 ++ .../dates/important_dates_section.dart | 56 ++ .../social/responsive_double_list.dart | 83 +++ .../social/social_activities_section.dart | 139 ++++ .../social/tabbed_list_view.dart | 194 +++++ .../top/small_contact_card.dart | 55 ++ .../top/top_contacts_section.dart | 117 +++ .../placeholder_contact_list.dart | 37 + .../placeholder_content_switcher.dart | 52 ++ .../views/empty_states/placeholder_git.dart | 41 ++ .../placeholder_important_dates.dart | 19 + .../placeholder_top_contacts.dart | 43 ++ .../empty_states/placeholder_twitter.dart | 41 ++ .../placeholder_widget_helpers.dart | 103 +++ .../views/main_scaffold/contact_panel.dart | 108 +++ .../light_dark_toggle_switch.dart | 91 +++ .../views/main_scaffold/main_scaffold.dart | 162 +++++ .../main_scaffold/main_scaffold_view.dart | 224 ++++++ .../views/main_scaffold/main_side_menu.dart | 214 ++++++ .../main_scaffold/main_side_menu_btn.dart | 96 +++ flokk_src/lib/views/search/search_bar.dart | 175 +++++ .../lib/views/search/search_bar_view.dart | 112 +++ flokk_src/lib/views/search/search_engine.dart | 189 +++++ .../views/search/search_query_results.dart | 171 +++++ .../lib/views/search/search_query_row.dart | 133 ++++ .../views/welcome/animated_bird_splash.dart | 108 +++ .../welcome/animated_bird_splash_clipper.dart | 124 ++++ flokk_src/lib/views/welcome/welcome_page.dart | 267 +++++++ .../lib/views/welcome/welcome_page_step1.dart | 57 ++ .../lib/views/welcome/welcome_page_step2.dart | 153 ++++ flokk_src/linux/.gitignore | 1 + flokk_src/linux/CMakeLists.txt | 96 +++ flokk_src/linux/flutter/.template_version | 1 + flokk_src/linux/flutter/CMakeLists.txt | 86 +++ .../flutter/generated_plugin_registrant.h | 13 + .../linux/flutter/generated_plugins.cmake | 17 + flokk_src/linux/main.cc | 6 + flokk_src/linux/my_application.cc | 42 ++ flokk_src/linux/my_application.h | 18 + flokk_src/linux/window_configuration.cc | 5 + flokk_src/linux/window_configuration.h | 15 + flokk_src/macos/.gitignore | 6 + .../macos/Flutter/Flutter-Debug.xcconfig | 2 + .../macos/Flutter/Flutter-Release.xcconfig | 2 + .../Flutter/GeneratedPluginRegistrant.swift | 20 + flokk_src/macos/Podfile | 82 +++ flokk_src/macos/Podfile.lock | 56 ++ .../macos/Runner.xcodeproj/project.pbxproj | 653 +++++++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 97 +++ .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + flokk_src/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 ++ .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 101083 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 12059 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 846 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 24963 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 2177 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 54903 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 5253 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 339 +++++++++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + flokk_src/macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 16 + flokk_src/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + flokk_src/macos/Runner/Release.entitlements | 12 + flokk_src/pubspec.lock | 664 ++++++++++++++++++ flokk_src/pubspec.yaml | 100 +++ flokk_src/web/favicon.png | Bin 0 -> 2177 bytes flokk_src/web/flokk-logo.png | Bin 0 -> 7064 bytes flokk_src/web/icons/Icon-192.png | Bin 0 -> 17093 bytes flokk_src/web/icons/Icon-512.png | Bin 0 -> 54903 bytes flokk_src/web/index.html | 36 + flokk_src/web/manifest.json | 23 + flokk_src/web/privacy.html | 345 +++++++++ flokk_src/windows/.gitignore | 17 + flokk_src/windows/AppConfiguration.props | 6 + flokk_src/windows/FlutterBuild.vcxproj | 50 ++ flokk_src/windows/Runner.sln | 82 +++ flokk_src/windows/Runner.vcxproj | 262 +++++++ flokk_src/windows/Runner.vcxproj.filters | 88 +++ flokk_src/windows/flutter/.template_version | 1 + .../flutter/generated_plugin_registrant.h | 13 + flokk_src/windows/runner/Runner.rc | 70 ++ flokk_src/windows/runner/flutter_window.cpp | 29 + flokk_src/windows/runner/flutter_window.h | 37 + flokk_src/windows/runner/main.cpp | 37 + flokk_src/windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 12014 bytes flokk_src/windows/runner/run_loop.cpp | 70 ++ flokk_src/windows/runner/run_loop.h | 40 ++ flokk_src/windows/runner/runner.exe.manifest | 20 + flokk_src/windows/runner/utils.cpp | 22 + flokk_src/windows/runner/utils.h | 8 + flokk_src/windows/runner/win32_window.cpp | 249 +++++++ flokk_src/windows/runner/win32_window.h | 96 +++ .../windows/runner/window_configuration.cpp | 7 + .../windows/runner/window_configuration.h | 18 + .../scripts/bundle_assets_and_deps.bat | 44 ++ .../windows/scripts/prepare_dependencies.bat | 5 + marketing/AppIcons/flokk_app_logo.ico | Bin 0 -> 12014 bytes marketing/AppIcons/rounded/1024x1024.png | Bin 0 -> 101083 bytes marketing/AppIcons/rounded/128x128.png | Bin 0 -> 12059 bytes marketing/AppIcons/rounded/16x16.png | Bin 0 -> 846 bytes marketing/AppIcons/rounded/256x256.png | Bin 0 -> 24963 bytes marketing/AppIcons/rounded/32x32.png | Bin 0 -> 2177 bytes marketing/AppIcons/rounded/512x512.png | Bin 0 -> 54903 bytes marketing/AppIcons/rounded/64x64.png | Bin 0 -> 5253 bytes marketing/AppIcons/square/1024x1024.png | Bin 0 -> 90518 bytes marketing/AppIcons/square/128x128.png | Bin 0 -> 11031 bytes marketing/AppIcons/square/16x16.png | Bin 0 -> 840 bytes marketing/AppIcons/square/256x256.png | Bin 0 -> 23532 bytes marketing/AppIcons/square/32x32.png | Bin 0 -> 2057 bytes marketing/AppIcons/square/512x512.png | Bin 0 -> 51236 bytes marketing/AppIcons/square/64x64.png | Bin 0 -> 4889 bytes marketing/flokk-logo-w.png | Bin 0 -> 6404 bytes marketing/flokk-logo.png | Bin 0 -> 7064 bytes marketing/flokk-logo.svg | 1 + proxy/.gitignore | 1 + proxy/app.js | 15 + proxy/package-lock.json | 41 ++ proxy/package.json | 14 + sample_data.zip | Bin 0 -> 36793 bytes snap_package/.gitignore | 2 + snap_package/build.sh | 6 + snap_package/snap/gui/flokk-contacts.desktop | 10 + snap_package/snap/gui/icon.png | Bin 0 -> 101083 bytes snap_package/snap/snapcraft.yaml | 24 + 460 files changed, 20771 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 LICENSE.md create mode 100644 flokk_src/.gitignore create mode 100644 flokk_src/.metadata create mode 100644 flokk_src/.vscode/launch.json create mode 100644 flokk_src/README.md create mode 100644 flokk_src/analysis_options.yaml create mode 100644 flokk_src/assets/fonts/Lato-Black.ttf create mode 100644 flokk_src/assets/fonts/Lato-Bold.ttf create mode 100644 flokk_src/assets/fonts/Lato-Light.ttf create mode 100644 flokk_src/assets/fonts/Lato-Regular.ttf create mode 100644 flokk_src/assets/fonts/Lato-Thin.ttf create mode 100644 flokk_src/assets/fonts/OpenSansEmoji.ttf create mode 100644 flokk_src/assets/fonts/Quicksand-Bold.ttf create mode 100644 flokk_src/assets/fonts/Quicksand-Light.ttf create mode 100644 flokk_src/assets/fonts/Quicksand-Medium.ttf create mode 100644 flokk_src/assets/fonts/Quicksand-Regular.ttf create mode 100644 flokk_src/assets/fonts/Quicksand-SemiBold.ttf create mode 100644 flokk_src/assets/icons/2.0x/icon-add.png create mode 100644 flokk_src/assets/icons/2.0x/icon-address.png create mode 100644 flokk_src/assets/icons/2.0x/icon-birthday.png create mode 100644 flokk_src/assets/icons/2.0x/icon-calendar.png create mode 100644 flokk_src/assets/icons/2.0x/icon-checkbox-partial.png create mode 100644 flokk_src/assets/icons/2.0x/icon-checkbox-selected.png create mode 100644 flokk_src/assets/icons/2.0x/icon-close-large.png create mode 100644 flokk_src/assets/icons/2.0x/icon-copy.png create mode 100644 flokk_src/assets/icons/2.0x/icon-darkmode.png create mode 100644 flokk_src/assets/icons/2.0x/icon-dashboard.png create mode 100644 flokk_src/assets/icons/2.0x/icon-dropdown-close.png create mode 100644 flokk_src/assets/icons/2.0x/icon-dropdown-open.png create mode 100644 flokk_src/assets/icons/2.0x/icon-edit.png create mode 100644 flokk_src/assets/icons/2.0x/icon-form-add.png create mode 100644 flokk_src/assets/icons/2.0x/icon-form-addlabel.png create mode 100644 flokk_src/assets/icons/2.0x/icon-form-delete.png create mode 100644 flokk_src/assets/icons/2.0x/icon-github-active.png create mode 100644 flokk_src/assets/icons/2.0x/icon-github-empty.png create mode 100644 flokk_src/assets/icons/2.0x/icon-label.png create mode 100644 flokk_src/assets/icons/2.0x/icon-lightmode.png create mode 100644 flokk_src/assets/icons/2.0x/icon-link.png create mode 100644 flokk_src/assets/icons/2.0x/icon-linkout.png create mode 100644 flokk_src/assets/icons/2.0x/icon-mail.png create mode 100644 flokk_src/assets/icons/2.0x/icon-next.png create mode 100644 flokk_src/assets/icons/2.0x/icon-note.png create mode 100644 flokk_src/assets/icons/2.0x/icon-phone.png create mode 100644 flokk_src/assets/icons/2.0x/icon-previous.png create mode 100644 flokk_src/assets/icons/2.0x/icon-refresh.png create mode 100644 flokk_src/assets/icons/2.0x/icon-relationship.png create mode 100644 flokk_src/assets/icons/2.0x/icon-save.png create mode 100644 flokk_src/assets/icons/2.0x/icon-search.png create mode 100644 flokk_src/assets/icons/2.0x/icon-setting.png create mode 100644 flokk_src/assets/icons/2.0x/icon-signout.png create mode 100644 flokk_src/assets/icons/2.0x/icon-social-fork.png create mode 100644 flokk_src/assets/icons/2.0x/icon-social-like.png create mode 100644 flokk_src/assets/icons/2.0x/icon-social-retweet.png create mode 100644 flokk_src/assets/icons/2.0x/icon-social-star.png create mode 100644 flokk_src/assets/icons/2.0x/icon-star-empty.png create mode 100644 flokk_src/assets/icons/2.0x/icon-star-filled.png create mode 100644 flokk_src/assets/icons/2.0x/icon-trash.png create mode 100644 flokk_src/assets/icons/2.0x/icon-twitter-active.png create mode 100644 flokk_src/assets/icons/2.0x/icon-twitter-empty.png create mode 100644 flokk_src/assets/icons/2.0x/icon-user.png create mode 100644 flokk_src/assets/icons/2.0x/icon-work.png create mode 100644 flokk_src/assets/icons/icon-add.png create mode 100644 flokk_src/assets/icons/icon-address.png create mode 100644 flokk_src/assets/icons/icon-birthday.png create mode 100644 flokk_src/assets/icons/icon-calendar.png create mode 100644 flokk_src/assets/icons/icon-checkbox-partial.png create mode 100644 flokk_src/assets/icons/icon-checkbox-selected.png create mode 100644 flokk_src/assets/icons/icon-close-large.png create mode 100644 flokk_src/assets/icons/icon-copy.png create mode 100644 flokk_src/assets/icons/icon-darkmode.png create mode 100644 flokk_src/assets/icons/icon-dashboard.png create mode 100644 flokk_src/assets/icons/icon-dropdown-close.png create mode 100644 flokk_src/assets/icons/icon-dropdown-open.png create mode 100644 flokk_src/assets/icons/icon-edit.png create mode 100644 flokk_src/assets/icons/icon-form-add.png create mode 100644 flokk_src/assets/icons/icon-form-addlabel.png create mode 100644 flokk_src/assets/icons/icon-form-delete.png create mode 100644 flokk_src/assets/icons/icon-github-active.png create mode 100644 flokk_src/assets/icons/icon-github-empty.png create mode 100644 flokk_src/assets/icons/icon-label.png create mode 100644 flokk_src/assets/icons/icon-lightmode.png create mode 100644 flokk_src/assets/icons/icon-link.png create mode 100644 flokk_src/assets/icons/icon-linkout.png create mode 100644 flokk_src/assets/icons/icon-mail.png create mode 100644 flokk_src/assets/icons/icon-next.png create mode 100644 flokk_src/assets/icons/icon-note.png create mode 100644 flokk_src/assets/icons/icon-phone.png create mode 100644 flokk_src/assets/icons/icon-previous.png create mode 100644 flokk_src/assets/icons/icon-refresh.png create mode 100644 flokk_src/assets/icons/icon-relationship.png create mode 100644 flokk_src/assets/icons/icon-save.png create mode 100644 flokk_src/assets/icons/icon-search.png create mode 100644 flokk_src/assets/icons/icon-setting.png create mode 100644 flokk_src/assets/icons/icon-signout.png create mode 100644 flokk_src/assets/icons/icon-social-fork.png create mode 100644 flokk_src/assets/icons/icon-social-like.png create mode 100644 flokk_src/assets/icons/icon-social-retweet.png create mode 100644 flokk_src/assets/icons/icon-social-star.png create mode 100644 flokk_src/assets/icons/icon-star-empty.png create mode 100644 flokk_src/assets/icons/icon-star-filled.png create mode 100644 flokk_src/assets/icons/icon-trash.png create mode 100644 flokk_src/assets/icons/icon-twitter-active.png create mode 100644 flokk_src/assets/icons/icon-twitter-empty.png create mode 100644 flokk_src/assets/icons/icon-user.png create mode 100644 flokk_src/assets/icons/icon-work.png create mode 100644 flokk_src/assets/images/avatars/Bear.png create mode 100644 flokk_src/assets/images/avatars/Camel.png create mode 100644 flokk_src/assets/images/avatars/Fox.png create mode 100644 flokk_src/assets/images/avatars/Giraff.png create mode 100644 flokk_src/assets/images/avatars/Monkey.png create mode 100644 flokk_src/assets/images/avatars/Tiger.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg0.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg1.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg2.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg3.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg4.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg5.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg6.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg7.png create mode 100644 flokk_src/assets/images/avatars/avatar_bg8.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg0.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg1.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg2.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg3.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg4.png create mode 100644 flokk_src/assets/images/avatars/avatar_fg5.png create mode 100644 flokk_src/assets/images/birds/bird-flamingo.png create mode 100644 flokk_src/assets/images/birds/bird-hummingbird.png create mode 100644 flokk_src/assets/images/birds/bird-owl.png create mode 100644 flokk_src/assets/images/birds/bird-parrot.png create mode 100644 flokk_src/assets/images/birds/bird-peacock.png create mode 100644 flokk_src/assets/images/birds/bird-pelican.png create mode 100644 flokk_src/assets/images/birds/bird-penguin.png create mode 100644 flokk_src/assets/images/birds/bird-swan.png create mode 100644 flokk_src/assets/images/birds/bird-toucan.png create mode 100644 flokk_src/assets/images/birds/bird-woodpecker.png create mode 100644 flokk_src/assets/images/empty-dashboard-favorites@2x.png create mode 100644 flokk_src/assets/images/empty-dashboard-github@2x.png create mode 100644 flokk_src/assets/images/empty-dashboard-recentActive@2x.png create mode 100644 flokk_src/assets/images/empty-dashboard-twitter@2x.png create mode 100644 flokk_src/assets/images/empty-noresult-bg@2x.png create mode 100644 flokk_src/assets/images/empty-noresult-owl@2x.png create mode 100644 flokk_src/assets/images/flokk-app-logo.png create mode 100644 flokk_src/assets/images/flokk-logo.png create mode 100644 flokk_src/assets/images/flokk-logo.svg create mode 100644 flokk_src/assets/images/google-signin.png create mode 100644 flokk_src/assets/images/onboarding-bg.png create mode 100644 flokk_src/assets/images/onboarding-birds.png create mode 100644 flokk_src/assets/images/onboarding-clouds.png create mode 100644 flokk_src/assets/images/sidebar-bg.png create mode 100644 flokk_src/assets/images/sidebar-logo.png create mode 100644 flokk_src/lib/_internal/abstract_api_keys.dart create mode 100644 flokk_src/lib/_internal/components/animated_panel.dart create mode 100644 flokk_src/lib/_internal/components/animated_state.dart create mode 100644 flokk_src/lib/_internal/components/clickable_extensions.dart create mode 100644 flokk_src/lib/_internal/components/content_underlay.dart create mode 100644 flokk_src/lib/_internal/components/delayed_builder.dart create mode 100644 flokk_src/lib/_internal/components/design_grid_overlay.dart create mode 100644 flokk_src/lib/_internal/components/fading_index_stack.dart create mode 100644 flokk_src/lib/_internal/components/listenable_builder.dart create mode 100644 flokk_src/lib/_internal/components/mouse_hover_builder.dart create mode 100644 flokk_src/lib/_internal/components/multi_value_listenable.dart create mode 100644 flokk_src/lib/_internal/components/no_glow_scroll_behavior.dart create mode 100644 flokk_src/lib/_internal/components/one_line_text.dart create mode 100644 flokk_src/lib/_internal/components/pinned.dart create mode 100644 flokk_src/lib/_internal/components/pinned_stack.dart create mode 100644 flokk_src/lib/_internal/components/rotation_3d.dart create mode 100644 flokk_src/lib/_internal/components/scrolling_flex_view.dart create mode 100644 flokk_src/lib/_internal/components/selectable_link_text.dart create mode 100644 flokk_src/lib/_internal/components/seperated_flexibles.dart create mode 100644 flokk_src/lib/_internal/components/simple_grid.dart create mode 100644 flokk_src/lib/_internal/components/simple_value_notifier.dart create mode 100644 flokk_src/lib/_internal/components/spacers.dart create mode 100644 flokk_src/lib/_internal/components/spacing.dart create mode 100644 flokk_src/lib/_internal/components/translate_and_align.dart create mode 100644 flokk_src/lib/_internal/http_client.dart create mode 100644 flokk_src/lib/_internal/log.dart create mode 100644 flokk_src/lib/_internal/page_routes.dart create mode 100644 flokk_src/lib/_internal/pointer_blocker.dart create mode 100644 flokk_src/lib/_internal/universal_file/io_file.dart create mode 100644 flokk_src/lib/_internal/universal_file/universal_file.dart create mode 100644 flokk_src/lib/_internal/universal_file/universal_file_locator.dart create mode 100644 flokk_src/lib/_internal/universal_file/web_file.dart create mode 100644 flokk_src/lib/_internal/universal_picker/desktop_picker.dart create mode 100644 flokk_src/lib/_internal/universal_picker/universal_picker.dart create mode 100644 flokk_src/lib/_internal/universal_picker/universal_picker_locator.dart create mode 100644 flokk_src/lib/_internal/universal_picker/web_picker.dart create mode 100644 flokk_src/lib/_internal/url_launcher/url_launcher.dart create mode 100644 flokk_src/lib/_internal/url_launcher/url_launcher_io.dart create mode 100644 flokk_src/lib/_internal/url_launcher/url_launcher_locator.dart create mode 100644 flokk_src/lib/_internal/url_launcher/url_launcher_web.dart create mode 100644 flokk_src/lib/_internal/utils/build_utils.dart create mode 100644 flokk_src/lib/_internal/utils/color_utils.dart create mode 100644 flokk_src/lib/_internal/utils/date_utils.dart create mode 100644 flokk_src/lib/_internal/utils/path.dart create mode 100644 flokk_src/lib/_internal/utils/picker.dart create mode 100644 flokk_src/lib/_internal/utils/rest_utils.dart create mode 100644 flokk_src/lib/_internal/utils/string_utils.dart create mode 100644 flokk_src/lib/_internal/utils/utils.dart create mode 100644 flokk_src/lib/_internal/widget_view.dart create mode 100644 flokk_src/lib/api_keys.dart create mode 100644 flokk_src/lib/app_extensions.dart create mode 100644 flokk_src/lib/commands/abstract_command.dart create mode 100644 flokk_src/lib/commands/bootstrap_command.dart create mode 100644 flokk_src/lib/commands/check_connection_command.dart create mode 100644 flokk_src/lib/commands/contacts/delete_contact_command.dart create mode 100644 flokk_src/lib/commands/contacts/delete_pic_command.dart create mode 100644 flokk_src/lib/commands/contacts/refresh_contacts_command.dart create mode 100644 flokk_src/lib/commands/contacts/toggle_favorite_command.dart create mode 100644 flokk_src/lib/commands/contacts/update_contact_command.dart create mode 100644 flokk_src/lib/commands/contacts/update_pic_command.dart create mode 100644 flokk_src/lib/commands/dialogs/show_discard_warning_command.dart create mode 100644 flokk_src/lib/commands/dialogs/show_service_error_command.dart create mode 100644 flokk_src/lib/commands/groups/add_label_to_contact_command.dart create mode 100644 flokk_src/lib/commands/groups/create_label_command.dart create mode 100644 flokk_src/lib/commands/groups/delete_label_command.dart create mode 100644 flokk_src/lib/commands/groups/refresh_contact_groups_command.dart create mode 100644 flokk_src/lib/commands/groups/remove_label_from_contact_command.dart create mode 100644 flokk_src/lib/commands/groups/rename_label_command.dart create mode 100644 flokk_src/lib/commands/groups/update_contact_labels_command.dart create mode 100644 flokk_src/lib/commands/logout_command.dart create mode 100644 flokk_src/lib/commands/refresh_auth_tokens_command.dart create mode 100644 flokk_src/lib/commands/social/authenticate_twitter_command.dart create mode 100644 flokk_src/lib/commands/social/poll_social_command.dart create mode 100644 flokk_src/lib/commands/social/refresh_github_command.dart create mode 100644 flokk_src/lib/commands/social/refresh_social_command.dart create mode 100644 flokk_src/lib/commands/social/refresh_twitter_command.dart create mode 100644 flokk_src/lib/commands/social/test_repeat_command.dart create mode 100644 flokk_src/lib/commands/web_sign_in_command.dart create mode 100644 flokk_src/lib/data/contact_data.dart create mode 100644 flokk_src/lib/data/contact_data.g.dart create mode 100644 flokk_src/lib/data/countries.dart create mode 100644 flokk_src/lib/data/date_sortable_interface.dart create mode 100644 flokk_src/lib/data/git_event_data.dart create mode 100644 flokk_src/lib/data/git_repo_data.dart create mode 100644 flokk_src/lib/data/group_data.dart create mode 100644 flokk_src/lib/data/group_data.g.dart create mode 100644 flokk_src/lib/data/social_activity_type.dart create mode 100644 flokk_src/lib/data/social_contact_data.dart create mode 100644 flokk_src/lib/data/tweet_data.dart create mode 100644 flokk_src/lib/data/tweet_data.g.dart create mode 100644 flokk_src/lib/data/twitter_user_data.dart create mode 100644 flokk_src/lib/data/twitter_user_data.g.dart create mode 100644 flokk_src/lib/globals.dart create mode 100644 flokk_src/lib/main.dart create mode 100644 flokk_src/lib/models/abstract_model.dart create mode 100644 flokk_src/lib/models/app_model.dart create mode 100644 flokk_src/lib/models/auth_model.dart create mode 100644 flokk_src/lib/models/contacts_model.dart create mode 100644 flokk_src/lib/models/github_model.dart create mode 100644 flokk_src/lib/models/twitter_model.dart create mode 100644 flokk_src/lib/services/github_rest_service.dart create mode 100644 flokk_src/lib/services/google_rest/google_rest_auth_service.dart create mode 100644 flokk_src/lib/services/google_rest/google_rest_contact_groups_service.dart create mode 100644 flokk_src/lib/services/google_rest/google_rest_contacts_service.dart create mode 100644 flokk_src/lib/services/google_rest/google_rest_service.dart create mode 100644 flokk_src/lib/services/service_result.dart create mode 100644 flokk_src/lib/services/twitter_rest_service.dart create mode 100644 flokk_src/lib/strings.dart create mode 100644 flokk_src/lib/styled_components/buttons/base_styled_button.dart create mode 100644 flokk_src/lib/styled_components/buttons/colored_icon_btn.dart create mode 100644 flokk_src/lib/styled_components/buttons/ok_cancel_btn_row.dart create mode 100644 flokk_src/lib/styled_components/buttons/primary_btn.dart create mode 100644 flokk_src/lib/styled_components/buttons/secondary_btn.dart create mode 100644 flokk_src/lib/styled_components/buttons/transparent_btn.dart create mode 100644 flokk_src/lib/styled_components/clickable_icon_row.dart create mode 100644 flokk_src/lib/styled_components/clickable_text.dart create mode 100644 flokk_src/lib/styled_components/design_grid.dart create mode 100644 flokk_src/lib/styled_components/flokk_logo.dart create mode 100644 flokk_src/lib/styled_components/opening_divider.dart create mode 100644 flokk_src/lib/styled_components/scrolling/styled_horizontal_scroll_view.dart create mode 100644 flokk_src/lib/styled_components/scrolling/styled_listview.dart create mode 100644 flokk_src/lib/styled_components/scrolling/styled_scrollbar.dart create mode 100644 flokk_src/lib/styled_components/scrolling/styled_scrollview.dart create mode 100644 flokk_src/lib/styled_components/social/clickable_social_badges.dart create mode 100644 flokk_src/lib/styled_components/social/git_item_renderer.dart create mode 100644 flokk_src/lib/styled_components/social/social_badge.dart create mode 100644 flokk_src/lib/styled_components/social/social_popup_form.dart create mode 100644 flokk_src/lib/styled_components/social/tweet_item_renderer.dart create mode 100644 flokk_src/lib/styled_components/styled_autocomplete_dropdown.dart create mode 100644 flokk_src/lib/styled_components/styled_card.dart create mode 100644 flokk_src/lib/styled_components/styled_checkbox.dart create mode 100644 flokk_src/lib/styled_components/styled_container.dart create mode 100644 flokk_src/lib/styled_components/styled_dialogs.dart create mode 100644 flokk_src/lib/styled_components/styled_form_label_input.dart create mode 100644 flokk_src/lib/styled_components/styled_group_label.dart create mode 100644 flokk_src/lib/styled_components/styled_icons.dart create mode 100644 flokk_src/lib/styled_components/styled_image_icon.dart create mode 100644 flokk_src/lib/styled_components/styled_label_pill.dart create mode 100644 flokk_src/lib/styled_components/styled_progress_spinner.dart create mode 100644 flokk_src/lib/styled_components/styled_tab_bar.dart create mode 100644 flokk_src/lib/styled_components/styled_text_input.dart create mode 100644 flokk_src/lib/styled_components/styled_user_avatar.dart create mode 100644 flokk_src/lib/styled_components/textinput_icon_row.dart create mode 100644 flokk_src/lib/styles.dart create mode 100644 flokk_src/lib/tests/button_tests.dart create mode 100644 flokk_src/lib/tests/command_testing_spike.dart create mode 100644 flokk_src/lib/tests/native_smoke_test.dart create mode 100644 flokk_src/lib/themes.dart create mode 100644 flokk_src/lib/todo.txt create mode 100644 flokk_src/lib/views/contact_edit/contact_edit_panel.dart create mode 100644 flokk_src/lib/views/contact_edit/contact_edit_panel_view.dart create mode 100644 flokk_src/lib/views/contact_edit/expanding_miniform_container.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/address_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/base_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/birthday_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/email_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/events_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/job_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/label_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/name_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/notes_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/phone_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/relationship_miniform.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/social_miniforms.dart create mode 100644 flokk_src/lib/views/contact_edit/miniforms/website_miniform.dart create mode 100644 flokk_src/lib/views/contact_info/contact_info_details_card.dart create mode 100644 flokk_src/lib/views/contact_info/contact_info_header_card.dart create mode 100644 flokk_src/lib/views/contact_info/contact_info_panel.dart create mode 100644 flokk_src/lib/views/contact_info/contact_info_social_card.dart create mode 100644 flokk_src/lib/views/contact_page/bulk_contact_edit_bar.dart create mode 100644 flokk_src/lib/views/contact_page/contacts_list_row.dart create mode 100644 flokk_src/lib/views/contact_page/contacts_list_with_headers.dart create mode 100644 flokk_src/lib/views/contact_page/contacts_page.dart create mode 100644 flokk_src/lib/views/dashboard_page/dashboard_page.dart create mode 100644 flokk_src/lib/views/dashboard_page/dates/important_date_card.dart create mode 100644 flokk_src/lib/views/dashboard_page/dates/important_dates_section.dart create mode 100644 flokk_src/lib/views/dashboard_page/social/responsive_double_list.dart create mode 100644 flokk_src/lib/views/dashboard_page/social/social_activities_section.dart create mode 100644 flokk_src/lib/views/dashboard_page/social/tabbed_list_view.dart create mode 100644 flokk_src/lib/views/dashboard_page/top/small_contact_card.dart create mode 100644 flokk_src/lib/views/dashboard_page/top/top_contacts_section.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_contact_list.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_content_switcher.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_git.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_important_dates.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_top_contacts.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_twitter.dart create mode 100644 flokk_src/lib/views/empty_states/placeholder_widget_helpers.dart create mode 100644 flokk_src/lib/views/main_scaffold/contact_panel.dart create mode 100644 flokk_src/lib/views/main_scaffold/light_dark_toggle_switch.dart create mode 100644 flokk_src/lib/views/main_scaffold/main_scaffold.dart create mode 100644 flokk_src/lib/views/main_scaffold/main_scaffold_view.dart create mode 100644 flokk_src/lib/views/main_scaffold/main_side_menu.dart create mode 100644 flokk_src/lib/views/main_scaffold/main_side_menu_btn.dart create mode 100644 flokk_src/lib/views/search/search_bar.dart create mode 100644 flokk_src/lib/views/search/search_bar_view.dart create mode 100644 flokk_src/lib/views/search/search_engine.dart create mode 100644 flokk_src/lib/views/search/search_query_results.dart create mode 100644 flokk_src/lib/views/search/search_query_row.dart create mode 100644 flokk_src/lib/views/welcome/animated_bird_splash.dart create mode 100644 flokk_src/lib/views/welcome/animated_bird_splash_clipper.dart create mode 100644 flokk_src/lib/views/welcome/welcome_page.dart create mode 100644 flokk_src/lib/views/welcome/welcome_page_step1.dart create mode 100644 flokk_src/lib/views/welcome/welcome_page_step2.dart create mode 100644 flokk_src/linux/.gitignore create mode 100644 flokk_src/linux/CMakeLists.txt create mode 100644 flokk_src/linux/flutter/.template_version create mode 100644 flokk_src/linux/flutter/CMakeLists.txt create mode 100644 flokk_src/linux/flutter/generated_plugin_registrant.h create mode 100644 flokk_src/linux/flutter/generated_plugins.cmake create mode 100644 flokk_src/linux/main.cc create mode 100644 flokk_src/linux/my_application.cc create mode 100644 flokk_src/linux/my_application.h create mode 100644 flokk_src/linux/window_configuration.cc create mode 100644 flokk_src/linux/window_configuration.h create mode 100644 flokk_src/macos/.gitignore create mode 100644 flokk_src/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 flokk_src/macos/Flutter/Flutter-Release.xcconfig create mode 100644 flokk_src/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 flokk_src/macos/Podfile create mode 100644 flokk_src/macos/Podfile.lock create mode 100644 flokk_src/macos/Runner.xcodeproj/project.pbxproj create mode 100644 flokk_src/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flokk_src/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 flokk_src/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 flokk_src/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 flokk_src/macos/Runner/AppDelegate.swift create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 flokk_src/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 flokk_src/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 flokk_src/macos/Runner/Configs/Debug.xcconfig create mode 100644 flokk_src/macos/Runner/Configs/Release.xcconfig create mode 100644 flokk_src/macos/Runner/Configs/Warnings.xcconfig create mode 100644 flokk_src/macos/Runner/DebugProfile.entitlements create mode 100644 flokk_src/macos/Runner/Info.plist create mode 100644 flokk_src/macos/Runner/MainFlutterWindow.swift create mode 100644 flokk_src/macos/Runner/Release.entitlements create mode 100644 flokk_src/pubspec.lock create mode 100644 flokk_src/pubspec.yaml create mode 100644 flokk_src/web/favicon.png create mode 100644 flokk_src/web/flokk-logo.png create mode 100644 flokk_src/web/icons/Icon-192.png create mode 100644 flokk_src/web/icons/Icon-512.png create mode 100644 flokk_src/web/index.html create mode 100644 flokk_src/web/manifest.json create mode 100644 flokk_src/web/privacy.html create mode 100644 flokk_src/windows/.gitignore create mode 100644 flokk_src/windows/AppConfiguration.props create mode 100644 flokk_src/windows/FlutterBuild.vcxproj create mode 100644 flokk_src/windows/Runner.sln create mode 100644 flokk_src/windows/Runner.vcxproj create mode 100644 flokk_src/windows/Runner.vcxproj.filters create mode 100644 flokk_src/windows/flutter/.template_version create mode 100644 flokk_src/windows/flutter/generated_plugin_registrant.h create mode 100644 flokk_src/windows/runner/Runner.rc create mode 100644 flokk_src/windows/runner/flutter_window.cpp create mode 100644 flokk_src/windows/runner/flutter_window.h create mode 100644 flokk_src/windows/runner/main.cpp create mode 100644 flokk_src/windows/runner/resource.h create mode 100644 flokk_src/windows/runner/resources/app_icon.ico create mode 100644 flokk_src/windows/runner/run_loop.cpp create mode 100644 flokk_src/windows/runner/run_loop.h create mode 100644 flokk_src/windows/runner/runner.exe.manifest create mode 100644 flokk_src/windows/runner/utils.cpp create mode 100644 flokk_src/windows/runner/utils.h create mode 100644 flokk_src/windows/runner/win32_window.cpp create mode 100644 flokk_src/windows/runner/win32_window.h create mode 100644 flokk_src/windows/runner/window_configuration.cpp create mode 100644 flokk_src/windows/runner/window_configuration.h create mode 100644 flokk_src/windows/scripts/bundle_assets_and_deps.bat create mode 100644 flokk_src/windows/scripts/prepare_dependencies.bat create mode 100644 marketing/AppIcons/flokk_app_logo.ico create mode 100644 marketing/AppIcons/rounded/1024x1024.png create mode 100644 marketing/AppIcons/rounded/128x128.png create mode 100644 marketing/AppIcons/rounded/16x16.png create mode 100644 marketing/AppIcons/rounded/256x256.png create mode 100644 marketing/AppIcons/rounded/32x32.png create mode 100644 marketing/AppIcons/rounded/512x512.png create mode 100644 marketing/AppIcons/rounded/64x64.png create mode 100644 marketing/AppIcons/square/1024x1024.png create mode 100644 marketing/AppIcons/square/128x128.png create mode 100644 marketing/AppIcons/square/16x16.png create mode 100644 marketing/AppIcons/square/256x256.png create mode 100644 marketing/AppIcons/square/32x32.png create mode 100644 marketing/AppIcons/square/512x512.png create mode 100644 marketing/AppIcons/square/64x64.png create mode 100644 marketing/flokk-logo-w.png create mode 100644 marketing/flokk-logo.png create mode 100644 marketing/flokk-logo.svg create mode 100644 proxy/.gitignore create mode 100644 proxy/app.js create mode 100644 proxy/package-lock.json create mode 100644 proxy/package.json create mode 100644 sample_data.zip create mode 100644 snap_package/.gitignore create mode 100644 snap_package/build.sh create mode 100644 snap_package/snap/gui/flokk-contacts.desktop create mode 100644 snap_package/snap/gui/icon.png create mode 100644 snap_package/snap/snapcraft.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00d9b50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# Desktop & Web related +**/GeneratedPlugins.props +**/generated_plugin_registrant.cc +**/generated_plugins.mk +**/generated_plugin_registrant.dart + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + +# Sample data +sample_data +spikes/contacts_creator/*.csv + +# Firebase +/.firebase +.firebaserc +firebase.json diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..4cb000a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +Copyright 2020 gskinner.com, inc. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/README.md b/README.md index 5b572d0..27402f1 100644 --- a/README.md +++ b/README.md @@ -1 +1,83 @@ -Chirp? +# Flokk +A fresh and modern Google Contacts manager that integrates with GitHub and Twitter. + +## Demo Builds +- Web: https://flokk.app +- Linux: https://snapcraft.io/flokk-contacts +- macOS: https://flokk.app/macos/Flokk_Contacts_v1.0.1.dmg +- Windows: https://flokk.app/windows/Flokk_Contacts_v1.0.1.zip + +## Getting Set Up + +### 1. Flutter + +- Follow the install instructions here: https://flutter.dev/docs/get-started/install + - Desktop-specific info: https://flutter.dev/desktop, https://github.com/flutter/flutter/wiki/Desktop-shells +- Flokk was built on the bleeding edge of Flutter, so make sure to use their the `master` branch in their git repo and checkout commit `9c3f0faa6d`. + - We're aiming to upgrade to an official Flutter version soon to make this easier. + +### 2. Add Required API Keys + +Google Sign In is required in order to run the app (unless running with [cached data](#running-with-cached-data)). You will need to provide your own Google API keys in the `/lib/api_keys.dart` file. Follow the instructions here to create them: +- https://developers.google.com/people/v1/how-tos/authorizing#APIKey + +To optionally fetch social data for your contacts, add your own API keys for those as well: +- Twitter: https://developer.twitter.com/en/docs/basics/getting-started +- GitHub: https://developer.github.com/v3/guides/basics-of-authentication/ + +Although the Twitter and GitHub keys are optional, they are recommended. Otherwise the app will not be able to fetch tweets and GitHub calls will be subject to a rate limit (https://developer.github.com/v3/#rate-limiting). + +### Web Builds +If you're building for web: +- Edit `/web/index.html` to include your web credentials (web client Id) ``. +- This is needed for Google Sign In to work on web builds. For more details, see https://pub.dev/packages/google_sign_in_web + +#### CORS Proxy +For Twitter support to work on web builds, it is necessary to use a CORS proxy. You can set up a proxy on your own domain, or else run a localhost instance with `proxy/app.js`. + +If setting up on your domain, ensure you have enabled https (https://letsencrypt.org/). Once you have the security certificate, edit `proxy/app.js` and insert your cert and key. This is not necessary if running a localhost instance. + +After the proxy is set up, edit `services/twitter_rest_service.dart` to point to your running proxy instance (e.g. "https://my-proxy.com", "http://localhost", etc.) + +For more information, see https://github.com/Rob--W/cors-anywhere + +## Running With Cached Data +If you simply want to see the app running, it is possible to run the app using cached data: +- Run the app at least once, to create your data folders +- Extract the _contents_ of /sample_data.zip to the newly created data folder on your machine: + - Windows: \Users\\[USER]\AppData\Roaming\Flokk Contacts + - Linux: $HOME/.local/share/flokk-contacts + - macOS: /Users/[USER]/Library/Containers/app.flokk/Data/Library/Application Support/app.flokk +- Overwrite any files that are there +- Launch the app again, it should now sign in, and load with existing data. +- If you sign out, your saved data will be wiped and you will need to repeat the process. + +Note: This is meant as a 'read-only' mode so you can quickly explore all the widgets and features of the app. Updates, deletes, etc are not expected to work. + +## Test & Build +Debug Builds +- Use `flutter run -d DEVICE_ID` to deploy a test build +- To get a list of available DEVICE_ID, use `flutter run` +- Typical values are: `windows`, `linux`, `macos`, `chrome` +- Add `--release` to deploy an optimized build + +Release Builds +- Use `flutter build PACKAGE_TYPE` to build a release package +- To get a list of available PACKAGE_TYPE, use `flutter build` +- Typical values are `windows`, `linux`, `apk`, `ios` +- In order to build the snap package one must first run `lxd init` on your system if you haven't already. + ** Then execute `build.sh` to create the snap from the flutter build + +Force Log In +- The app uses a `kForceWebLogin` flag to force release builds to skip the oauth screen. +- Add `--dart-define=flokk.forceWebLogin=true` to your build command to enable +- E.g. `flutter build web --dart-define=flokk.forceWebLogin=true` + +## Desktop Runners +The /linux and /windows folders contain modifications and should not be upgraded to upstream without first verifying that each plugin works correctly with the new upstream code and any modifications are made. + +Since the desktop runners for this project may contain modifications, upgrades should not be made without first verifying that every plugin and embedder can be upgraded and that they remain compatible after an upgrade. Hopefully this will not be as much of an issue once Flutter's desktop support becomes more mature. + +-- + +Happy Flokking! diff --git a/flokk_src/.gitignore b/flokk_src/.gitignore new file mode 100644 index 0000000..96ed2b3 --- /dev/null +++ b/flokk_src/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ +deploy/ +.firebase/ + +# Web related +lib/generated_plugin_registrant.dart + +# Generated files +lib/hidden_api_keys.dart +linux/flutter/generated_plugins.mk + +# Symbolication related +app.*.symbols + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages diff --git a/flokk_src/.metadata b/flokk_src/.metadata new file mode 100644 index 0000000..b4e9f8a --- /dev/null +++ b/flokk_src/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: ec9813a5005f4c3e75a5a9f42ce53ae280959085 + channel: master + +project_type: app diff --git a/flokk_src/.vscode/launch.json b/flokk_src/.vscode/launch.json new file mode 100644 index 0000000..3287bb6 --- /dev/null +++ b/flokk_src/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Flutter", + "request": "launch", + "type": "dart" + } + ] +} \ No newline at end of file diff --git a/flokk_src/README.md b/flokk_src/README.md new file mode 100644 index 0000000..e8e427e --- /dev/null +++ b/flokk_src/README.md @@ -0,0 +1,2 @@ +See the README on the main git repo. + \ No newline at end of file diff --git a/flokk_src/analysis_options.yaml b/flokk_src/analysis_options.yaml new file mode 100644 index 0000000..034f400 --- /dev/null +++ b/flokk_src/analysis_options.yaml @@ -0,0 +1,61 @@ + + +exclude: + - "strings.dart" + +analyzer: + strong-mode: + implicit-dynamic: true + implicit-casts: true + errors: + unused_import: warning + unused_local_variable: warning + dead_code: warning + enable-experiment: + - extension-methods + +# Lint rules and documentation, see http://dart-lang.github.io/linter/lints +linter: + rules: + - annotate_overrides + #- avoid_unused_constructor_parameters + - await_only_futures + - camel_case_types + - cancel_subscriptions + - directives_ordering + - empty_catches + - empty_statements + - hash_and_equals + - iterable_contains_unrelated_type + - list_remove_unrelated_type + - no_adjacent_strings_in_list + - no_duplicate_case_values + #- non_constant_identifier_names + - only_throw_errors + - overridden_fields + - prefer_collection_literals + - prefer_conditional_assignment + - prefer_contains + - prefer_final_fields + #- prefer_final_locals + - prefer_initializing_formals + - prefer_interpolation_to_compose_strings + - prefer_is_empty + - prefer_is_not_empty + - prefer_typing_uninitialized_variables + - recursive_getters + - slash_for_doc_comments + - test_types_in_equals + - throw_in_finally + - type_init_formals + #- unawaited_futures + - unnecessary_brace_in_string_interps + - unnecessary_getters_setters + - unnecessary_lambdas + - unnecessary_new + - unnecessary_null_aware_assignments + - unnecessary_statements + - unnecessary_this + - unrelated_type_equality_checks + - use_rethrow_when_possible + - valid_regexps \ No newline at end of file diff --git a/flokk_src/assets/fonts/Lato-Black.ttf b/flokk_src/assets/fonts/Lato-Black.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a4a924f9bd1b28c44981ac4ece2fb625a60c2da3 GIT binary patch literal 69484 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 M$8RP7dXDOU1KQ%3=>Px# literal 0 HcmV?d00001 diff --git a/flokk_src/assets/fonts/Lato-Light.ttf b/flokk_src/assets/fonts/Lato-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9c0a7053621b248d8b6589dcaa0854ef49c33985 GIT binary patch literal 77192 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 z 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 U$W?y#kn_3J31@K6Y>Y|#e~5^r5YS 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 ojk(g9PAtLVP?*9aY%s*7-^F-90;3|7E6 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

FpM0k7!$XuTDosBeYY{|%I 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

J7Ee!X-|DF@eOeqO1x4g%GG$_` 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

U=c)L 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�jvedMS@|Q;K!EY@D z-=`K$e4HkZcNtYSrA#h0D@-`(U(uN}s+{(UUmN?(x{sC-D1A`wdTeiqq1s`+`K5)$6gM zjaHA(;!OCp)RUP>Z%%%@)@Rk^Hx8*NuiC$-ILo24xMCBFEjE=>sg|o^Eb->pDaDDg zE{oohU9z*jeqHUrLAjcAZS9;z^|5B3IYy;WCEFJCnl|~~_*{=CH~v_<$CW{k9Wo$S z8>5etD!k^{ShHItaqFGx@!w>0gIx{GEzjZ&5;>m-K6VR00u~ly4vfh~Kfvo36uX>^ z0T@9MEw-Qz6ciKJkrP|+B~HrIQ%egqhS=c9lys`6X~$0B z|G#_s71RR_Iz6^WLCFu481)FPtg8BI!?3#MqSC(kxj(L*JqRUIm9MT{`|4UgFFXr` zcP~x7%kHsfO4N+~<2UhlFoDnc`xBd}I4Liq-fJ5)tf6tF-jtlSva+SRroXQ6=e5l( zYu7asyVc1zU*s>daj?pnfoI|b%*=7qWW99JKuT!A&8!Y~@xY*n9KyghjvvyL5zYc7 z{dc>p{sX>c9-fPfm)U=xt(O$sW$bcZKS!BusvW2OqpP4lNZ=c}% zpZbh_7T*Y>e=?12l@7JS;|U}*4q#sdM_B1-8k!@zdHtb1{aE}Ko{e|WFW?Wt^YNw3 zl{&TF?a#`IADru%cvo3L2B`}p>WjDWkF!5RT};3+0hl8)Mqq7&LmSY!h@K^YA4zx) zM>pV469x>>RnapC@R<4yF6p*zf4LVeWzMeahD*>=Z+ZLQ@N94S{&n5ZNybs`#k0}L zZtK{e@2S9kw9Z`wOn{3O_v|lnjAuhCpjh5 zYb4AYB19N}WSqmOMW8mzAeb@$!6Gt%K{!1jA7K0o!x+rN!3PdWl2Hyhw~sCvWCj7r zO>!2WB^>=n4y+=x321eIc{3p!FPhl6cu7O!;(3e~-EVf_&%!U_t>5_i_v|T=ROkzb z4?t^N`AR8B5j5V_&;u`1x|DWTYQiYGRZ{5JmhDf-5?dNtO8s>gTf6t+WT@J#ak~7f6Q`W>fcr z^JYctQ-qEQ;@A1}>`I`qlA#x2?gTcuD~FK8z&_=b!e}N_Z_wZZpC`bqfTe~%?{aiE z;4kyXhknwDH3qp&?4-W#_u;Fflkh#x-r3aWRBrejemy<0qNwQ2r6r6Gi{cgFoQI(i zo#-C?^{W9HI@LJU<3WFY1zUe(DQ4~M=K92fe7fO9Zmz(P;B zS{kz4!HyeX0R&bIpXH*3nVihk{s7Z5Z&3ZBMfC#~(7y2V$79gDHCds|vQZ6&dc(Nn zv1s@?yaT2@cIw28DZToQpVYI*bk;I>!IDFZ7u{&4`i?|P zUM?MP8*5vbnb4e!9>nLueR^3+Ys&vReg8pSxh+%YkV@#hUQ;IY>ow(WGJZw(f#h>0 z_a&^~y9AWx{Ai@|~y2$e7Lq4qtFq5Mx z4M={d$#TXbwJsQ4oZxW8f!-=Cahlz7ie)66oKw+tg~RdDJT^veiF+DvSzl9Fz9S)y zUaT`KtW3H$B|A`4J9zcO&%P6yzH%f=ICkt%lF@iH_lXH(TDf;a(i-{9QD@gJY^Y8% zunBwhX1PS86tiNUWoS^tLMn+WOQtn>EO^>mCz@KP;f;l^TqWKNBH4Gzi{g{kY*@H_ z{K3&vV%l5tP#$`7>hxFeCYay~s%~6BJ-2WA7$2Z>(91Qd)Iks5_tb`ax{&#W61@sC zRUiZkCkAOCZ(o4`t<5X z90d92uW?E9x+jm^*ND!+rs?I$dhylmQ=9S2r(ed$22FUV`+~|5sPq-I^4;_|kn&Oj z5}{nM^wysK#=XnWXM^v_^C+9?tK}ZYHt2`WV3#)DvG7Pv_nNO0OqaB!zs9;DVOmv49Kk3l7^NE~E*uLPjDSf<-=r zNGSl5%>t<+$Rp=~&Ad*r39zo~@(M@mLJWw&zBkfY@bR>D9#>{&qJq}5T18y)u!^{3 z!#YsERize~Er`tyELN$KK#DiJYo$stcfrBg;a6rIK25WscIL3tXjZFry3~vyzRDOz z;$43obMB!ek?XmUAX2whvZ?iGyUwyqummg zzRe_|>38L3O-BT?6!ff&<81sh&%jSS)by6EelN%^0}NqlAsPk0^A=!;cniph zcni?|{`QZp`TvpgfF1u6hXP*^e*#A%?gYY*-+m{IIpDpqXSi6PYZ9Th5%CK!z6qiN z#O*6#@3{WxAzC)Lsj?|~Mt{8L%$Y}kVYlb^_e{5{74u{7b>neGg|(qP`Y(&_yobJm zvKhNjcH{)+j|$QW6S**_1K(V8XSvS>Qj&6WlTrf8NB+G?lo-g%8p_mT38=X-An`vnYR&y#82`f293eZ1loR=~fT19LMG%!>N5|Ul4-gI>Ob9-~ zmK>QE48lZ8h*Ec)HydmeJ0mj*mkgfRBgw&@gaPcwlJhGeH{cQyz8-K2JIfsfVJ6EPkKcNwO*E0)Fur}y^7#vvEyK&|-fSA5QIL{0e$pZI zrY&b^>%4knC=R41u2GEz=}GY^T|-`yAT*(JaD7cA+;;lpM3l}IkADSav{&C*47*?= zehXzxB!8#iivNPIB9-t>-?($<#trx1ziDvq+)@yBEcN%Pz|K+95lvuiX+r%gXU?2O zOB``7mz>m^d?(cOUPKBY-|&gk_-&Mann-rRAB@jBe2PB+C{BZSXqX)&G?>f)@&)h) z)*l{>NJeOEn1(^a6879t5}C&Ip-^3@p0*VA?Uq?mH1NT`)z9^K`1zVqU6a3G)3v&~ zYehGFihhhf5UOu4=svM5P!q_^?R_jcxMSI%`F%1={ptAo71bqOx>X5d7I8Nl#V>LF zz&kk{P7+-zVx5;T24K|#buD0jz{v|)0R^d9Fo^?;CXqDoMk5iS53<4JU+&jyi!M8J z$k0)v8)xEuZ{u+Lb^Lk%-kWr%NB15&=t{gM1NWjlUNC42LOdaB`9ahYsanfp$2W z2%dSDf$qvf=n3>9dINoczC_m$reu_j@=|`Pgz7;xP_5K7YCg4+0xl_lgAfXYJOu08 z|K*K0LQh1Z5g#8B&W0e{Ok~2zE!o_7J7^E`h`n`ldl+7j+#-p94vo?(k$XYWElR(@ zn@HV2G+Zc&)DsFKNjhG1mJw+KE5wU7$LQ^>S57?ZBPZGs!l*MnsWw<5kH#0?3h#hI zFzCT#3i))DWQ^n;sV0~TkLD#bw8P>_M=wM~?jb33Z!`l^RHR&YyilwlMii}2q#P)f zyfJz^nn&(_2O!W86JiLtLepcSG(V{X0OeK#J9`&m68*G}CW5UT5;szLAq6qn4^@mO zt?Ov4P(O%B_*%f{x~ z3Zw?dG=S62VylTsiXEi4xK6wjCw=lRvc~xdR!4HM$Y4yv zD@$#rk!4mB&vuv11$k_+lvN2y%y}gi69x9!0&#MKS>sK2w|!w6RB3IZKXy5kCN&4; zjLEt2X-14{aIwXlMwjc&U44N@$eo!3=0X@1rT53F&4Y4v+TY4zyA%~9qBk7DH0Y30 zivgdG8RQQZS&a0%$qgoJagv|*xk|Krr3=#M-~rC2Xve)`Z!%cA4>HAb!=SC!srRD#7Hhs8EREVrBOQi&@gBZHU4Wb-nUMXiamW-F8qu=xT3 ztG(j^jxz@!xm~GL#5iMR3b+(bwL2hFmo;a0QLJ2Wp@aN@ca%$I4`uY`M&lj!-US=(48HFNTbuwnar|xr~#>#LA_n>xKFG zg<`Of!|S0ixiZ%oN10WIY^BQTu;*tI`Oq zwig#?+jH&i#~@b+v9FDQaa z#uPF|)|lKPt}s`juost^%>cPJk|wJ- z+0GFWRzcaChjkjb^dtrx)d*~yAbOYkH8I&eXr@FQZ|{k0(_dLWIFJ|X@LKcrS^fO@ z8LNVhw^h`YlmUyxXHU?Dw#?Tg+RPdpqCV6lJDoEInax(6-79Gyy=BGeICoBx!^Y_Q z1PW8|$7w;IM{Dy)in`P#SmHfxU03KWwge^Ec@ce%-xdFj-w6EPaik<)o z*SAEUiGBjEff_jldL()r01YD(GLS=r76CR{F@lf-l$FUOniWfd%Yk&14VuYt_8{2r z0wxyWV+pZ9T{sdAK{Rm5(isgDi6gNDW-HL=QB?>R5pyI4ykXh}!y!bT8#KP|xF-_d zx4)5lhz-V;X5?fKpL{?7cEV@)$RO*QrGvhtrRDqK#m$=1@maLBCe{^%LN zQZZY^D)a^5p&iLH7)hBGjA^kPZIu~HW%!K@r3`FF6>}<0nMB2?(>PgIqs-3ADLZE_ zlh9gRS<#F=%@sJkqFGG&Gw?!-K1Xk}!H)%vwrg|rR;xZoYwrl@Y-g-GnDZ_Apw@Py z7hHs}-tvY;A0Tl9ddmg7E|N@V$D{u+2HGwZAQZ)9B&hU%S#xNdA&{c*E$KR---+P# z{`D~?B^O7%kSx{nmC|^IaZ+NoE3cEMN_iw^HThz3fq{`wV!RlfuyJLq#LF=rDchA% zYaj~6(|Qs`&&ntcKigapes@?!GhC9H2P-oC-_?;Ok{^1y*eHaI_|q9;y+z+&Z`I@L zGbC{754YBO(x`gU$Ug|-fAl9AK^hYK-$I1XRfE5h%;xprDRvBKG>X9JkXs-tyl`#< zBbn6+1DOSvFL68_A?S1h(Whf!T z0$-gWRwv2+f-t#&f)Q*D68@GuPBMG*hRJd-{;Cm~G*bMVORrPNaAO#3eCHu^7)<~|`$6s3!=$&-n zv9HhJS4!@^+ly5?bj0`l;LJ4}pZqH_WaLgc=C6;hDWEqGA1zmd&a%fEA zGjOb6#^1apHEHmt!^|2Me;dPi6|xL0V0Dq%6o7CW419#Njsk&9qOl;t5`jdH1`acXJfNG? z5m4`c02Qw=@e;U@q&xtfY`KVz4$pzd1eY(qSn!J_Ol}I|^pU)Q4>?^In2)@hgZMDV z`LY8haPkeaJK3#~h#-?e_F^3yIPkj{y(bZVe<$8sp|yT^Dgt(c27l`^YLrp}b-#=N zU1MVK_rQl1pnl*(tETp11n|E-f59T%1t6t{A{u%g;IFpG0RBcLz~87wOsT=BzV^7n zc45?CXjx;A9czz1zJ6`*I{q^9(tOWtuTR-J|K6%93J*g|$9eS5lw4~UcbYD4TVbKg zUX|ibP^*dpcZrj{?156VX;42$g57rgOl~#Mxei@&bzBm6z!6i~)od6v#NoIxCC1qm z=*Na$u|7(fE;q(-wa4TtH>(wJst&YMfIO=2>p@xN=Ce{$2)7%>fMr@!&*!^PY9poEE7!zu zl@;ENJMQh(jYWO>EM2`NF>%C+wY?BkRC@P}4I2Fn2BjJt%JgCo%S2jxrYR+!qvDd> zU=y&=8jF^yl#V=!GSQ+?Xsl+n(&17{q{?TlGN77b^3VhoxS4d*_06=lz`voav6- z?yLov>+P%&S(ITP{=0keuInqi1@p`jqd715+ek?U_3I@{lJVCl)$V6!;>kK5-Az9WZ)?d4M;1w~<3_JrOW7N+R0`{*-kMLIk{Eg$9&>9+z0vXB ziVj8JTP$KefoT3E;C=IazGpY|STO9a8?%@P%QO8g<>5<1%Ued2!MgQAMq+%{@d0Ed z8lbV;XTlO?*TAiQSw#iL^;(-wIzw!*)>y2u`mC&rGb9GGCRz2i{*i?V(shQ$z|sb{ zT8Hgg+mXklkQM=27ro_PpqI zupjcRs2#}=Bmis_EaS6$M2C{-QSv7E0c7d;0U|9chs<&?yAgI6Az+1>&E+=%dlDpA zb6nA{?+-E9rE?nr@9w~(JF(Y9aP!VM1amvk`c6c>Gjj0G#CHsjKTF9G#I2k{@OH{? zV<;K~D*V(GNBAJs1)M9MqWW2N;f2(*1-(Nr(r=7u88JpTde*2j)%?blvuCcq_q(1w z)o4Lc_CbhAQC-3Z9n_StKab|AyFvK@SC+R#2)XhW{;Q4Eio&p|gHi)h?zfJx)^@EE zy@hAj`z_(5_c2N|7T?2W-;Ufmd)rI5Q1>?EMoqV2_vk;w|Jx}%{+qs~rF~Dt&o9`} zV_r&NY+u))UV%!lcSv?$Xxo)l|LRtC&#c*7@~dLU22$qr*ibM({)%{h{1IAVd~1Vb? z-~L0_+u`W=>Tf?B+?N$=W=hB846-PlR&{n!N@kid%VE-ieN(HsI74gK##rS=clD^! zs?@TI^1L)}*?`_X_V?(Su9T0PJ!eRUT03R@gT1yE6o4HTm1@YG;-Ya%d1jC9b)!G{>(BsYhaPzzXwPw1l#QE+4%rI)8e4XDd2!$F z>1Gu7%@1=H%%1-7`}jAhc1`b`9B94G8rMxK@x>SBmMN3$jVR7?M^*$LkGa%%eM zky}{ZhPzr=RGOE+xmPmU{90iVD)YuCx)>13NE3_Wn-k@Z*z}nWS|U+v&|LaoXz7?S z)23r$xbcfKr^b#O+H~mP`?42guOB{qy1stL=9fLTlMnA6+<@5T(Z`?tz(_M+@7ud{ z>6^s-EB)Kw191CebA;q@#VVpm+djLC*D<33U&fT0h}wjCawh;7Qd(% zWJUXfT~@+zpAUAUmJ41h9}?{c8z02}=S!l~qBmeS4I8IQhs11}j+Q-PWkeS1t_~!X)x*UzKC|C7x}ioxzf{J&a|}uMb~!#*i}_)&py4~b5B3F_cp!U znYo!{l9^=E3n?U|kOT-22%#hp1SHY|Bm|HqAPV8hLs7wi0)mLZQxK3R2#O60NGKxe zLw*&K%;Ep`xs$;2|7FO`E$8gB_u6Z(z1FwZUW@%1e&zCAT^~N>q|=U@Omg3+vE>jl z2Y>CPQV!nmkJVDCTKa<k ziE}RCQ#(&TaOS-;#h=`?{)6u=JW`6w$tl(7wE73n1ZSUsf*;e)*+I&uRc5Uu!{0lP z-Fp7cbFL@CITv4(&%1VS$H}WN{Y&utwZW%zy&LX2hU9mdiCZ5DuDpz-*c-Y=ySvc! z8vRAPz8c+5r`uA;qt|o@>EH=;4jm4EUlH@O7#^-2#$aea56IlHyOtb0m%U)inFs!Z zy&xPTy1%@VPL<24^uhbs?qiP}zmz$9_3DGaVy1402h+%7qm##&~uv~H0>xrNfTcebItfQ%CI=nOvNCKwh2#I7iuk18;;7t&^1OG zoPHE$j0uk^;R*B^VE}FOfrm}A44Wm+95Zs`33F~fanr2XGnb!q#D*6xy5O2yK7GzN zR56w8JpQP&_J99^?I&+qp33#+(lC>wzH3i!2wkc8s2ox3ly8)~hxe}Bylrdn#o)RJ zFWt2*yLO~9e|5L?WqVymUO?=5%GUhFL8pL$CllxaVg=smeu?(chire&H&;nXiZeblOr zLv}ISnROC*U9*jWe70k1HxgdU5ls@Nv~OA0kxYJg{!L%_QRC?=8k@NlLVKfis8zFL z4w71D^0k~B&uB)9BLbP8QG04_hMv?-NkbY4C8hhCtcrdlDr!hpEhdMuSwqfr&u*3I ziR5R4)PH9!!Hp#^jlIA8~K&TpeG>f0#JG6abedc6k1=@MY~_DzF}Dm3Nkd}Rpr zN#PHjxo~f#(}bzDP*eBNb+ESGX8F6Y6=aQWUfpzZ3And;XBXY$5y^L$6>!;vKa656 z6vGLl&zfGp2Jive&LIXn%u%6Bh?@8l*G+ISQVmfSJESNy_wickWDTyg`irUa@u~bKtmAduyhA_J_}>66@4tZFZ$C z*UoBbIc~TSR*y=9GpFzEE5vmqx$M}PpPn{rXt3kz;77+!QI%9wl(d6= zoyXmB`pdNbOSanhNnX+$%LHsMDZEvgw?YQ<`Mt-=CM zl})}@&vbND{8(nz6^Jh^aIP>svM^~}H7Ao_Ssnj$fvl>x9-Gdex?=6mHSnHa z@X_rTB$EAp%(igkrUmCCwgz?iNO2b8#OAduMa;-8(0pli>YugjCn>mAk3({c>&O@3 zNq?REiTs@*OpcksoWNYcT*utP{3mla^KIrA%5ir?MN^9f(l)Ci^}1DfTT+ z=Mr3r>)#VQ1+V|I*osz8-Gfg*d`y5gw&!_Ei`NWmAaf;dTbS%0j=VPeSn*EN}QL z!pcNW5z+$bR0m*tb~DiGN08FPtD`*_r%2t=e0o!oVco;s>^1OhIQ*)AXhf(rgk-9q z5Y6feDt_EE$3H~0P&|c+^1`lxa1)JxavmnyMtSfFS~Xk#*M>1Ueu*B?#dL6V_Y4~k z;~J>c!TUo~6q0bTGC@IFiV0tipu8NV7@h%16;7@&Fv1+_ILg{jj1Z-^4o`5i;pPN4 z${%+S^rO6SXyksAdp;g_iTd%;Q}m7!Q$Y5ViD_=0u?uJ4Za#1teI6>&&>8<<&pUJw zxqPS*j|T_QXMTdsD9cW;*h+K(MnLtCc?h&QJf_23?0=H1 z|DWkYLk>MZ5@kZ79;V8nRYm6w^VOus$33eY{;auf4spi+B0-buKIRNO;V|LBy8ZQ# zDf{RnK9R1u!qdlL{5WCp|9SAo--_S%^mty?ss{2XvP=>cQ1TVqPH>TgmU37*iy9$} zz;`H$2&|pas+?FC1QywG5>m8R8kcK{L@h~9&zh;K28d7BIj@H$8Q+a`4Z3dDFKgMD zSP?xUjjFoZElI4|D=JeQ!DI!gpxPrUyT~&UKYU=Xsi~-RqjAZwP2j}QcutK}OKySI zC(-jY%ZamkLQT3tT4W3&^hr8j5(GjbZDQ4Dbm%t;!RVFAPkhr;TH)?ZYtekWi4)>+ zN9stTmQP&Hh$1!vUaJX;l;)(GCYd5{h>=!){DoLo+BMBiKjUzI+Ar!EcQj+B%Moj! z)XvM3(P^HONI|tmh{{zYXf+}oRgWYx(eWSFlIZ#U2sMrwY}Y_rteeTWj@~`!dMU=H zjg4gOR8b!llp#m3Q3smKE6yky646jd9uyp7q6bGz&oDgh){rdwH)v)^7^csRB=U$4 zC^{*I#A`BkCOZz_w{-#0%0e~D=p64$TARcs;1?%+o2>8^e*D9%k)~5qLXm;y)I^=m zF$v=0;!M?Cy@0xA!26-)-BaMiFk3pA};##|kID4Yy|4F|XXZ{ZA?<^|!~px4k; z6V+afD{@AU z7>w8p?<>|aqmA$O^kiODY9%)xw~Qw5aC$xi;^o>}jnNnj>7FCI=Su<)Un7%R} zQQCRlV1y(qbt4mZ5{FYF0w)e|t%!zb4Oh;ux)Rl)2xmmP%)+pjixgZY`)1xRR#iEjwERvdsm66K z?%3tLZaDEid@iP}j9rg0Elk_bi z;YiEj9p_qQCdPPDD=WiU&hyctAe19WseYZ9veEUdRuB~-;|Vjm&03oDBx;j%xvl`I z;_a!D*pHG*qSTA(M3Z>QgY%D%46~*>1@b6a8w6L}zq1gP_fdn>@PwYumDLPiH(~09mD4(En9*ts%MZa_clw={&&2z00Xvx4h6j{)D>p8M42>GV5-oG2AQeMEX1v@VAeAyF$ zwQ;L>G2t|CzNOz#U4$az&EM4i#{X!V+SoYbhW10#8A!TFOBzDW#uFiUscr_08$Y-h zTO>8=;gF|Ip~=vs7gFbzMt3#9j<3AKMYF-uofu0Cko%#@P zOazTXb)>~FnwCB_;0I{&3n)nx=L(y|CxbMy9{s|{6e*zNz{BujppHgF^dx*oizd(* z0!l~_ji&ZPKWHXDnnbWt9pP|0Xxx|KT{sx%mzV*^uLH7Z436MrEd72O3!0z{BS`Mp z#LMu^@DccuUNF#~B@L8rap-VB|l9?K;0A2sp*(-3+O{fUv}Z8MrI0nNFDvgJ-DJt7+6O@j45Gg zbGW_Y(+eqNSEe)S(uQek;T0&}hn$5~+I|B^<0$|PGr;vkJQXFt5R>cE2ULnxI95Ej zkN14Q+X7GfhrB-FY&(2)0EJ;)D0mL0UIZ~H`rY5a4}K#X+@R~Y=n*E0GEtMM%Q}J2 zC*%?oz(n_=1c7G_{6^ox3B-rg4&o`WMQ6KtBl?Sk)m3^G?JX@zi|;WEk(z#B=|l6= z2(QPL6!j5dRnYmzEBZq(qKEuLBH;~aMIVN{>73#NOgjCz$-`j_AOc#oe2lpeTE>8!IsT6&el3Mh^ag^u|{9Ue4MIxSJ6(d5X zq$>W=!SQt(?N_W|HZdk2*I@?n1${e(;C^}$%pUqQOh*Qfy7aZk)0sm8Oe_t|Kb=R+umcV%R>O;EPsMsT zD%7rl49JoJ7ukf+38ah#hXL=!gMeZbnj>oPU{!P#Jc8!&;RvbHlebhFl_^a;zl=6< z0Vsr9aQ6U@HG#HZd%Msb8ZbdcKV*G$$Ai+-@ajlsi=(e$@DQaS?r3-p?En(FIC#t; zI*QOFO5tjeGCO#(0$aHVX26>7uTXaN(*%^jcZhihiz1etau@yQH=J^~BI&5m5Xg;> zQ6c(2aG=7zEeorU)s?l4Vgi>SO9V^~g?SWW4K_LRZ^5OFIT4yv57eKJoJsMaEzWf%qev5YwZmvSn} zLgJbXFDS{u4u4uicR4Pp`Km4;Kp8e{%p`GzRV|cEOG*Tq1h2S?r2+ZF7S4B(xGJPm z8mqBpBrZ5GO>ESLWF$ofk~;-@H_s{(ry9RK_+0SW;Q#E|gG6m-K1XuowF?N(p&f%I zy3YyLBoY;MHliLZ<8me?u_Bo&<5)Qe9PHzG0jAdxoP_q|M|czqWn&6c0Y$NrfHMXU zqAv{UYw{|`^Q=yG3Q@vI@_152&p1(HeFgoJv}qhzpCh|CwxcQlJSQTPOPPGs zfXfGSrp#t}sf3)buSm$KFS6rD8(7$iU|M*B;c!S!1I?NZ=Ax)2D#+a+NG2P64fRzC z@dQ!qMcM#@nHOUWgVX;Ux)`A!bSRx3_fG;{P>dEZj%X4mNJ5M;+B(f7NwAYqo|jq^k|n8jlQP@@sx2ZBw!&b-QS>&(`7t8u zjLL&EQ5+P-y*&p7Q!(2N(+(ykyaZzi$>|?)SOsO$co7AQkVIPuuHj`=$z@n1*}-qJ zRN~~|0ghK#vL8ymZ{QI;yHkv^o*0*5QJu<0NnFs4;3F^$%Lm(K9<5XC!0=RbriQw` zg277!{rd*%bgBxO#PZRpot${^PguGv!-^V0abIe)V{nW-{!bo5 zP-IKwSt3b7oLasH-jCZjDhZ$m1q6nG7NHQzT{uc=esToSn1KXvm zt`{Ur$J!AfVLV4pW^zehREvtn`dn1BBauojS5)wIU1Dq$ezg=U!Y2!$U=moDC|Isuv!`?J2-_fMTvD(>;lMqzYOX3eiPW#FixPoIS{4`PtxkQkk2?*w~@+CGI)OYUmFGAF2$=$mm#|U~urJ%ta-G#rYHwHUfwfa}-H&I3{gGV9c}0NR)}PbYtP*S>jpGaYO}2o~)!5iGZ*?t14BNgRQ-R z6@@Cp%dG8SVGDAmYU62eP07qmi&0dO=;(-mwk2?)B>LzMet>FV%7vR{2tbCz3RRSd zNi@p0_)ey!m{mSqltsq=jMR_vz{QK1uSevkt~5ppg8PuK~Lo( zDNKeaWLbzi3B|cJS%~@!Xc&!0nQ2%QIKvZxnkVoWl@y6EC`wxsx;aF+7E-87EYcOn z(B%Z8YKE3%)HbN2Tpud70cYf=Vt-*w4jDI0%Z%#Xs)7vO3`&240wT*}6@md2iGiz_ z1v7F)&*PbrOi=O|IEumvB#Ca*Yef;uTd?W2Bt^iLSOhYMXabp4A>mY<$q^|78456! z3=$bdqXPJpQ&kqS7uVsx9&A2Gut?D%@dk7P$OCM;Hbf{&oRr6GfFBB17o^Laedq{Hw%izh1|Efhq-6CSGeDCZ*za;-s9fq{*GpO;0qBT3^BgISNJY| zkRRs9_<8(deg%ItFou)))A$Sd9sF(lePQMd6piAA~;&?+N>bkD!`GL{H3$ z6|r5ci$mh5I9psGE)|aw*NDf68^trl^Tf}HJH%b$b>c1J?c!I&d&K+2hsDRlC&lN) zm&9L+uZnMoe-YpRe{qg-!-Ik0hZZz7%nn(|eI=O4Fi)ClclBQZ1ZueF_XM5SKPi zyVH;RG4jFCkU?J?p=CUX9=fzS5GcHq!Xnf}6bqDk^c68NT! zaTHkgqJv@Rz~pu8b+CG2?NM77H`D&oX7Ifb4zr0wz+S~eU<=|OwY8gF0eS&r4fqR= z^3WeTKEMR@OZqSTWP()a&f!;XG3;oQ8u$&m(jb@6!3YeCT8!ugMnQ>LZ*+q?q5WEg zF%9c5>?$nVkj&^UzN20(F2xU>Q*<+ovGH6AxAkH4K-4I6 zppO)n!L&{g5jOy9qd|fo8GYu&7lRWt4wu1Ty#V@BssS}Z5Bku$h_GEi0(CG8wU)tF zMWI^sux2Qqx%2_(Fg1$tihAf>tPEV(=Yt`_rsz~tUZjO>n?MdV%3(}{VVj(cxjz)MPj1Q`|oUH{>_KFk#q;0-}g--EEHoCnE6$xgdN!6@KCAW^?RjVXflstr&FtOmhG`w0HT z>TRxN^c#<$LW-xb4?<7SGF=oj#-X3ySN#~j@o*4;r#(QN z0zRw^G^e%st^g1j1Hp|=qzW<(oxpFA;%9)tXv4JUO#w^g1EmHP#bCmaxOIx5isgC+ z*;8-_Zlh>e6K4du!OMd{2|+HmDGYrIsbRd7Di|&LM<3#dMGTJOYLwm4@#a*5-*H(M zXnK`W2S971`tKkxb~&S}P@`=%F{JF6eU2NWm6@ zmCWH#odzGA$i^wUB{F_oQW;k7pw2zm1{_IY+A#(($0|{Q8U@roli-EcN_aHdKy<0s zOJS5Kkx7iCIlg4Dd`{2ML3{9q(aSh4G01_$kfEN4Bz>+LoumUNfXRx1+NL%|(t8+^ zjQBt=9T#NPIL%0aeo|D1u?0IJ%feECQEdTPgh|365=Vf^7O@2zN;yUp5gZ|sU{DncLts-1tHY4dqP_?#N)S18SrhAu&=MPeJUS*CDmY+OMjFUqW?7PAI@);M@l|K0BX}@S1PgeX6%A7wQobcI zj(1^2NGe97a3rE*C~QJeGd!RG1zVX$(=ISVGy;UWBpnyLOSbk3 zSW_&LpfDDB4k$tN;64g5@mNb@@DKr)n=I?G<1Z8O8rA@C7S(saqNC3`0;Y5owi~aH zWBH)-1rgR|@N+O5Z}8x^zrZ>ZAB=z)guP7#PtL;R6U0N=QP{-?t_ADdhKF;Ae*iN8 z0>VIfwV-mrPtXLG6PAa~j9@}xY)XO&TUn6yVda2%nP5L}V;uI|M7xP&vGyaP8o zi?R=jro!eBw&AA1x4fczQVmcjY)SyfET{@+r}6nNfuT7M3)A1T57Q#3Ik!3J37&o({lCFm*aVK>dNLaB?K+Clk~%7r3*du#mUGY!-ttK&&iz)%K9=6U(@j z-^{Z%&!7t`{{_?q1rWgd3Ly%463{244wh7~P-0Z_2q-89iy@mSnD||Emj&d8)yD?2 zfFEE8NLqre05&!Q4?K&jf+NA=;&=>Dn9N-%0bUPku;Q`KW%k#AN%j|k)37$4>B+q4 z!tG2lZkSm1#6q<2Qk9^_W%s%q#`0a&|d{FIc_~{ zb>u=gNKtfk43I6GQ+aWO;uZiRAe9AXHjpGvyoJJi1cM*~uxsHUgI@nAf;W)4>dhE8 z_iqu+Igp!745$Mm+uff8)xJaKzGxxR+r>aZ3#?h7WGc{$D2_k_6=B<0!<4XYV==)5 zm<(YAoY9di1Q8kWR*hk*Q7a}(aU|RZ;aK4GI9-S6IuR=oyAB{N0`v!%2FKMZ7>pQE zb?PEvQ)mZd!A7U>vJU`RkHBHX6d6Ouy2g~_SU+Y;@&Jrt$PoxC%o`U$h&3=9f_0^F ztQH5_N#YST3c;=bpd~U^L=5PstTRpwtc6Vvm;<(Lo~c2+$0Scy8AK?9$s`D7r1pk% zL6oB4(A*qUSWzTQaI}7G3lwn&4bWLGNgOq5MoXd|#av<+HsHNLSv4$b2sWO`=%v7- ze3(wDhCAg1zT^0arn3?V%CV}cDUm3;$xVe&!4d~zU9<$aMj6FPhUV)qk0ks+r9dn$ zp>dFQ00bH64vr*iW*WRsFA~s6ekcu1@B<01EOvq6@LC zv%IRo<=_~(fw}OOK+?e-1vQ9kV;Df>(3*e}g7Jh1hz9Hp0GI*E#&8DMi;ZCz4rY=l ztc?u^xH5zQ41GM1)dder3t6bxE^s9XhaCee8M7GWb)7d1lTG7+km8CZ(9rj&5s46R zN0j!G69IHWn~-gILqHrXH!724Y*fIF<#4|NUt+ff8mg$^Z@7>I3HuKOqo6Pbc136? zAPGnDQn)yPFB2X6Ef^$Dw>=3yAz8#)pnEv}VG)3SkY`|h5lW{b%Q@YZ7!BJMY5{>T z9MD_=Y7=G*Bu|4uu>yo6CJ73(h$3VLcoYBQa0o)7Ky{)agp;LSk^;*{WlmQ`gDxoq z)uFU^&ca^KU7_!pr#fWTBx0kdR8Sq1>D zfTO3PH;@9LEKz;zV}NmZTJl=v>bzQh58DzK&O*AXeGRD>yey? zB->D6p>SZ*v8$`#1%CRF*b7aEje_nFn^Y-c2EZy zdI8SGUIHH!&y*>@bNv7lW$49FN+27s6yP(W9gITlgv@{}0doO=#~;27wHtB|3k`e( zX^6FtRRehfX-L;Uq%u`Fp+2J5{PSoIE(bKjNs|On8IOeoR4ecgVd&T*gcgyU@zEw} zg|G-2HZE>?q~%%Ufq9qE%(bCePocaf5Ym{y3TV+fAO)^|MS-up8nK%=WTlyxl&&Xe(;lTe&fVVB&Wk4FItIwHZJqU%Jkk5 zN!P`AjB#Z{<%q4?$#@20QnYx<&f0oh(%^@HNUf+Tl}Q+_aKR;JB-SRV62rW8_V@t> zJ`hEwMw2QTP=Q26RdrqV6EH;~(=nlnt%#byx$;@C`53m~=hBtkF)x=hla3g%u#9Zm z^mKjvej*uGF3p^ar;D0i_HrWf;aT}4qIco-j%(3GDI4z@()Bd*zV-JAi_Sg!X^ivv zXEEY!&piLv|9Sq0pE`H{nXhd+>7ECEY$&XgJt7}#l;ZHC{JRw-sH2T7~mr zoM9)RrojUvYpkHxW6_$1=H zSoe||OTujg&bD0J)h%q%l4>e)lot@9!3loEOTR&-G2x@JSk#D{x{7@R>o2NXP|r5e zWJ+l>+95!-^YoOc$dZ#Pny>(|&+4K$eGoZXe5Hgcam#|)(lQ!LiZkA6oU3d_)$9gp zW{)Am%o5}aUWZDHn_IRb%M7iL+=BYZ%}72(YZ9ES1~-GsU@}NO5pQ|=+aq}kIH*9& z2@N({NS?w*Hcov5JVMG3L8R%sab0V859$v9gd9W`EO2Dl8o0Ym@AQCx;w)YRFgGErP&$xai|I=WRu=2BK5&mE$ zm@O=OVDFTBA6O>r-$3pcR$hNbaDd&j7w^g6$#?PPz2qO{ekC}78^>RsG>CS8`=5A5 zBY6J(N6|3*+ehEWW5}oeP0*7${W>(8PBI?~BXPrki~{PDr($JX9`_u8=+9vC|K zb(99tk6ZZ9-~H~Nb59KZ7F_k>J4>YCHgdeQ+Q89zye&8JPATNz#MD-ey%`DjiU}88sAk#?k>#x(y z7C39YEZ8r``5&U9YZo2^Db!LdK*L5wMi05iaEc#p2A`v4ETH`WkER@94fHDrZWZGz z&kHtuus3+(?JIY_MP@wk-ACRa^1+{qSM4M}cg>q#+O&3gS;@8!+<3?ItB)-*>t4I_ z4}`huo#3&(4+M|By=(Ou(4!X_O@+j2WS3!f_(6T@aVR)pMLK3ea}7n<|m$Q zqk7iFvyB$t`(-MX)S>ygKv{@&KJgnMq@{j1-9@KG>h$8|Sc_8U}} zZu#i9uU&k@!R}u_^@DdK`Z?!(|B2uJ?!O*8_d-#;@VsY#M0w~V6Fl@=WDRQjn1>Fr zP-)OA!+xW#3=}}@w`fukltn~r(y~*772|&jw!U@6AIbD@?j@t|Tp1j@XU$2~BQN}) zC$3*|(aWUvAFFOXV?oql&i={WuM_2+V9UGT3?BRA?yGRaeZkH@?QAuUy!q+(FZvQ` zdu7K-U;FP6Zk7VpyR}tmscdR~m)5`2)muCpPTU$Ypy2Hz-XbISeS?g=b?~3g6~Sv8pH;GR2A?HexoEbM-u#6*Q!ZUU zhT6$%$>`g=ufSdR-WNRa))l+|7`%An*>94L#xWP|o{8#82qqc&D0u0%8-q7K90LO} zWZ_3i>0DtcC`9w__cQ;heiWe&O(-N2QihL-+1P?bk)84YH;q^KYs6Ra{XD`V5PJ?Pc~nD zWvx19!xa`$Gu>ZUuICtNBKX~TNUw!xdH-7m2zyE{Q z-d*-lQurJHBxKc@$V;-b>rw=#Yc8n_9Ec@I&pWEg0dPGc2W+DO(lt{MjkmWR3^9!oC`;y;F z2fy19&-T}IiFW4f;dp0fa;}w#RxexSD=9MP`a)|}6e|@mzi|nF6D@sUyZ5D?-GKUIT%I)7gKFXN_P-dvt|=cv-*x-DqR(8ucp$K*4E2AV~Ohc<%oY# zkt7#3mNnmx#r&ar)sA*lS7>3G4C=&uMR*gLXtuSW+-w+@0L7TXQ(q4cC(y~HZ<}%wvmL&Lk13RzG<~K=Gk(*%n|e0f zYqa`Mg?X>DkVx$lgg8tmMo$iB8e8tWnv5R!fW)r8Iw%J3T)cH?fjM&_`EU8@ zDSdqlPV|s7PL>yyC)-8=wc~Qf4NWO^ubDhWx0j3##Qg<-Blmpfg5bJ{IB$5_487pn zm1UEb+tsdgj6E_R>+b2^)1NeAZf~cfdmij4Ggo!;vyWP_;_^$$A5ii)`xlf^n74TT zT>JQMuXykq$vgIb{WBNrv`jZvo9uSSYpBTR#YQyV*Hzt4CT%Z@P#w%gygN7bth3J@ znmq5O&T0%$*!w^G>9EkbFzOpouQ%%&oQC47hS$^+{?2dVuZPxn8#0>u2*Cw;N}&V| z(?o@5X2RJ4>8ZjPF1(3#fr-oDJ4^{RZo*SJ2w%X#_KDLlO@)J_TN&=4X@RL@5=S54 zlOCjhn+vYF+0j{Rr!H??O6RMJnSuikS0blIQ6bsvu3vsD_|dPo?|zreeDKGAFi$?` z@tg}R%qc|t*(=D}gw{W(*yYeI$B{%XGN&Wk?iF8J7(C%kz2};zj{kb_^2^&FC98hf zd*5_kT>98motZ8pcZxctHEG%DLR_yDV=A&P&z|8$5+rM-%lY}Z+W`in$6(!T$g*&v2c3X zmHvFz7J=Ncmd|6`qxn#m1#gH`_?Mvhw<3qr^)0s|m&#);&tOG`rP>{=RGK@7ZbQ~I zQnLH7R~!FJnxZ-oCd!)#FKWhK(A76FuY%iuNWfM;Az$$=O^xIBW2)#LLOsdh^x#hH zanzv>?tpkD5TH#_T88Xx%2gae!bCRRzY}*)w1O~>P#V*C4r&k=3+xXcBJ=*V`|3Xj z58r>(!%sav@0Qhf{+dLty^9R|Vdu`*g6F<^SMVY#fWJbz|0kkUsz6P>#Y>J_z2voc zN%drN?RB&JmPqx1uEkmj2SD4+wsNJC!0Tm87U!Z~$MWk>2bRi^m+oCNc2z8@ZnR`0 zFiLzkarD)t5H^o@m#S$gl5Q{o&ZIKOlqe5v1ppOD=gO_{m*g z4W9eMPUdMAjJx3S%jHdTrXftvl)XgT>>fs4aMp=k%k@kSt4Uwlz4tQKpNG^fX%hkN ztByEM2oBCEnPSdNWys>Ov21Hs*W9sMGSL-${@vJc78s0%{}{$v6pQ`XNfy0A3+k~i z3mz9|ptijPttEvD)*a9_2T+r8Zp%W{)j9*YcrI%dDZ)WroZ zEW@@eBlH5CLi5g1`OTLHBBVN4rh!`Ys7krHP2*MsbU{v_WqQ0)WFi4jr<9IvxtJEFe_DeB{5 z6zCwHPmvv=-j_#X=wUm-ku$ucwK(aKIz))^2v(pQ41TDzYYcex0_E6{R=vT;EYnT4{H<>=3>pT0fdpw~RsA=ak<7tW!BOPv><#t~GR@i;6UMwr*)}tO@Q(nZ zKR;PcmT@Qpu6|D=cZh1dr|wf1#gxc!ZP=I|e1lJkuAS{f>;d7mKCM*{+U$~-P@*WR zNtVSmZxTF)-9{E(WX>_+7hmROP8d%g&2e_3>c0MBzAbY$do%g^FPw7B;<%ITs8t%- zFm{o1)qBRl^}$*=Wcbv%8NSn}Qb=WQ3SnHTjFaBQ8hc!HHxyjt%+SZ&(!kr$^Q| zs>?k&c!=(YLd)8Zy5*CFUC41b3z*m0*b(o8q=FEc*r%w-!8)cGETo8^;Sj<}HA9@b zqsS~4V;BiGFp<{#@NF`!JxLWxrb?0AO0~>F=FlJ*+7>nI=sIT0Nx zCVBT(#1ZKu+pEn$h4Ff6YSPh-o;+CMr0wHeD*6?Cvr7bFpn7j0XMRh;4wSqYTY#u*O7 zRMiCw*Z0JA)$c#CQp&}V_jTb%f_$#49u0r=C*SEtfQJI{wMkj(w%B-Jf z*(EtUmo~I1dy&Je^W?=*y<>QA*Oj}za1r;T;;p;yyY(g~PdxIt*nXSpjm$pg$)~>Y zWZJT=gefBpLG0=`pCbA8{a+>@Mq^rV(;f!(j)T$QG~|5u$ns!Qv_Sr{M^43+3xa!y zKN&6cpMD^?^Yh$O@OtZ+%;1;rf3T9W6bQp^WYRv8L?`vFS-MH>&HeQE2|+^XGe6nB z=8{i+H6B$|+cmkU8IRw*XXkC6eBcYNVMfUD3--Kz7>Cp|PqmP|TNcvS4|-ZnCM^sX; zo94~F^uo`-aQmIDKL{Q??a2iTmNU%MX`4@Bt8I;GL$|Nrwf~l!nRD#X;d8g2_s|Qa z#N_t2!JHwqv1FUTWh04B<{&wC`Tl zowxPonz-cg-Q3WhGf|G&`4{BC|NTWwcJH)VF)q319}?N6aOd6J`So}&xdtcqO5Mc{ zk8_sa^?1Vj#?Qt)w!3GBmB@VkC-YUY`x;T3MY_+o&I|UpShFEU8&~fl0N4%eF zuk87(x4i!qZv1*qoH0zk+8Z05L&rz4$u8~+{wR1oa3%$nH>%*C(8{M=h0)^QgmQ*) zg%d~>N6KO>vO&Pcpwmfr0?K+5dq8M~U?y>IIG<>SzB^>>(7$xMpxnSra@jAgJ^%8N zk$CNE-pT*DX6rXIPQ{(vwd`wGpR(i%tsb1uC$(cF-7s~IYwzqmdCrQHH|oc%pE_yl zxgG5ts ztr}}=aU~o~Vt22yhLL-S7A_|(F9sJ$?~4}_lo=*iZ=eNTjTq-d$T5|S;UR^l^UGPyTXhXG`;&7n4k6>+Fc<3E% zyqWYP6b+Q!sNO3aTUw2hRePib3s^%eJYw2G0ep~{kiuzL{& zZ=zX*lv$`Ci11N3-$l)Z_Yz94olVD%=g2$d?;QV93ZMUq7jA>tN@6idk7CQfp{ zdwu=Z0s_>a3?i;i@-m7jcPvQO1a;PB&#gLjaA;)mmzS}sBu6TxX`EW0lqaN-O2oOI zQX!(y_{hGV8&BV|aj@;U?znD=IMZD!Ddw8=(bXqGd0`qBEfmr$Hxn-D=2ghJ2HTi^!7_9y;n`F|hGL(tBHK$s z3!ng8cop2(NHK$`2AVsD{vwC6Hx|@y-%ym--7Ac+4^wdkwm^HiB*E@91{>5MMxCp{{qSmA( zN3DE$g=5)k3_d2u9l=qRxZjyJEZs>{ZID*b*=(d#HJ9vekHtADYmcTa+0GB*h`sNIIiSCR3v7+946Vujl(m;3n zWI(jKi%2JS?GL)+^lT>|GZal^_iy=`C|e6oS~0ZXoW4mJ)Zs;VgSGMA=e^%gFC}qo zSVP>lK5fofkBU!xX=K%s!P6f)`u=+_U4MT4tR*vMU-*?P7OZLS7=8VP-7}8gGPh^^ z=2ynwWY~e$2dDO*aqRlbSN_LI$4@!O+2t=Xy2^8$>809NE1$W9`TqDF58g4QEl?QGi>&e`|zrSgy`;=p+ZUOjTJO9+X zj$RWS+z~t$oO3_J2j98l%Zr^Kt;MUC=)A@l4F0vi0mae|YZMeYbC0yrP~+COrs`xPicTwqxCf#)^Fx^yP%o!kFGa zd1(Ltur%J8ML1#q$h?gwZ#!=Kh-)N9KeYx`W0OUxCW4Kb8n~YCb}Q5HYU{hD1U~_ zuem|_IK3oLn-0z6@{rpPd6#GqkT{-5<=oEv$Pp_C8~Nny!D?R}S=XXsR6$B*6gqhN zqEGkq76!T^La{h)+uq5u^HtuyCUe43D`$1r2TsoAwZ0?$b;oYI#_@)`Gg(An&Yv~= zk&_kJsO?F!+sPb!kAJ`oz>gW-NnMIv-@s$4YpZB(i4^Kj9GZWxvm2sL_oC*M>Uq2Euu zgOvLC4V76TH9pKak9}_^N-$eY(bkX8bxPnT&tBLIt^e{MLAvB zyy2K@k{ZrzN3>IpUbE>|Ls3heWy@Z7B%x+UnUyZx*}Vd>1ubYfdL;-?_Cl<=LMUq7Y? zNA~BXQ$x{V+oXYcq_uU$<|pPT9D=y~E1&2DqGZXn2##IYX1-+Qr<@u^bk~iq=G0Vv zzUQwy?yL>$?)vg%44#feJb1Z|QmXMr1-SGD{nge~qETy&$3NG>rUr`07F=D$1x0WHvM2)^`>W-&OJVXmq-Df$nM%@xsY0XQqx2 zl^LmARF8GoGeo&xZ||vav02mOK!BvkP^prztVqIy|1b&_v;PQ$|3gYd1vQzD{qn`l zjUh6=q;>U4o#moaOBSOk1STVTlwti?rD(bbujAO`PnkQ+NeRy}%e6!$SM93!eQPdf z-mK``=fqR%7M^g)=-*Pqc{h@nbc7vo(>dn3Xk`12)W@W^8eo=%P1s-gQ%l z&#dg3+m$P|4%OVc>Xp`(QiwH8o-tgnt^+X;JFNPO!*QB7#)-9v=OJ{};tVU=QBVZI zwllbhOQuE9lH66Zr$y~lc0*@l;ikLpUht{mdVecBZ1`g{dOh2Tb;kOHq!iaviIQ_v z@4zviK55m|DdkE$*5A=FV2{k6lc;n$hOOo%y}v2A>geoXrn(?uw)TAWy!orI;N%Xs z$O+4blc*c>QN6Qm5i+3Wrsi|ep?6Sz_O9*6Ot$3Jt!Bh?myLRMKMIqK@I3tMEx-Gy zO?neGjxKL`kWie9@=s{L4&YdIxWk27S@`K;jS|e)ge$3;1iuJcP_2z}Cyw9JwGwjdA<2)ALs=Xy6>5)%$Hc+-^+9km#CX`wA)OQt@5VW| zLM7B{o1Yd7PzNdNPb7h)&pPxCeI0s=n|d)_8gxPS)3G$y6SYL~k}eh;xox_iv7UTH zePHmRbe~WG8gxk1%xvN~)E$ac2NQuJc;ik~tZi--RM0U(Jt2b0dX_R4Da1 zX(SCP=$DMvR}E@hq?+?qSc)0XcCx8Ss|&?)qN~Su4c+YWGc#k2p-!bWVJDKPBO=(Q zT}57P1O%oWO)D``yI4%vh)2-+osK*Lz7a*xW^`FbG!-?i^vq&Xw@bMx zi&p=4+Jtw3<{m-95>1FE3awd*azi>%cBNd-@={YfC!?SQH7*&lq!1sQwX*L7SBMYJ z*aZt0M?xiS&B{%6%c-1g*~W~~Q_LA^XFt)-jGR8Tb6&#MCyfquh=~YJGNngm&dwI) zczw>26MVB#E~Yd6ZT6|tCRf{VW~ft+wp$|+H+B4AH33ZAO^mfV>^C@Zv5CWCqd42z zS0$5>ds>ZTwQXCEo~vmAUzD`s+LOw&A9)^b^|thu%(7U#ACx<=l| zT0UbfYi)%&SzM$k)k?-vN)aa(%g5;n0fe~wi0)6C24m{TJCKN=w6>N&26179YC{oS0+3|foZ^tq>4G($8_AFW3rk|S_*-}cHKZc?0Ho4T;kxnPczab_j# zlX|BvJVx(sZ9gVfs*EI3MrQ4_3+9ftR-*rxu=jwHqq^2cr#k2Au3TN6bDqvUu_x!K znb8DEBWZ#(%2_C9A(T)65k<~9nczS)*uDhYU~CK+8`~Io&i1wMH3q5m_Nkf?{@;6R zz13Qy?yBlj)m1y4efIu7Ero}vdt7wR*IXwseu38XsB1F~iJ*YR?_(08#ZoQ1>6M4p_2)0$l*Tl1F1t3Ffwb7xrj%GcSd_X4)>YLJP z^rrAo`yjBw116Y3XEh$WuHK>%Y=Sc%aeZ3XIg*Kw74uKZwrj0;CG8a)xtKQ+GTH#q3z~{MYHAmB99_3Ao9*8B(4xV~Wyh?X47=*e0h_&} zb^iJ@XO?ex7UgL_yX4gTO0^eQPnUxfBkLd;S&%{$;z*(@#!nFUNDc?u_5-j;kL0lq zlj@6RgM2XGV0Hgv5Qq)^b5(l~N~yl38BX^$t-JoIMJsINOUqYW{hN~}ox!l}x4TA% ztCakvz7~IbYqYiJ#JC*h)sWD_-@Na@?gdL)v}#Qx+SR$^(8DCft4hI>uRM9^%nzQ& zHpt+opI`g@^<6B2quzPbp5eiFOb#qGFt}+4WD=m+-ijyNmQ}83?M1y#sKW;U6b%o3 z|EdRC+wU~!nfXIw4Ry~PO3drd5$eT{96b7sXO0|r6yjbJcF&~+8kcGlRAo4!BBQ=+ z0GQbhh_k6Dp&H{SWuIV1aFdR=gm;;F=SQ>4?9X;Q#w zUtf}P*4`im7sCgD;eg#}NOjtw63IEl!(qus1x94{D0E38D}@wPK(wohI0NpgWL=X| z<)Udb{(3mNHwKfN{$ia<7!(lOJ`@&egmJC^&m{?cI&er%WiNzgWKW(AR zvg3WU!R)b_4NPim{?Z<;D(^#TcZ7>V8%SU)Pfe3m%va3f^ahE5QipNUr@)hljVAJcMkI-oM2&ZJb zY-6d!YD`gW%#cy5=RT_iO7)(8ru4(obm<2-Lwm2mX4;=62+F)Sma6IMJlg!p#>w^$ zxt zZe(lwQm$APG{}Y*3p$*Ez_u?D-_#!nUOeAW(^41lRVMpB#w=00Q3suh>Cv@M{!?~K zpnNO?x3%}Dm^|aOPuobhDDYD&J}eAe60%u&`$z=Z@SXGj45h8GC1^;nN1zI)c-3UyyPnW#`k}t{;2nrHL@MGu=$Xg+=yeweIL-`Sr zoY=}B3E-UQB2R{Ry9%(3N=gzZ${-|G1DLd6Cs`a&CUJBmoyfL``UA{5NQOm63ScRc zN1Z!Ax|X?RBe)##Bf1o%AJPZ43OPIoA(^}qcq7?!z17*wj#GB z%S|1ZFQ(IeOyP<}DsJr@cJ1%&Ezdywz_llo$?LBErHQ91)~%TwZ&zs-50xhJ+w69K zLo5m|NB*6mPwvdF%*ly)|pL zHNt|GwQkGx@=CX1q;&1RpT`7WrJtsU$Cqy3J-L*1^7fz)+lwv4Ix!l6|H$s1H8cB` zee?cnO1B;9PDR7{%m8l-G#suTPsG~Hj62Y1QXRGTgjtu{Y##Q6cXcMphpPLIG_`r` zwSslI)8$PhhU>=@iTbvKS01h$HCT(8CZ|)U(~vrYQg#f)2XcM$FP+e=R|z0DWqy`% zgH+7UJ)}7SidX<62e_ml&VfD1l8DPwAfPDC4lxJBIN*CkPbBSyMNuRaUyA~o+>2%l z1P@KR<^OG7h;69vxozLTiCssozU78LoUUEq^aC~r&4v3~de_~3%@@aO)0=l4d9ifE zk7kOk0P(>R*#ck)Dh*uDVt_y{_i~*p7-8AQ;-)x5M&cf#JzSwS9vp~2B}yIT+Kk&XHRywKhRZ(4gF~4p5qfW-cZ!l(4v91U~hS7G{U8W zjgLQY4`v)3-Ffil-=8|c=|Y}-|M+BtX05UMjSs^@Y1yZxRhp00E1?dsP&Qh&tL!w~ zNB}3A4G~F3GPiR#1K^*&mUCFGkPyL-5(NXu(EZu!I$ta*_d9nH{Yo`ue2_(Ro}P$?W%oO$iiM%JlxZHi%#3!8Dv0-WXv8|F>n5BQ!%$g^`wmK zTJ+@E@0I=>l_{w>?#(%y>-#n~HT;Sqd+|v3=*p`?1}Iu~I=ip?;>Lbx3pD6~#v-?A zZ2rYRL9KEB7d=^j%YXF`jJaJ%#>=iM{Zm`3`UO<3p!qy9NeBl?d`b36l=a#BEZ$}G zUUJ0Z?MB=F-3N&reN;H{9JmZ{*2n$V@agZ5@7d;m1%?XI6DRdeb#`2e6fW`N{tA>$;)w zm&N^K!@(2x4c0(mb0i)9#vbNn%&v=4kRy_L>$-=Y(1aG|jY;V{ z-H=5`Hyb6}X2U9Fg?Zuk&UDsQcUpYon_Aj}2I%4pO>DTcZ-;_dUE}w7T`Jz$0^G@q zsOd^aS7*c-i?|}GD4Fpsdic|H0?LuyTAC;< zU>FzUQfY8{u+&+4DtOp6wYJVtISHRXee6; zKiuqxjv08^Vx(xw@0YghDZMowFH9}?_^NM}=9La#Gd%Xr^%(!i;>gs|lkavN z+By2o#s&beRuPrhGf=np?SsMvFdx$bxNGp6N#~%55E3urz_pqwbkvdIn;26HK_#jRz7$BX9!KkoR){%5*-t{5zweDcdzo_TcmVAb#b3u??ye;K_7({il_zrl2V`;LX< z@=sHdj^*X}VBM)-?Kvm?ktv0N!aXI$LzB{(!z1NrB(Rsg$67nl=yj1qUqfhLNv6cTge9upI74P1^ z;J$klceGjoJVWlVPi;yjn#tm;57&2na_zz$7ak-H2Ul;{b$8)SB=a;vHAS_)5?I$49*uH~v9CE7gKu_h7(O7|4@pu3F<$O}a^_y&zkmPdUqa#gGR*m_-(Gv}VjiP|)>wSn+uUf3 z#NB70@n3Es0lo%6tzZEYkmi*HD+s<$GmRT5K}~oEEA+mls5S&J+GGX;EC5Ewmb)m` zxk{^(=R%RvzSx-4o)~n=bC2A3cGcwQ-aVzQAC%6PrdF+a{{!r4rJiuJdILrES54`0 zlUb)S85yI^}o6klK*f~ueMiv1e!N`tPZPLrQ5gA!x=Qt z)9=R~F9s-2y`QtA8a>aY9gtsYE~^tev5<7mI$1Yv2~bk{}0p6V>28Mh*z3gdvy!R*%Bna*V>*e)XFv~_+?4( zI)GXQh!|#Iy^1;99Pd?`E%EHa^NazQucJ(PF4KNi2xxJwiH+lCr3&y37!$7iwN6u$ zsGsrnM*J#mG&=wGOM5=-e+a63^#`$44>b&X94=>hvMEhY&ku*ftzMI$hn*&zATN&V zH5(K-POAe2&Zv;nf~&c@I$o%N)QjA>q{aqG7&FwJ0n8mN=SK;g=5Zivv#Cv?nm~73 z1ghE$*pf?qnq{h;&{ZUbfOGNdvVVX!h}Hu-7mzoa^+)KYgRzie z12m~d%VCl%`_&NnqK5@a0*5PS1zdd8B3-GpPv!es_(@R%L{Wf;4~jJVppnxM%^mD3U)B^Mo+E^c>Oig)gB1M2t+3D4+`vjp^*T@NF36>oL4AgM&^BI24uJel3gQ z5i++EfP8c+#$#grggFvrd?eLKt?)I{tc||C*ztvgGn$3+1EULWQ0xx^F1-QJ`^^!` z=&g70JP)~ja*^Jh6&$vusp@AEsgOP35mFUOdF{~DiHTTS|AL8ArzV!RbsR4(ojP?A ze!=Nu$Cgi>JTX0W@x!x=r%qlyIn~y3M5ahZn=P4KIeg&hH7@T11yHyELhjNMdI-xKzFs&IfUq}N{U02Hs{qWL=7x8MIiY^b{6_K z5${q_0|3f%B8$X9G#0tbNhxH5rBzsjM-DW1z=y;4@Uqnthlg@E(0h|kg|B4K=T_=ZdFuuU3l}Y zkKcLz@zOtEdvWz@nY{Gbhk*0}JrjV71L#m{W#93=Gu}kfx$pE}zJ030#xy1^+Qt+2 zYMGBGldeFlVkDVJr?Qzae_W-Ruz8E!ev&IsB$9ZlP#JCCsy9*^x35UMIM)3NK^cr@ zOKlC49Uk^1JN%9Ag?jZv70`$!Q!jpusI1uI$Te4FDPzsX?;KK zwnFKE!)#WYqou1I3YvDe5k9wluu)^fR=;17taBDfb@35&{!blpnd40SVRG~83{CMje}jFIjEo(t_J=`YB=#_Bu$#NYRdq`MwZDp ze*WFZ_jR^dGplWk3P>D)fz(dn^9D*Ul%6X6_iw&8k=|N84;q?lZus`@?T13aVJ z4n-t2ZU@KNJPzl@Z&Hk4wK)h1qXgP>=raXuoJ73FWSW2xjVvViavAby!3p*c4Ed zs5TW4iW+!^C0M!N`s|(+%D-J)$;5+A2j^1#6V-{M~rKSG^{aGnrjhp3RY@b_#w7PXP0WMQcpytyYW87Q%-< zQ1L*_+h`%ta|a%eOSI+%)f2$S9)muV!Lp^$skFW9O6XO(9eCNxW=km19T&YS0HVm$ zDnQ$WS(lG2Vlp%nL4F>}nN(#isNoEN(elqadK91)kbD67>t){z^-Xhu06aQ&&c|m1 z|B*h0?CIQg^n8`@;OE@3>T-@0on$U{fU8rfN{y*lwMNl;c>DF+wt7py`pqX_!P3t` zAZL2>^XIV5C(9ib-8(M)(G!cd#*^6H7vA{&CrWG)#BXlh#(7Q4L7^s>{%qIoi*Lo8 zygP2^ycf$HB;j(C60fZ|=>gwt&n_A}yJ3B4@9!Tk{buI9!aB@9{TGbd@rs+U zxa|?gSGp%2#%gwczVxju%e5_StWpL?pL*iQrPpOoxO_b4i8`toif3KHJZ}0gkCpfM zlHT(K$&nQ4O?%e6c){o9fHL?G4vG-0?ufVacOOSlBs!Gl1siJ%K<8~4tn3Vwo>5gP ze_qxI6>?8Qb<;;s-}D8n6KMgfL;yIA6jlRS(>`njgFXfla7)0!6x9&tUDkT31OlW1 zMRw>PdaFVal`NQ0B8dSgAJGO#VHe72LY3oeznf?`;F-d(@Mxu25adYufJ6;ZZ$gno z9@RYLNwgM}7XwBq$QL^T)U(9sAP1~NJ|`gH>yaCt%gTe4Ab*-k2k8Lx&Wc%k*oGz! zfQ0|GSgK)*_?_7Z&;u!YX^RqF9uh|}hmNEUT{qewUXvJhia$Ul@+pejk?RK2R8X8VR_==f?4k-^w!X;GC)Roz7P+H= zxYx;hED>4N_?`;A(;|a}Wr$9yi`g2*XRN7z#sG!#9aTFPJ{asXtt-9NiQeJkR4WC+%hMTuY~edfJ4US#|0~4?KviklCV<6P*#POp>wqlJw^Ki z3>^$S1mMbMob`JdEf>%L(HG7p9VUxe?NI^zn#v7Cux@BS-vHc9rQi8DIv67>1C_a2 z@A*9E+w_lwr#6Q<^PYsKv?K^EJYi_5IKg@w_?9#-L=DOtz<`KvF)_g2dMQ> zNsV(>OYe2}et5T|sn+is>J2&T2r^*e0+R)uiL9Rxk@MP1#}Ewumv`TBmR4cU^VBD0RdK!$;k-2g7z>5#rJ$% zep7~ZLjVDd*$lx&0)Cks>9)G;AD513-ce=2i?4u{t21E9UnqMEa*oJ;!%QI~ZlWntOk~bQ!btCt@HTnX0!b_5+B@IvQ3Ix(6wLbeLl*^z01HWT!f*)&!;pxXkd zoid`LmNq(!wjJv>)fYOw;bsekYrOvI>DIcPGfVQ5;b>xPbo-qL9)0H8`${u+5A5A{ zrguq{Zm$tsp|^Hd7Vo$%K7*T9ChP}RuPRnYs_I=C=Rl3@UW2+Kz2xSyOBWtna>OL` zjFv8Ze&G-6?#?K&Z29!{kDYAFB*?K1yX1M?ptr9%heO}Eb<_HHd%Cw) z?{6gJaQAKUQWpjK&dRRr9AR|6BT^mg#08tiR_Zpq-m#aB7~`Ec1K2m@to zX@&Yx^|fXD%5DIk@k8V@0JhqTp>9f8K0-2u9-zb&1TzL{S3~Qox zzpM|adPvg9Q4PxyH?*(|9F6$2&9m0BvxphYKv)NO*#<4}1#v7nxNu{2<-h<|c>R^@ zuI=ur%1xKUbj0d#*Ek5WJs&AQ$x`>4?W-re7fwjFFr4*rF-UL9?+8^yMZl-WhaJdg7GJ!pG%TxlWr*j05Kj zP&f838C2@j=DA?1mvHzp@f7YRNXqQN9i=bqm@naS2)X?LD3q|dD=5NcbYXwmo6l_{ z^-iOUpej6`@&xTr?oeYmF}kW&54?*Bt@&iHl{m_nwsM$5uiu?17jWS83zLvJY;d&Y z7*rchMvTf(1c*;rpmhWWGpG!Qz7@5_s$gpO+;jWmuiSjogM))N-TI@)Zohd$05W2< z5zsDy)-BalWw*2TudY8dv$4IS@6_J?cRYOKjiU<(X3iel1v4rhNa-W6S|szjOnQM< z5;)&Tr&!$F>+*7DyUiN}4E;lP7j5t#CP-^)!<8N*yeK#Gr z|3S<)HFaoc_?EF_(*!iz5xmXB1mmgd>fezjD(`|!yv8&c7A%a&t}_q=iTng%~6J61>l&mC@I z{2?`Wb$BUz~n&O3Jq-tl?Z9N7~g^p&pIX1aG}S5VnH+()a@&MG7XSF-!$~xgFSly zgEhBx`}EbnwlmQzFeB3H!F*H8sVy_Zcg(bXjCH^A9jtcUn$9*hd1cqPj{o2XySh(z zcW)kFQ2OMF(zTy|aJaL7Vsm3nU5i#VpW-8&fn7W`vaWv~RL3&Po9guQ64G!mnS?r0tRF6m%iB7B_!b`rT)b?|fnBj?HVIdGw_<)30r7YK45Xv-;?< zm+vh7V&(EJzxXkh{?{|p=^9{m%oS2Rqt>!|du1Y-&&3G6N$DDcp1(2^%n9C8{9XA7 zbjPE0yUk^LV8!Ve%mi;PyBp?$PeWD>Eo0`yTO>**2p)jepc@THTd2hpy-90z@{?R4Y z#9KFPT7A6BhK)=-hH3P-A0o6SK&#eZcW!CyoB8tR?JF7rK%=4~IA5ZsBfjjzzq{u7 z(q>+%aXz@&zd1GFtr8-3x6D5@bjl$JxY52d5()-Gq2NKY-GK)olJ)Py1*<9OF(~gXW8%yJc9P^-Ra#u)c&hL*=pV&zGNP18vXVRJyXZbHNu` z!S$<8t~-}Zjkab|?Pl4`=Rf@3OKWGEn@a!M|K*{hJWA9-5929I_NHxH4rB5)a??%M zLLcOrYb-KRPPp$U}=fZ{OUqOT+B>{U5RVC-xs~Cxfv^F4Yy+t=;p?=8fmhwqmyDEy|Jt z3TfQXz``l8&Zk~0{jweSdFrYsmv0z7zokyrv+Q1sOf1L=2~7RO6Ad^0_OsHTy0w?e z9@{!GQIX%V^SL8$R6--r7iTSy588C84RBw3pzduiU-Krta~6C*YlOL_+e zVJ@x`8SNyw5!Z3VIg6My%+F3LNHOgsxwXsLL^!WXi6$N5d0+}YdysfN|34p)>Hqq; z%b(QW*H`*{_szd?V*U2#UftcfUnWnT44A!;j9MUBTXFR@d~%EzRv6R*n|b?$zrym?#>&9I-ihjn=nCZULsbH$IaWIlQ-b} z>P_C+=;Iwu*Hg4m>q^>erL(NSv5>Zj$?oB7^}dYDQM!r|iXPVLaLRtj328fPWw@`N z4%H>cgI1so0jgVrh2w|EI$;H6Nv=P%3tg%z+BNK5CkO(=;eoHAfz}Mmk+5SXb(!f!S~Vs&|`?QW8!E)w+Rq;=)L$8MKcVA zBho0MSw`6a>4j{T=&r%`i$N0n50wjOBld_ol?bVN`T>wnch5&3V@hL9Q+X(_G~xrP z%5_^`efhN;j-B{>bG^^kk(Cd=^8N2GYw*}hJ6{4+>fe1c5ce?_4oWZOiigeNq)Wtmv z%V({AK{gYSM|qrP$Twqmh6UBjDUd4BJ2)@jS%jl^Z z4Xe8_EqBUoBAADpRVFk{E5YX+| zSvMPEQk0!%DV>&#Q;P~hE5W|= z-9#`7ODPLIluTjw#Of5l1ZMLCb|};w0OXU>YIQoh+%}~=;^!^K(*J6&=pD2{W7v&X zLC#ODcQ*wCQ4LvcCX6~alNl>;7+`~=x~NA>p8;$9qfjFWu*|)LK&Q(sE;m7hMwQ8UpYE+@BPQG zTs|JN)fQ)LV-L(*dlvhs^yV`6yeJWMZcmI?aaHU*p=FUp?I8S4r^j)~wm3C(RZZ2< z*givfvUcR^;JGWdE|0jIt16UG12wN$Q3+X5ZBx})I2f36e^9#rg9B$+0QaH=a>C}3 z%T|qrdbU>e_H>5@8t5rWgYMYT3+qD#nXI>Vrpg^^jmARIVoq$K~3e|H<~RDm#uVH>810J+_~_v z1CeNTMKf;h3(A4rQs!OIt$0?qabsP>#Q3g_I}Ob>ADwMYRbS{`?jr(&{^s7WN?5my zcTG<%T{JTIgFt9STVpb@=KiE0Y;LLxl1)tq^_g@Ery8OWn>`w9(lZor_L*J!_Dvlw zU&6vd?nY%*>o2&yCV*V@E@~g*=|s`9NT=0hGMJn5bQZhEb$;K@P*^eQcISj?xs^$( z^cFpiyI9(WEB%63r@_k$UK;>Q$T8g|Uh{3$<7Is?V><{QPkq^~NuCQN7g7Y5l>tc> z63YTKyF$5wDDYp~cvkXapd*q*LMoRQkC9ezg8^_MlIX(`NRi+;5IYpRY--SdY0wt1oSykb=g1Rl{WXRdTkD{dQ(<-GPl)NCxb zb*bdU!UAB1?m2qJlEvvZ2v0_x{fTIOqjzh4b3=s{`Uv#Js;&i9MHQx}*t6#z+i@^W z*lbm+YHDkY8yhQ|DlO2JSCMa+pD!qmhds%t&|L28X|8CK$z+w8kOKgL!cj-)%S~!U zF6_)`^Z}nOu&yXnAy6}I*|V2ofYGzPY^dydm?=MA_8q`H{#n^4Wq*a|fh-5QJ>p%L ztc|4a0Pqc|Z_%B8ofo`p3#6dq@*{+&hF*v>9kTe6@e=hNjVpabnG7jNK+jik$@N&eVQMfFEO@QG*2SKnr+pY}ehZTe6+3iwJUwZCrcJ^pAzWP7*%zi=xfss_+ zI{Mguy>R;QPpWDwGBXngm&~jiUfj?|L)R%AYflpbBeUq-dIAD`UVW7OCU+$ zA>>)E9apConUXm8ry`HYc zO${EE5-Q;yIZ!ZjW=G+|E7p*Waj>kv^bdjMJQN>bKDN3%3DV*z?X?30mEdM=nYR;8 z2xe&~$L?{^cEKvpZmac|JY}!4QqF?nLPc(L-v4#@=$V@i@0r(CQ8Tmt`n!(yw})~q z(Bx(TELH`pgl?ExFMt|F!U?Atu=HuLE9#_FC zfQqEa0TuA->2w^=*{}p_F@oXj@TQ&IO(~0^;JEmeU$9!y@AmM#HSY~N?p@8-O`-P+oy-+vNWix_25XcC8 z8=Nm3F*h2V5q*?OHz1rgV|h0S8hU{^qEHz89+G2eTB#C8l>8|SC60m)LX`v33!Q!T zc(JrVisr?$h_X+@RY>QA!=zDFnwJ94KL6#jcRqjHL#ImL8C`Tg23dz+zWLs{JBqO> z9myG-%5k4npMZ5tZPMuWS|LrsCGrq&3U=RE$QBBEbOtLh2nNl9R`18PX54M|vO!~9 zURCH0IL)jQn{KZRa5^Pa>f6-w!bT0`l2s-b#b7v4mR#4@fqDOdEx!4|8;)GnKmWoy zGGyUpO19p~xh-as-hh2Br_8LE1!e&f5OSe*7UwT~m*Na++-A~ncA5_O+@{h;6eOXv zS_2P_jtb?p!QleJ#PR@4l^9^Jl}};VkKfCOD~bn8KQB$b`<++UKF~Yw>@9DfK3|@; znpouF`)!OqMi_9FSIY{pf@fgEgo(8~gob>;c){hwtu!F%QXwPY05|~g7l`)E6OZ5dJhmCr|0?KRyY7a&uro0V zNJtxW23lv9%U3EWjS-f_fT~)KD>OJq!Z`r=O(p{NGBTu-|>w~MxtID@ZcrrJ65!H2YP%${eVp0!>_i=4GxM;BrRT7xZ~u!0{&8L{T~= z7e+wz1ZbWRWP$logNvNaRsg5t?5q)+qO>yA{dZ&b@v+D5x$62i`dUXS3d_ezpYJKX z^GWHE8yjUuH=VUUdj5`Wd$I-SRO9yS`3bOuAAe@a=tQx(rmknA5au&IrT06WkSH-m z1L9e}6#GE_YN8S-2V z7A`Au&#jMvGQv+oGuZ!7YE%+B#ErAYWY%#3r6N-Eua$h(WC1^* zlw`iF{o)Skr=CC)9FIB#y%}OklSWx~Ne<=v zR+hDxyd)09Y~=soh`AE@eSu!xL;G{zP{@n~3o9}K0tg`~_Trzd0DlNphXPA!QghQ%4AIji#WPu zfUI-KEtCToWefr@_izdY=LVu#XdX}*6bd^RwGcWe2=P|1T9aT5H32z2r!lcU24rqk zQ%d$2(EI|UEMYXb9dO5AT&CIrFj4q(72f`X)G2n`+%HJq- z6iz`-+oWI_&dOSvS49sEp`CA z7JERlGNNE96>f-cCATxDV@S_HOJ?1b8odW8M$Mjp>I84a4Sp$FLK>MzN+GfYfSRFv z3i|wiz9cOaXLiyo6paW*ETQ(G(Is<+&I>OD4x3QVVl;sxMOrx<_n|j1HYhWCDUr#O zzAR}j5SfTOW-mbu9;NdHa(SS97u8#e0nyi#45H|mbGe|WlD09V=#wRV|JndZmmqp& zbkoqK!hn)}K{aHkD=bqG2ZTc}SNBP`PP*6N%+WPSw+CI_*QJ7&&km8qT2*E2yAR$5 z6>LVRUMm7^tofFECv#oED5}GO$Z$db28QV!c4V6ub!BP)RCmsq&}%7;Ri6#iMdXIg z_W6oybXL!Fdu>})BAmHc&=8=LxW)zq4FMoXa3CM(d&7Jx^=g$q?WcYyIg$0+cZt4ua3+v)Ta z1I5-0-vTmP1t_{oOPQ5G@k_9-bDG8(#tgKoLVlzngz4HFHM616q)e`TSuu}$yHc;B;^(nM8D5?yD5h+6cN;aOQ*kB^+ z*J&;0iv}-cR%sbH0QNH!p;#q%Ha-8F_ny3ea&mg=fv4WN^HfhGaJCvu29suMU4=Yv z2LJ=RTp$Q*2=MutES9XejRl+{pVL)SW1)A#jj{lbfe98WbCrzCOG2G1?@D&2YAXmX z7fAs@6_`dv5}@5xi0v9;2qF&GAd{*517J3kS}hRBf;qIcLFt~aPjfjAkXGYfUqB)IC6vDdudED0zZ_@cj53YE#RqCjADKClO<4(t zXDDpeSuiYUhcz-xKnSEV;Jud9zkd|v@suv;PX{ViChdA01vW$%^!sqBBszAU>4 z{09`~2KcIeY!nKTC$ZJoc1W}y1J;ylvFnj7L%t9cRnkbX9>}DKp*Rh-*03*MfT#g! z9@-^oEGR4Om)!K6EB${QLL$|lEk7uiNufO$HOWT7Ut}TCiJ)!`nCKub@hZxsR!(I5 z=A1T0fVP7TlFX)`h3Znonu3gg5{yT%0F~j8#23wqS}YucEigKSff4`_x{5iIrS`*4 zl^PZrffr4k_p?wj2XD}T&=~n21{ra%u?+lH9P+BvsrgS-D8hceuRX_-1R;5`dG^;$GsMcP6h29v_n1IK_YEr7q8heM=6Ia`7w&=8f zksm*K{QmOPnjLpo2%nC5b!NsFUgro2X{xfiwX&u-G(Py}(uRMUaqK-aLzezk`rkxk zu>atdhrYdF<^8KyU3_)Ni(z+-KjQZDoGUFmspx)gmoere_te$*3|?GY>3*rRV2D|M z65asrx`F*RQz7JRoWixXwl+_jtJ2At(dKBZJW%r$7Id7`>xb8O>yjZ_waga%(xMM9 z5P}5ND0^TilYe1bV?1_;{3f9x4miuudUQfbT-;wwS9XU31pxZM{4#9m^tM9_#*+6Q zI)1lt|DN~X{TGPxrz@--otv)M5V~M5%KGw^zD>%pQ2$tGsC+xge3g@>0&UFVYDUo< zXBz6;4CF#zEEF$&)vxLkqNW6a-%>3Dm`po1GNUx=Rf!AREIRB*m04xdX0{|Ut(nmU znZ6!9=@^Xm=i>GvLs#4OpTQt5yysKHI? z?v*=>#uevdjNYi}k8aB8%BKxb>iw0UhLSF>Cgbb&_$q>cx%Mt|o{N(B`ZfqJBMsV! zh9Lr#t9_YR8kp;U8jvdL@^&fpa%UfrN3$3Q(IsS?+j!q?gEs}@0a~lTxY%n z9$bJ9;3BX+?E{N-BUq~(EZs>_3TmbmO$ex@G#L@?1WG!np~`yJzJMhGhGKCKXs8rO zxnX@8tpbY12q`nn`P493K^q{!Fl!2+l2OcHpzlaYH7GY{QH~u{zD_2tFUxc30*!c| z#0d#vBM>w2sC-d0L0~2Ta|JArWL*N{sx&enqCHiL(Tr%kq!143<>3opvyfF$`5`kX z24P?zr2a*eQUOEEKw<>#z(vr{Jc~dB->?j$ipd&45yFzX<&FaK#P-xjWmU$9d)`4Z84c}Cd?KGU2k@m1Ni=8 zs{>MQ0NC3n_@RYO4M}{1OcT)A1B*z!PaIvE2wsDfA7ct z{(EU`=Naa^;Nk%*H@8VOK*&#VU{1^V_DUU#lvYg`$HqeJfhJJ#y1@=^<62)}s#fHs$KtZaT2H zx2v-Qlb?U>wqz<{S&swV1Jp@+%<k4V7fM*AmOsXi`vfOQPdMP&6 z)t-y6vhIogc~%WLMtCY##%S-IIP8tQhfS-sou_a;b<-hfAhJ}0Tt7^^ivGNn{u<6b3M*>WVUTYn2> zz%1s0ruLx2+u8%`idf;&kmhPt3oy`iK<)eys3<5?0*nH(7qjhVpgEHDKmm+Mw*(pk zIsv>~U||?miAsziRuHv$PWQpah;uzS5cD4-#jn7-_}t72DI{35*)NF+DNtxB6+`~# zP%7m!vK6^%4WY&r%Dm0kjpJ)p-+1#kulf65OMlsXJehSmv?icrRAZJx2K)A|sb6Oy z`o&gw6r9P`%9@=o;AYO~Y-Mm)=?zM+HPX%vrGuqz(L;Pi zxJl^Ne)p-mR)t5WfYLaX@}4xXf>~N!BtfyH(O_u}OF3;4i##7({RAHA^ZWPEpaU7T_J#qNxWYW>{qgh}r;J zqb@>(2~cu40vLiec3cK|K``>-_&`UB&JV%^@PX*ukbyyYF|S(50z$NSo^mV)%XzR< zyjB18M zBB&nE1nML6T8;&9KdvV*>)wI+8Y349)xRdgnU;l}=}bI0Sd(|+N`_}RPeyMt8VCzX zn!f+e&wd8YY?R4l&@lmjjG|av%g1f53PL9U-NuC-CZov=1srI?Bv;ltHL%nTQzuMT z%2_FvNWf|x?7?|Tk&&$dBZujLLCZ$4Kw^^9RA*$>awD6NJJLQVL+{d=)q1_$XcR2! zFY8yvE$Xn<=}Nj~X5a$R%ADF&A*cdWDAf>S`u&6+$WT;Rs|+CUoRlHS>Xk~h)e?`| zQx^}as;osL;)vI;>gc_1yg3Ts_)OvwrvXH})V|u&8T?ecu zDpJ*Eh}&(Uy)BRYbc}B7-Jd!!PjPT#uYC3ViF5B(Ry}IQb!(3Jw}e7<@u{)L_Zs}? zQ|6(W#VfZy9m?{8MvDo8R%;b9p#_Hyy*$zaX!{m=q`t@38qV@v^06Ly>3=-!FcD@I zRpmsp#Z%O%-72p>mhD_1dul_>sF$e$)7tm!t%mwSgF7cn7(E6f<=paxCev;>kGD1- z)yRFUapXSA1^GlE-Mjd$pAL7}ajIgVnk2`1I_Ak%Oe(`Q_F_#e(%b5>Q(HKg^fv*{>QKAxZb=)gZZ8NT9HA-DPKx4 zKWe0`Tz9}1$!uX6BR)E3#tREAa0ngX+q*Z_X1&`)f&(-v9n#s+HaQsOxf4m6 zgSH}?OxP-|jm>TTddJt=h+-(3`ha1BhRpi+fBpF%F@5jgT38fpO#2ycxkl^LnqY~A zR%kT>fH)W}#*yNJ<&k8@Z@17^|H0mQmF8`)otaq3t8f!R!FmX$IILCSjw?3Yda`Z! z`$>;cD^~;onRj95+8cHRoBhx@DOfBPqkwsO+`L*t<2oExEL2gy*`zZvDuWrOH35O= z@mnT$q{nh1^bwZi2G^|-UPS$Jad)I=zo_X0$vwY*Xx(~dQ)oLa@% zxkP3{uT^83pr`Bnj?J;)P-A&hyw@h=o7}!d!>#F76+wk~ini6%B`&^@_BGjQUT5|j zjkwEU^_32q7^T4k>^xc*M-hQwoQ!GwT0#k70H8ao^o*ca%T@Mh*xIE?g!3eA#0#WZ zDc9k8E%*rq^i=4er{cP@V%b>PTBs3384vKT840EoVr*$?Py{YR{ugCC#8d)^95{IN zM{*7_@jpm!f>!{^L>5#E&{1v|1?FPNFRik}e1A507iTNzy(mEPlUO|Q%`!fgg8*NOa-fpW}zp1mn*f+82 z*3gp9)-m}6U^IWT#jlV}jxE_6>RwQl-0`iQes8h&fz8)f*i&Q@Q* zMmlYoV0UkE>+`Oz_V=CZH0I+?t$ z|E?WZ`gP^8r}`ecuuE^bV<2ZI6RG_x9k*@VIz93z8Qc@>ai8hg{MbQY>VkUAB&@9)^+A;u_$Z{?=bLKFG}cr1!p^O$D}S*1?i=4e-QRqFS6@d4e`ay}qUNiwOs;w58y~Jn z7m`&l9nz|F8oi27DD|{a_3!&-vem6S?^C&X;n!z(e->bk6{ZDCoJ|UY8v1x3JT|E7 z5>b^;&oR6}tptp6U<07A8LW0;K2I%4?>Vu1S=b49M6{`z3 zWv{$qLt|IzHHD+F4K7Vfr=eBLH>N zVb?1&ZkKDJ<9kn~hc`EFd!qZ<+SQ9TFJ55MDLua1PnDi6eLQxu?b`g6N4ol+`s?O& zLrp;jto8tCF7t6lperz{74IEaX4XnQD7OHBW8sZv|h(0CUZxwKfIc=I)#R>j&B?uGUE4BKAz>{zG^3gLVBAe zsl`arVg;l)$2QWQpj~b#O|f!j;z7n{BWb6rJ3U{iXfAe!J97Dk(%p@LZL#u^!kVM7 z_?j7C@fX%+b!v^Ak<5lE(hTRMT<-!=1C(X9Iar`MT&-mp6J(Q&SZNr76|D&e9yi=? z3;OL5nA>Q}UMhVb(C+^LeN*j_FJ23^{ntTV$U9|!0jmfS1|cg5nxuSERg$!}b=eb( zb`OGSB(KOY&aRR}T0z_b0?Vo(q(&hvXf}ZAV15+ULUjl%%8TUMqS}dh4wSVJ^9@pz z4LXk;I7q)3H$%=8mZ-!mhIlSfLm(?F9xV5&khZ{(;%7L6zaUbDp&nytkN~8orGP;6 z+b9Nx<7exY3s_?^cK5-dhD!CS^uIUkKYSf_-(c#TKafKvv@RmblsA+=I@j` zK5yDF(%7VEFcy#Q9D44|`A--9k~L@3cj>&pnlu={dbM<9!?$q5nLUO8uj_L5xx4Fw zIKeTc&E;vMJ33%~xF-wC3W1is(Hb6K^iH=eJut19RH(tXw#a2OrBlk52OsIQl&>1{ z6Fg|y=&Q?``-9)O`>yDN-Qz2(g9(e%o(^8bw6O3&1gxbGe%|0HkMOe|bo)2EJwzdahM3B|s+V)6O*4AT{w z*VdE@6T>@FxkPK*(F7ZG;rjdUObneGZC=L6M$}%vS5?==9*wB=fOIr(Z)~Zo^kCnr zl`@rsmjRS4kjK(BSx&CgJO|VHuuE%^d(EWLT3*%YuiTy6Nvc__`Tu6?JHXtys{MDQ zkw#r3%}67Sq*3p^YgcWxy?ML6F1zdAdoQt_*pAbk#7=V>X(T{;?}Y>i1b7e)=_jk_p22K6K*-Qjq}TRnTJDC9(QHTo05Q{ow|x22tx8-z(sBx{zK5}!P}VO<+nQuv#Y68%Jd5826%wT}2@P@3H{j-= z7$Vc1kfVqLuv^#!-$XZ|s5^?kqrdb2(H@8k!{SCHB9Mm=v=nl43&PTbl65g19+7|; zfIx}9;wQlo0Q%~DRuu>y;o=0=k1iJApI{686TS#gjpA|_5!Hm1UjuEWNd)K!;d2ea zKFz-b_aXcsZpaEkM5Gg-l6jJWCKzI31Y9RV6K&qSNHJc)--+&4d|jX;xNo#YtQOB3DRMQX_QbsI=C!F)f|3 z#QHYq=-P5OGOZjQgDN* zr3yD~@@NnyxCDCtSZ!vl+9g#$9x|b|7VMZ7a`oUIsftZ&f#9ZGYQPm9r_D@jp%Vs3 zN+>rrQzW1R*-5EPqRMFG(63U8b2gWW;WR3(5;_3l3Z1b6Yf1sV4WhvPOOWnAX}~L6 zY_vI2$zp2|!JG_ z1!ck*u2U=Z6s97eRfCxWEdqBbWXJ%99bp=Eko~2_Ah@f?EJRW%(JG8CtJ!7)yBpex z5~{EQGQ4yNh;Hj$9!r;;&=7Hx0-=}5^#rtxacfnOVXV-4R3wDc6v~iNZP3^aN{Lmi zO6Zi}=TzVXslc6JV1QC8BcNqBIFzK=wof-G7Rg7U6U2`&2u;l6M~ls_5T!PqFQ^L< z=yk%H7neRjqyQ&DndoP;MqrgCS9N1BMeiugEIq zH=;{#>e}cAfm`LF2pyU$H|>`T%*m`EFmqcJF!~&}NIc5*aNbmAT+wB>Q0?B~MYJY3 z*wvqo)n?a7m%E{Hyk25l+BZqucr~C`)fZKBA(m<@RVU-#w(`IVNQ%Nqm42U+;D0<8 z@{TJNnK;MMTG}*`08k@id~-1pQ(8lvoo-91)tPa7TF+MG#Mb;6SJYW-*_fUT7TR4# zmr|iMc&#>Pjnc)}*lmm#xLdqWk@QL=+_!UdAW*6fK6=HK4_jqQh7Lmhtj)|Yc0h+|D^73x?ulzA7lJylduK4(ioH!}%x$$;(qM2IxKe>l4Gx<1 z{-I^zu)N@4xNbdWP1IZ4B$A!mL*@V%D5pD}L6vd&Wc#*~V`%gKif1h54}=C=rIN`3 zB}(0r$7fs)O7cUq#%A*Db3<3ApcfiC*e#?dmjzrOwUJKOtrlgaT^EhS;^UJNsjn^6 z*4=7z|(zy7WHH67aw|Z(bRQ2*RHBo2xW^zGR1$D z*h>5rd^Lao23|{XiR3|y2%q4uXuKg(0Dw#|s6<~itQ0{|0v#iI0M!rH9z(&pa%TYB z5J@mh>`x`^2dhmKWa9D{*5AKx5Z5TOh2Q`;(15t+(N+9k8i1>m-=X`87Eu?TLY$3K+igAT;zN3h zUb5hhnIF&=v%$`9HrkA~*S`<_U%x85sXJcEatX?8H!1_s^kmHz(OI=*t2!EsR~sFG zLIx`-C3gpQ`37}*uJht-!fGVb+3?JgidCfylr}WnE`!cBkV1K)c*}eI4T=v58gQf! z0CMYNz~!1DR5Yody@2#V84{tqM7Gv64TMKglfcvqe*|9E%mZ<|e1eJvtWGo?&{G%n zqF(Rw5zR3UTiqJnhh^#=U-?}42fJs+>Y3?b&qeR-)r@XyU$A+u*WPG-oWF;E zfj`xm3dtNgjl=2AK@iHWQE0WbM2Ry{W{btFP&VRGw-1+kUN!5v^(QZVvEKOcsU-sg zVL&z3F@rBYixFd^&tJE~qc-z|-{8pQPHh?itOlcV>$TD|fsvg%r(f?2C6BU$9qz3o z>lz(acJZRpXuMuNRq21@-mbMh~1ffTiS+>xNk;;;o0tu{wn$UgTAtC#T{FIVJr$=BDvlr_4z8L*c$ z1DS}1m&)y=+wQPf!$uQDSO}yyt6R?Sw<|Nm<4~V63)QmQ!2^4|Y#7DwQ_S-2y&lTX#8!lpjWLd;DBDBN9zS~ggV9Nn^c@HXO1J$* zAJ%v={F00AfAbGMZDf4oZzm%AZLr8B8bH{j(+`qH6<<>|*oaK3?zmB3EJlM7XzT4T zhH(Hh*?P594Z+alv|P)7F9{lC-z0l(n`Cgom5=`svwnR`wHi{6OAKQK9rJrEjn{SQNDnNVoZQ1kWqyNeO=g+>kNSggpYbf&c z(LJw3Lq*xkH5Zdx-M7-FVXzJH{PZ>efpoE>q3{=WA1=0OA~&wty{Y@z4qOhEV!`%p z{XLRvx0d6iN~fZVdw;cS%Z(AGtE9n=9@=5=dCg$eKji7NCA1Ny-#A?gwaFDf>Wx8d zB9k+lBMwbm;c_ZStV$EEV6VbN&Aqw)=*cxlADZ2|bM0U-VxiQiiMpu+`_njdpA1|! zl$;x5j7EDhOc|5$c0I|M4^OWxl(w&VZ|+?}!nq>Zj_y?0%|YTm-f|iLs50~i10WB&Yi-}=VYr`NtUJaQ}GApR9|Vz=IW z+a+_hiKUm^KD|uurweO4{q;W2cy&11zbWb8-_^cka>wB4)KDgk{cS~|T-mkfyKnzy zY~ubKuHCq`H#RJd^}7~!dP@q`=GmS_F>ul-vq3wXbJ>C}S1tcYDeCb{mhbrcYd7Du z|4_NIVcT*3Q~vpvUj6Eo{9i9SbsFhy9PTF60#gvm@DopyT= zZ_onXx=(Qr;11barU6ms8bExw8~j4AK>gZJTYl5>7XH0-~LQQrhG>u!E?Uf?W^k zGw9KY&t9lPL`V9YPFYYMC{Snx2Q4_2gm>Xk2zCl3acBgH+KbIz(E0&hA!@zC)Az%n z!pUT440Kk%_#G`b0aZridYOXa9$Y=qvu_K3|4;b`{=xsF;XZNXowu=rk8N6W-LeB6 zL&p#9-rafa7pE_d1l%MwYB5pvy2}xI`s%Z<_d@_C6qvzge{=J+0{X1eoQHBi{C`QU zmQ0>sPDp{YlI&6|1T>Viy}#my^iQxa!Nl`GNlnHd0FYi>Tko;6{0u{zd$7SIxHVd5#OIFTcnm50=XUncvzsJ9N*R`K~_iNj>aE?u#Q+Gc1 z{;T}^3m3clNDws^(2VLzP1@uRcv$no87%i541dzaX7bsKuQ993Mb4oE%zwxx=-j;h z`4=(GutIH81Co?Q0f8lFCGFKKWOB7mzaEl$hh-prjnGb(&FOSkXw41-XW_r<_fZDF zL1VUo=4dc34YPEIQqk#)s^v259$KT;kKu&H9AzWJ1`}s7X(UdMo>>_%g)9m`X$nya z;#C7f8W@8{C14xNTK4k`lnbD@&?eA(p2E}^M1qteG6?`}iXZ0JAH1VFlBRzWEl~8j zuw;d$0}EQ%0{rK*ALb<}G8O0d0(ubgwSYY(p%(#?Y(Nsw>sk0)3_^q{2*BV%1knkS zE+9nxF$}KvKA+Dpe-r=y4uv;x zVPh~)U)FGtv+lTZPz%Vjs_wZ7lS0??MU9!%7`}j|pV62Ndi67yMB`!9{M;O7)EG%K z6q?QP-@J+*hGY`U$T74>T;5n&OX1@0|nz0z(7&}i;7_cWKg2C zbSa^1)!EaK?L-1hlZ-JCW?ZcfsOg-M{F63c!GH9tClojW^w)G&I8TrnNy}*H{tnq@g+^hxd%>$6JPp(?xZ;Z%gPu`- ziGTK4je%7|(T(Ex7|=CE4g6`TOT!M{1?lXJ`cAC>A;_UuKZG$F3#88Tzxxvw)H0-+ z>{R}L)RXpe;*W;QxBo^W}T&>=(3#>*yXVlN5B ztyL4LVHuqjW>o92=E^h+9d->0LQfZpm`fePRiC3JW}DGKQU>tNVFaOJb@Jr{gid9U zK<+*?M^!-H-f~aMq*H>E40>|Nacf5*q*kqsLD7~Bc$1pay8&DPMhHNcPKSneR?SvO z^#zZbN!tY-kO6}t0;y-W5sM*DY!yUP4nek<=r{WR<}QGQK_O1si%1Mwl7VeZBPbR` zZ6JgY9nMpyU=)j1u<#L~rVC)lh(={dyA{}l858`wg1U?FVqm*yEMD-(4j?6?~2)_?z%{JQYU^C= zb^qw_w$YHvHa&Ik2Ya!#txtws(Q-ux=wprv=lOL2P;BE?)0927(PQP9NvQj5In7_E z%n}Ub4evp-F0d_e1_g*e#EP4pc`o#Or~z9>%uG};F4#NGnT5vyzX~Qu1~;Oa#u49> zLU2LaY%Pa4BT^s`%a{B^N?4&fW9RN4{^V!B!PafrvU?}L|NWQly!Y8Jo*5W?`K5Q4 zIw_dVU+n(e8)r8RZBZE`q|x8rxBqjyZ{MGo$XAR~|C&&ta5zU_joHag#r&tF8&|KQ$ho;0t?oYvv6YNMq0135W;9#gj z-OBIUw+y_2k?>Lh3i&V$5`5%w9NV$=X@H?&)^@DF{?r|Re(lRccF8L5FYmZ%y;^T< zbnzDly+o zu8DO81Iwmwbn#!X6mq)^o^rW5B~|pa^1pccrp5fnwTm#at*i6+Q@M#~Tn{}JHOf#W zVr17W3k~(~Bjqc<-_dw}+2bd-J$mPRkDa~g_R(QX_0-!3*;kM*j$;IWR`CjPti=bJ zjh8@9yx8rlxmdj}0XiHe6P^n^87RjxqjYv7%p*JmVVNRL0O{GlQ3P#6c!FrfqN9LA zAo&iGSq{=1sSW5WY!x3VY$_D}^BE9=@{9V9ijP+u&FfLTlFP1KdE(fcub%@OWn`6) z)G_HqhPD0jXa5Zla>-wP@WIDB`yBxT-DTOmY$>+#C)>6iS+g;>I}obG&02StYH8F} zimwSSi^L&ed$2Q@G5Ag-7p-8+ODuGMy~c)$hLlJ0+b{p}FNY^jZux$>?GKNI{R4w- zMO|Sj3#P-mW&zu>*=+2!xD&_A!S{Y51bB=*6`*$C>lK%(4ZtJe?+p+7U8(Aem zkk)`^XzQw#>vlm3WgxkBbFJQpxve@~OmgZz1DP#de0I|zsfjJz^B&9gl(PvOB6j}J zrsC|ubypT0T;+ypGLe6TqK!J8#o~98WJ`;x<%j$$;73~xy^vbLmo^Fg5>7xq+k-8? zXgLSZD=$M)9G7HTn`OSL`wz=x(1~ zwQJLoB|iTABTseqNF@~IAAR)7_~Va57SQIAQ>WKavGbBHmI*pccC29V*qkP_XN5*@ zWjL87sMo0Yuj>7A2pSsrbyEbVFk8C9q0!01n69Jo{@%C#hh9`@HQKBERs7t;5^c~y z*=i2v9CbCUz!2t^#8zlEpqS~7&wc47{&N1U$-YiGZn90pW=uu!-O%If21;I^-%4{? ztP|5Mm3shF-%6+YlS#vg)2v#rEo_}0*=x0V?ff_I+py|wYz9lc|MtsfiWpC>{V)Db z{t5o+FO9b;0@w?ucVE7)d-3`$tB=g(Gcv5FbLZ||uYd2ov$y{?dClgLh29}x=+Vm^ z?W0R$>+ruh7sR4NPCy0qGOm1dfd973VsqQI^swEMTEKON+#Zkn{QoE*0;XrHqucKO z`KI9o(@#DzH8_%XQg-uAZ9z#fQi7&ti_ZT}rb#DW98yD>m|Azu_3;@wE^X@xQ#9YZ zCQSjh(82(lOwk4z5ntkfbQiV8p^y;{)nHCbFsc4ZCqNI%h9&Y^VW8)LUeVd(&um@_ zDJW4c>5#%YpX84zcR=q!5A+_~2mL^P4OO*aY!F+D9fWl*nED_L0toB7MTE&h5p|Ta z1?vgwc7)X}EIe8VFms@zAmm828W9~J<_{1+C@~pc;);e}Q4KVb-t&y9snWo1XuZ~i z2sor}LKYty1YT%eqZh=+gbaNUP@;M?zo^k#MxWuGlf&rZAxP&!fh~c{HHSe81d5d* ziUdg~fg3|A6*>||fXm8@{zn1EyCwk!I{#|gZz7S+n`7uOc!_60*AJH_0Hgcol@QVE z3OCcdKH+#sP(!mJ+z0qKm4Swmnfr#(?er#U`_J#?|2U9I$iivtZ9VBLhHSEXqP6os zje9s!hXZCB6veBYCYp!56iCCQ0k={q&p~~J0TstcR9Jbi-VY#p5btu0N>wIHAY#tO zSW*v2!W`?0NUm!HoLp!y0QtXjzf?e+RfTJ{s@jpUBWFWZf;I)rEBlvrx_djrx*SRA z)G~!M9pa3v-e&a;hOB^!1Er1-V0D1=neba(L76=6VJtdTxGtGhQK2P_HEYXvFDqL} zHs*omC^iU`C;aZ91u_8SG9?3@Sk#b&Mqt_Xs=AHkmc)#v^KXasp=dI@XSANFq@mF( zZ7DV!Ue4INrmKUr%^lX*8(oEj(;JOR6*9e=wbCBDy+BBr9-B!=>R64uFOKba&+9CO zrGIh)FmHnY+(EaCQ)GJnv2*45{j8SLO7>B0_@(hyi^*+fqz=+yq?L(mT1u*!Oe!6O z@@%)?C1k@en#W*S`6UkKuL2(Xg0-;I7~7VW!&zeo#yFGQk1N4c#cI!lpe^^e)KJx}CyhE* zB2l}vW@E%8R~9XTudqe(=}pQvOUQP^Lye$+kg=YFJ5R||nK*IrQM%2>8=tdL*K}R$s90voz zk0RMafC7#|zCMwhP?%gGOi+c;Rv<%AVg+x6K*Weq&N86%1`%9RqKR(KWt03=a@Gle%4G&=Gb)jZvwtRO@^{HfflE0OM3VAn`v>2?W>huIh^KUFlK?#i= z;3*rns3K~k`F>edU+s4~S)JU1p3-x zw^3$#AG8RAILp0!p2QIL`m@>fb$a^F6EA4C?@yTP25xG$GxMJ@tF+yOO+$ zKED38sTmFK;l4OEUa4)s6VWaU>9*ywC)>C54{33exmfL+NJ{y?VJ562WKc-nVBPwx zOy(H%JN4ZjsZQIuHqFN%jfhg#tBGwdGb;kJ`jyvz>5lz(Q-+it*Z6KYAnTu;oV96i z0I0D$m=Yn$2h~QkTm_vY6sBY?>ma0>LDjUw!_sOTH!JfLM{12wZE4W~j0~^0Ab7bL^zytJWpHV8s-(l=R;QdZUBp2n=Tx(jEj?tS7Lg00E5RO@&WqmDkF*w?tcdKx1DGTnhRtT;LhVEr67Ck!S?Qg7}mX ziG5IZWuVKW)Vg{41%gAhRA_I+X+D$YGJ&4aj)EkY_dwsv)DLgIW6^ah*>ZB_E&Q{e z^Vyi-mMbqiar+&2ZrHWy`9~jq`{&q}UHi`cqO|gwyN_M|_+5(^)*VJeXXD+?I_>uO*)a!R96Fr@)3pq*8Ouf!22EB!BY~9M0$JAJX#+I)w6%S8Otk0DkUVExF z80d%SfD6r)q~&h@TBVQZ1P*^G%u~|^g(d|hc_1yUSi^xI3DX4IfR{Cm6U4d1tpWp; zi0%WJLvf}-0txDn$jT9WlEMqwNeLK1RK!H5u^6KR@cvh2v1$^H!LiSX0z6g?xz!(sVlF#J=;j%e5=ve(jv!x z&OcB5N+D@+L07hwE%&!P4~SkMQDItPnnkgM*uCh4g6T%0OiZZ|HeJ~Ae;x%i5=BpD zUigYbG^HUL0E12qg1CYBluXcAk*EnkxDVbzxkbaFCN?H1IPr}P(!SACmF9y5BQj%= z>_yZePzIt48ITANl!*0%`f7-@gQE7?3~nIU;1F}&IXEYCackqXRu>3)}PK+4EhpNCxg9c2O4`>YpXYU)7Zn;u=@g*0-7TjzoGKv1-*oYXRkT zWWln59M|yijdC4rIXSvu*-(b-a0k_dHJMFktC489*M+@ev_`{w+meC6fGgPAAWg25 zqeIjEc{ubui*bR#P@`dWL+4@w^h!Bq+h5NtbGIc@OKs74HYK`0MR&4t6-ifvw$G1n{yC#-A&fkhD zJC$YDeo}#G8vsi9mlbysmjhx0QoMfi%eHyBy60=lG8L)-j|2Zv{t9Y3^f=hlP$7eBN3;NJFW z8Ggfce^5p)-AY5HL`sMM;)PrGUj!MkhcK=eQ2CDa4~|ZJ?Zw%RqvQ4V(eUP3vsJhH z@C}P(+KhR{;mFHx5PF?SLrW|qZdFuPOIJw~@uyZ_^^U{4>!r;@eM|0Rm2;hstZXfG zZSAj(T--h~AgOa?qr7b>9$ZihOhL}iUoMmHY~Q};_*ih?!(*@C{rTH&8|d?Sp)~b) z`sC3UPMjPcx#l}xiuy~L`trMC!Oce+-K*ILj=D2ije|=A_QpTK>s_uLKX&!a_YFUA z?ZlFG%d2i1UR!ki-t_6$j<{~$Nd{wqlszKNGK5d#w_+REQYe(%Hl!v~mf}oKt?$Si zAvrP7tx%_fDM}8oYCCa~-n^owG?slw-3-p6H6g=(&95MSMr?!bpS6~SfFTTBb^K7c z2F_dH&Y-^wRTa?N0U=LZh@cB@al|vkoOfXCuoA?zKp>|i=+6Q(m=~%D?^9S3ATGsi zqNISwjF18a=cFv~t^2Y5p}vb(@&}&g|CzXWVDSF?v9biaw&T>Ey?1UI%Pw0}KD|92 z=i8}u`>wry$2zlub7pp*xqj!m;S*Q}OI)_LRLG`ZJGOK0mu|g#d|YzVN4MUg)DrPGu2HB4LxAIHi`nXhP$Ve-wvXi?y<1O`I;Vr}UAyM3@4x%Z^*gtn@w+;^kDq)F z+j0JJ$>}q{3bHO)s8-GA7yj(}j=s6Cape`qOTt{su_68|iUY(w&|h~2#EdS2o&^Yn zNvt}Yry5~~2w=VdbqI_WW*xl@^O==Me4?2Is{;NNb2Wu{pc^r8f$)IWHti!+l_ngG zo(?Lp5opL41V_8rP_-y_)Rc?QK+syi#k*I!Y{?_54=W&(l6Eq=H5=Bx{%3wO&wsjR z2vc9TGSj8B4R^k^f7hKSXP<6mZ^+z)fID$WU{?XyAZOgU;K=N`PriQTniUpi=gtT2 zd;gKAT+@s0xor1AX>K;NaHMTp)}$cUFZDjXy?ts=`}S%6=cfQ=Zy&acr(&^cTOu}9 ztw&!cje%08{82o>93Y|ZG^ zDk>Ut`Ns2kl|mwGEl;?^3)6n5gIRWkZ*f*l$ED{#R{^j;7Ai_i>ZsR%YC2?UnHJYe z^8AR58Xl?UHFDeZzx~B?~1<+4#lG~ ziOtnkjrT6_NC5oLCN0f(VVJZUf zr>8EP>WsURgVk6Pmj+q8(cmOd;Yu~jLJp3C8ksFxiClJowODLjv6Q;JmLT=}#w0|S zPV4r6vdH1bR6p)1FFDngVbprNlkpmZnizh|+IN2$ox$SS+{BL7@U9iLUb6?wLH|`B zJHjpCbeJL?wRpEwI_wIU||2V=jwrIQ@3@E7tzK;31d@|6a=$uOu!S1L?e?KqnCCwsfLxkrWb^L z8hcoZ>{x<{TWzF)3=&c&lWc`Vh}8L?OZ{GHDbi6}maHFKII%1iedyrmVP)PL^#f?I zOn=@U_BtW~onB+pC<&t*$-I_d^XnBqBOZaO@P{x3X2l{+Dn?5YY1K)HLL%uVXefFx z7DYPN1O8Y5QIkL!LLsuqRgrl7_m@a(#ey0YT5#|OF#*JXn@m_35l9BPt6(^R071z{ zbSPAEAP1GCAX2j6go5z}>qttO3Dj~;NQO^H5IrT}vQW4Q!mWbBhSV zUqrybjKD_^>1Xh2mP6J7C+KP#cxwLqd+(Htm+=zj@!37u1**aYSnDe;L&vF(z)4GB41{ztG-T?3+xSaCackp|6blO-sP*lE{mFbjbfxoX^O;u_?c!oc}c5VAU0E{xY%HHu0OLy<>tM3|i?#BtchRL}6R}@TUHDOsgHiRkfUa)XAqzL-~eNie= z&oKDv0wA$KKNehOr&ISn#xL8I$y*perx=>tG9+2JZyg{86Xjha!$aSDX5nbDIMLXb z#5n%_b*%;`BXx)WhmS>CG%Y3mjPe@73ta>`h>bqeavtl&&SGD}o`oD6gTx6G2F0V9 zB2@&{1<{YFOF~enkPkw2nFq>+^RSu)*@>)KUrNfA#kZ)oNh*A`&StMzJl2OL`XT_=WK4NlbKoKBB}i`nT|YnnOcXn=ykO8fQnXO z|HOh8`HYg*D!)lkTFESq58W=a`wB-p)C?@xe6o?#WMU3q*u5gDl9}z!F3J+pkmQ~= zt$$#GGeW~xo!$!WLboyAkxbz@0f70_xv0~Mpa{l?dgUHlA+u~`ytCtQcc0ecAoYQ(VPSRtv#E=be}}7j`OaAx3ZDOj@1Zs1{h01XrJbzh{xd znX=IVi`G$E&ZRg;W+S0oH&gR-F>_}Fp1A}ksq!fmj)j6VPaTQ}!euKoD&&mNP+n_J zJKg%_Q!XS<_n6YC<~Zi2IB!u9rp`?E89jAW&f zhpIR$1D%AzkyVR6{98O*v)q5Re$WY6Nv@znQ;IA*O)dF4>*K3gPp21BO30uQVvF>!i>_6wTq2mIgr`YUQ}#>R!) z3S$O^A?zvS4_(q;FDsxOu0&?#00BydnRJ1QF`<-5YkV$P4hNz>?=%Jx3sPqVcqjF} zuiRJD-4_pzm zHn=5UYh9+SX3T&oO`1cdSY3Sim zNPOJa(dw!9rsc+4cJBP#b(ih$X1SPu&(6ls$>TTOvwP>6^_$Q3Up2S@fTaTAoe3B! z#|^vO0C&wqU)Zv1$Vb4FE8i#E`Xh?8rpDTzIZAaZtIV zqR{9_LRE|!NIL3oA23r^H}}?g>(fH>}GqIRhjAB?J>LEVb(^s__az2Ia5%njI>-6Wfex7PDiPH zNo%~2_jzCBzrAzBZ?PQOO^_8c;ZjUTRce*pzMo$z!(D{>+ONl}HH&t}XW_WGw$!M0 zw-#pAfOmjV$zJDnV_m3VFAP8e&h)Y5<+M~(AI=CjLQ1KOMw&~M3;iwOZ)-(mO-ZxEg+}@ z0+mzHqJT8YSP^I)XjI^4!eDSMun+KoCK(9|6w;{xgb^uDXkQu1R}d8_w3lG0NnsP( z4f2T)^(F;CUbGEm*CCY-WfwpnPgI)%W1|8p;E#e1h(;3Qa77Agu+a;&tmY*H5DJ`G z{@~m@zG(ISr6;d%bRXJ$+3JwS;v}dqC^};C%eO-!ZDc56f=TikV(JHe%&7-r-}=hL z`EeaoB7xu+0X`w-*0RSRKa zqr{hrhuzh}W!PprU8!C3&NW{w7hdP}L=WqkB?sY-<)7v*M~ zk7}#bWJ}me;vq)#VwR<@ZqCp~c3KbJl>!ZQASfCyptNfP%!frYZeS6TAn zJq!>h6jtcm7-6(!OdQOkyXw#?v?{$9*BE5BN!hgzRATLGH)ZZ!`9`05*qdw(YM3sc z-Zn6IhrMi|lYuoGY%-(9Ys_ihz%cKGE3bQ=vg#d@(#`!htPKZmb2}LwRg$ZX zQWZAQn{znTDJy=B9XSFdwO{A38fl}-t|(A zH5e(LrrDo#9pAO*_z(r~@PKzo8pE7qLT=PGw5SIIBqJzH3*8%L{eaTYxh6XKm$)Nh z*Tp&OhPgMn!gD$^cJV{{oVTq<{)ZPG`!}rKe3-FYhq1rd?9dEDh2h2st&$PSuuNx^ z3-wjXmVNxQ%3L(Qk4Bfqn~y1(LQRT?3d!Qwj^s0>q6d6T0X_fqK|WU=dLHhb$ez zyaGuG-#`uuLjVb*@4}DGpZ)XuA=Z!=15qMjgY|;07#I$`>A;u~l>&k0(G7@jZAAhk zJz&kk31FEbOUF7uMdO?G>9Myp0&SyMP~nDML4q)FGB z-yr!7K%BMZH_T!`8aw2G50<18*M`RQWWW>fHoOit?f1lH z2I|#IWU|H1&@3?npwQs?ffAh7c05n`l8~-AXtuFQXiROOGQHB)I^NzR_a|evPb7is zzxj=yY+m{G$Hq=LSgq2_KhNhMy63?o7Y!ufaWWsg@B;r8{*@P=-IK7G)k>Sc$a)%W z3)saZ=XKX7HlEtkztkTMhN~;ek)p|jIZs!S<8ME@W@9!N4KI66{(S0)Twbasij}rxvQp8@+sfHOTN}pM15+}k#p4dR3bnR( zq6g(tHxu`}3gwUS&K|B%-4VHn-+x8nuIa^BmOLSqvfAIy0t$$#$7Y3Gu8!q|f~7Mn zf_~+pcTQfi;O>>az{l+FB)=&i_4}~yYM5SLjpO&VCDVTY$I>V)sHBnq-&1jmtsm=N zN6)qgN%uo5QmJ1fyPs}X{8|3ZmJoFAZift$TLo%mivG8>MIK;rk7ybfAj0tPTW2Y{vq;{dqYhb?cPml+q zd@#dyK(2;k#8rdzB9Su-%Sc!X;#uIR=E@TEG67H<4h9wrFxo;Q0f+^-fEJ_&f>_As z@C%=WVdfb^}XtferVj58xws;Lm0#LUg zQ?G?`>1j(x#nWLmcq;21b|yn-!m*KLjA7!=(AL@2IPl8Wo@Jq38!OQM)VZ-#Z4Jx} z7d14tdil<}FWlwtY#*nsHpa%~6CEY+%>;U89R<51*4}>n;%o1DL}QYw)R(nGd8owb zKJm;ICyt$np1ZOumFh}jz345qVn?9rYdbQ#H^a%GHM3S_*!f#3G;A>_rE1FN>5$v( z&ZJBVnS!w>XNSHaLF}^EL)EqSHyoVTt4yFl5}1U`jo&|Z_g!aNDGf)PG*cg)9d6z9 zRy2A3sBjkPW!^->>q(`E4F;)-Q1sJICwn=X(8V9JbQ)7|H=~RwUspH``?~+n3 z6%3_}DvLXnkjY%;VmZy4QZ$hr_4m6+ge#Ker?k0 zPNm%5sg&1~NO-(o)ySf0ncC`T^BSP~L9NpC@V};^iLB9yNrBqQttp*OmuG9x`~n)M z111gQ^IL2z9#8pn*^FBIN4Q~+HUDCIL}2Ra6wTnL1T`inpg@CT|rgwu&y z4p0dP*V6R8&r=bQxJYHB#^3rAznfWMoGgkQ+#78wWk; zSSi$dEew05G60TIN~J2T*D=_>_`v9b@deu(sa!5m>r2EEN#4Owfm+aJ_N}~k_p6Uz zP1{*$`kW0H#u~MIySHsx_l?`eKRH8dNRxN6Uf*%JJ!N-5LNKIZgUzK?058b3a?yy< zmKay3G%llsGB2#3L(K(k4z1qgPv%>4UGl}v)2Y7OtgGfze~fk)*=y2U4moA z-mxPz`Zw+bnkjO2UNNj!W zlO*jZ>R7S_Y`n0zI-VJf2L}hXUESZwF9}6@dZU4Gu+ouEpZ|p>>WFxf7i}AwnUcwA zEOZ zwiIc_Rb~J|kf@yD2nRJ>8eNwAO~UQ6T9O`jg1^#Tm@2y~dK=WNOZw}ZXE*KGx^#Ox z!6?-ZgBuzGO7jvL)DZwh_jeYy0_!s>-9D$@OZy|fHlvoL?QuQnmdaHUx625fIB_{d z{k+})fYIyqirHw4b9wCAl*vTc z9(*t4r+&NT=Pe(B6I_qEz~W0|4Qvcsg002&VwYk!VGm-@VQ*qTz=htP;T>unFAyy_oaea>qGvfizb~TCc`hVSICx5gT@h^y zHspnUv3bNpk-xx!Ag-CuGEG ziDRPcLhb5=9Iob73Om9~{TnuU7C3P8_Rujw(cl#C7bXum=taJct{K>}xU)EC^EWRu zqthZD4Lif62qnj2Cg}f390=e7gGGZt*`BcfXOByiFenmup-@(szxmUE`wQ_=fq9~t zLW7_?7F0-du;3klAH;_QJ2y`uK&qS3{^k!7cux);R@JHHXvGyo`*q_Pv zWioi)pUL=rnatdse!mldMU?6(U*i1Vg`My_oGw71s3x5iPt2818t1HqHBlNj=*eW* z8^J$nk4D?0=XMz>2+^8cc5cn6D>C5OyAFqrmRu@K>5V2&W4t%|v9=HD6|6pgR`ITv zWm%iYm&={AgR4px1%w>6Rt4a)vVno%f0sDJo>ZSfp)?gUa{)QMI_k3Nxs1f(a3-)@q_omi=4=jwZmy%TGFq%P3Rgb| z!N$3t$Iw0DuSFbov&qgs7Yxb?qRYVsOa^>`+UxZUEtvk}y1}hoSX#WTfP*%3oSAlD zYo)Z&9dmghg*Ey=&|A*q_XeQ`gO5t{&>>J`bJF>p8T@g7N@da;qEnk%jkIed9R2t! z>FdTb_xAUuzyQWsrer|H1V0y;wHs{Oluf2{xIB@$v`nX=wPt7-4w$jo zfvCrVjr$$?1<*NNsbrGU#XdMkHuLeYaA){W;j1r@$(#ph>}+2SyGD50@(-fu{VZ(B z^<}Y409FO;HPUtCed+v)&F<6XSA-p=r2jmW+Ag!%k~*=-L2n-=2uKB_DwG z5N+ollN+GhvOE;_M@~c0d)_*k!R!`uPg@AUO$^@nNQ8^>U$??Cuvy_edsvI#$6DbM zw*oM2AY=+Fl&W;QC51V?CuId1M3coh<^uFyW2WwK+AMks&~!CfmplFzW)8aItELPR zj52f?>IMSZqzyz(5to@R)?8Mv)qGZKO8EoHlteDqvPEGA_Hz-3BeKLMhZY^snac{9 zXe*57@l*hU^#CS+O1RHa8qiox9Jf>*aRm`hY9dlo1aeN+Wp@~~N@J@#g3CSTezjdg z@NY&vX40mD5-U4svz97tCKWS9mze{FH^Pz*ma#h~_m*ps1uW}BB!Gya)SP2qTU*Q@ zaz#w09N__eB*tTQpq0OR6+D z+SXiL58J%)$)iPoS`l!$CSC&k{R56l&pSZcxt!0R2}IDNy=(rNnltDb+oSFAcstUQ zX~4i(p*%zUqlJMAj2LtQ8vrDX-GJUA;eEnZ|CWskyI1CDI#|wf8u z*y0h`XXE6M9Gqv{z+~Yk^lg3w=!gPC3L8K^{r^}o{uLY_4jL@g^6J^cj4`-Cc7pHh zh{rn;_^aVUAsi|eKmJC>=k3X+A!XN3d?)Agc>LLH?s2yyDiWWByARR zaBgV`QYak3NNX$M^yhMDU7q`}Ba!Hc%VK}{>l0)7fx^zt#?^ounje1zW2HCpPw!52 zB$6)oY%v@vz#SCJK5shPAg`zMyhbY$<+Usyov z&2_j&u}~!1u`tIbERAnmJuut{bpp4^CEfY9U|>@?mqWwy_xdSoto`JsMfo0g-?MN= z_{SfUt8SLL6;ZDzy=q_#K&aGJpMAD>aD6m3bj+^O>p~WOSF+xjt>*q8Vc!AfMs=>O z8BJA}MjG|ryR=$K+gICrw|DJb_uhNAu?@!92GcP%228W*m=1w(10>WyAV5M0gpf-D z+yn?Wg@Cbl@_%PWYqPD^hCc_5CTQ^p?oK^8@`LU8VFh zB|Q@SUV|V@6zxzp`Jgtid{&X&71W>P`lAePC=4IP7joyzCV2TgjZmmAc8mw7YW~3F zN93{6$=O0m4R?Zl*Qh)05EufXdmlfFj4p8zV;A z5KRCm5{vUz;uI0~*Vs(w%L;9`q;;04yI2G76`LdJbn59BTyI+oqrughFG0lIhr)k8#W5SWl`oFwNzN zD;T-Ct!ert+tzn>HFkIv!?pRKy1qH5$ZEo|2&++rTnfF{tu#J@-)^nz^OB*nZ{eH* zsEaguH&A6N)D|YA2G|3r`uz+eNTa9G!$7Ho4qEb*YJ<(8sdvyq1n}^>6ApH!FcJiY4W>YIn!l+JQznI>ZiMJfXMOCh}UA zVxT+?*dDY-)@`zJfP8Fhtee=|P+eouSu|9@3ol#6tU@Jk0=OrehgCx~3j``vq29sN6nMx}BvDyLaNDQQMQ7Mx0>*5xp$ zG)5nERVcjv2*?nn=bbK72*4Hziam4h@1k759`+CI)?q!daBusz?HA75Y)_@_ZH?oO zTkk(;-yd4GagEjObbCUiLPIj$!~^|7O9R|aolXT$KIO<-_9yFoak)v|iO!|S)zFszCOgP9$IN}B{RUJJ>8uvASp zwOp@O0+bI8xgT>$h|#PZ_+}xc!})avYX!~Y`Ya8xADvojaT|{S{fE}TYgAgN3GOqm zA`v2^N})B0`4^MSF?p7~n@-EZfXCAT7~Z$Y9+iEG$)NVX1o@Xsu@l$}*n8M#*uS6~ z%YcXQYFJeyWo(ct{*hin>jBau2pv!SgR0qh4yDGS5C#QG;S~bNDKRZhgF1p2Fi=Z| zoD>p;JwaK4mXh={(z-|+!-!?Hu(GNygh7o0j1I6up@clr%wma;=-i|ASzO~phaOfV zaZs=tC4DDFW<<&iQQ3-mT`IPL3)BE*C^{*u7jPtytD*}MvqWMH213SYcu|o{E0LIu zfh-bI;7F}bEu`gt#gihQSfGqW9TKPtr##XRt}GmaFhqG_@`3dW{S=f5GLj;ghj`<} z+lR6^uv(#A!9GXl7k|O`zmtRtcpUC3+61RT6-wo^AVZ6A*@yq za6%Ug??jGU2p*wjNc?T2voT- zxW1)#cu4r`P2&qXg?Ar3e)(m$j(VFKKiqxg7qvhC!(}@v4}^&y?fkH*`M%3XyZgdX z#lRUC5e-)WBA5lDoLpBp4%M`r%AatC>N&kSN~qL6kCNpm`6*)Ka)VOAnhe4IL=x)o z6dgbgj8nTBI+cu~u73gqnN;-yhowL^DwPUliD60#&>xMA@E2yF%E%ilmW0iEk3F7W zN>C}K3h;=OfnscSOzp5WCY+Q?$*?2?s#e8X{CXpuV(%+47Db~%(Flr9Sz@UhadTsz zn+erb`WW*7!5ISWF|#>eOe(DB6ypjdqgRb9IUTj24gdn!28L;%VDYSD&b~+E28%0{ z#DOmxxM16$f)T^zZQ~FS$)=n-1w_u{I$S?sN~-|mN?BnmO|C-M&#KgPNuek~V>i8z z(2(3{O~K=A%$0_%1u)yyOe2eXw)MM@_Q)wc{mlu0Mrl;2lnQh#+yZ=sPCc%H7SwSk z9voHao$$Xw4osmcjT!J+RA+MIDuY11QeFMN`TjO0vgYDL%JtIKb>?BFf#+kZARDE#%7Lw8{nyVtL|;P@qX%&K;2 z4CCMIS+nlK>%Y#eKYrWoCl9;6&{|whBclq~1I{jJr3~jpnja^lJ+~>iM6F!jWPl7e zrOIa8IJKVe$PFsn0*eah;!6ZIw~NzhC>7>6sBujb!!$7}c*t;bATKug@l20e-H}K* zacm;P)xdge$piTK&ahTPl0ah10;{147EV2D)2ozptrB}sk`INViDjGM{+?SgE7#w^ zyI5|ZqM@!b8;&z-8?JR!rH31XF->)iGoMIi(@BNOMqs0iQaOQc-Go{{i0%&vrm~)8 z>*1P&y9O){wazr0(i@=l0Jp=hP+*R3cVt?35e3<7riMCB5u#j4SFp{Yb8zV$B}Szq z#Rsi{2hRRU2S8DBRmz!8q-r~cr}-D#kSr)C)+syZ;@UG!5dDJ(4WbQL$4v}3q15Zp zrCh65O@}(S=}N;a7#5Zx0I$4Wr<$b!Y{^+l{Y!9}Dh7!qsYPN*z++XxGlnN@Vd@YE zs#-QI=-Cax{on=iZpOEa&p2& z6cUF(N7>Fr`t^JBS`1ByUCq+cB*ub8tqBLi$?S13whYs-_+3WqiOmGzwoUF9bUO>%Wi@Q3=MYAyKl1D z_r@uV3c?qfJLp>jM!|{WfM*H)hm=3dG(gLawgs}nyIzb zoMz5_h;b&T!*Kap8z1v3D*nOg9SO$bts7}gs}%|Iw7oGiWOo(xo#E=U9|@nYuDQAR zwQe>30G?^7PgDB9V2w{ny-3X*nZJ5RB|+SM*(!$l&!OlNn(=#mdxt$$bYev|G0Pzw z!l_(i&x&m%kgBofs-~H9cMM=Ou;;A5GnVl8sI2vMbCTMhsGF8Fb;cUc{qiMC*qLDc z2ln4<)@X3;VdxUwxqs=3>oMC)Emy9bediU$@vguB_$A&SD76g^f8xvV^V#tAOV?+a zh%IpYi^c2(A1ypRdv0gn0h`9x)xGgyZ>PjZhXGG<>B|&H3%ygw|KqJT@)}} z1^uCkfB%j>Mj4<#beHUI=w*8m<_L6LAu|UmcnN7<&}9gDNw#2pM^gm=5YJ08EXU?4 z#9;P(Rj~wzUN(Y?7_^UxxoBh@p<*RDP`^(ZP@->bF56dAlPC{`&}awA<21W~_Y)cf zkS&A+8cjFEcraz@po?LT$j$n$x;9T8Q_Dr{nx5gg!#0)hnDDsTo(c^1kF^^uR)1aR z?RpEOOf{|<)B3ZailMQtp4ma+C>^v%5%Ob97quG=v~V?*YY-x$xob_Gi^gGUYfRjoSdjBjzJiyp>BFzGC^zygV|to*DzIjKgYxk zoOQAff7A*A8fTT(X7|>#+4Q=}&5$T|TN{@)>a;_XBWj&J9K?4_UJ^7KEh-LwV5rho zKQj=8s5ADm)+WcToyBH9Z;N`a!~kjDLos@jKNRc_2RS(wIQKRW1(MD4q8%n2)*A!% zdkk>Gl;K!yDJ(Y-&|ZrCISPnfFTZ%SHJ02rt#$nUq4t(!x_L%JQ#=8x7h*pX!t?BM zdJ-@+bFwB`KgiR?vU_CD$bKpNRQ9FpAF?wT29l*0^JwB3hY3v0@<$8#{xO^2^AATbu4_HM`DQSMZJt91ME8}MM83cKB3V>u@i*` zHWn~F((oWXNX*1a2zZZdV5x3FO8tT8B4L-#niEY%vEEMn1|22^KWJ2*hrSC!nW`wv z=#1!M;3PpkMe7SR`ddLuU-7hT_sqJgUE>owQth*MH2mnv&mP5UNA;7B<^h63-H^_Q z!=b3~d1ZerlF5f+efVp6c$>}lci)s4Y)WLitBR9sq_HXsY=UZNpyg)Fo@H8@OsI^@ zr$rNC^GmnVTGC^o-~O;hoj9ItZ>uuSnmvQl7*h&Qrml2uFOZw!6}h&)WCnNxD!MB0 zH(k~ht<|x#9>{(HpDtU%RKgpSR>25QLi?L3y86DIeFKxXuN#^_O+G$t_U_j=EbTga z(Tq&B537@pZ+Re%4Q_eh!A9YO`@#4~>4N2hUS%zfPAE+rgeHf=mS`slXv6Odipd$V%t14!tA`O!_osjZIy-bVcPeqbUiK63)aSHxb%N z#NzlVt@8gJOMC|9y9ooMyMUnHrOZ=U%u%7O=vJV6HpRk&D*s(rf%8g^HsS?Dj&~G% zY2T2DYSZ?7#Y}TPRB*Yqn8Rm`MXg$`vc{yc23zJWVRmDL&rt}9aGl_v& zw-lNny*9fsT`G20_Gmf%yv2{rZ9iCRXN{^%ugBA$2AD-_$TQ~!@!NmV?v&ZpU!hgI z<_wHf=3OSJqhZJ)6Yd1M42Tx_Y_zr|Xw>l-owyaxNN*K7% zvZJH5%fcF5DST$o3-2g|=R(ouQcIJa1JpA$CMOg$lf=c-$Br zw3o8Vb5CkGP9yJvzr_A?kE;y^wY&#D)Mzw1#k$stn!4e{C@{!-<3Xz?S?k)|{p`U) zX#Ap@4jYGKiAtL_1i@-REa2PfHw-!=xu$z2phwtUowfztUWbEa8=}^bF96IgMNa4H zIb1n@Mbf%&gsCud?A^~~eAPkS(DZf7Yqg`y$i86m!1Qn?(pDXC#H*G!b*xf>CS{;n zlv0uel#^*IDzplf271PUkOjV@UbVFZErEG<25K~enL>ltldN^3f0_DwX_H*~C~tn(Y2)(1?c!1|`$P3&o- z-Nq+u&2}SaOYo*Ne3&J@w+W{-ppnfDrcjj`Q|OuJNb(I@*xL|@#>44=2AD~x2%`!r z)#^|#6bXeJ7VLzglIDWH%H;KOJ)K$T?cIhgcMFerJXpV5_}fCiW6vTuJQ_=(!&&x! zAMQ&m)>{+2IqtUGaAKgRvj7ysz5DaUxG~mP$nd6wr>HPyhPvY)!)(evG?F?|0{riI*B6mnlRGMg*|tn>STTkNFl6<{3v6X2Tm0h0JKKz+JMCWAR6 z=?SDMz+n^BSh*$O2kxM#xy3kPQ4IWne*9h?i}5-#91znrq7pVsK}0DIh@zXK$pk71 z#pdwu!-GgohM`mm(Ittai>HJ@+Z2?(xD-HS4#-T!>yw8o0Y)GAc_I3TXpNv-5vfus zZo+LPV1$$6Hm_0cOYUf4@*Ov*~aa6ZT$55k=@<-fz-hC&1Zhz#A4aFJ6%w+bdynU)5?F- z6s?`^@usSWCn+_h0=8=_rF~0IDAfTci9t#Ok`ItWs?_N8_*E9aiFexr7PIjDL@|TU zZt2|=OUfU;`{ny@1Vr?%s@rxBO`E=TVdvm$+q#d8h9Z5TzQBxByw>b7)Hu00-PrVQ z?vBBx-#n~KyqWiU9m zl<5pRtd2xa1+=3C!<^9xv3jH1=n)3`SB}K@;a?PXjejUQ^^!1m@PG>mdLEjZg>wL4>%9BTdZcQ zA{(f(R{AWY$_`~O!<&m~qpK#ls5@DyHxOebmgV$X8?gDQs1heUp6Hn02({kxzN=lC zFFBo@DYAkh%rpknQS_WnzOsoMpZ^>$AvQ6vV%ENU*3YZ0 zPZJ^E?w+1KLpOb3GF5~PMqaD;6fMridS}|C;OmmTy=|4yU(HZzg|O1*SY_uO7JD=d z8F@;lSQ0ksEq14&cjdk%OTC_C%3#W>s+f@01z0u)x)2Lt?Q4SJ>ejV`l|hGns3uxS zB%%(h9nyeSdqC(rxn=q#53idA?Sdq}S{R^b(Dwq00Ag0!3K)6ddy9mhXf}i!r)X=- zrVdOPFezx18<0F3WY$0&3(#Z``5-i(R3c)~DN795H=?zKf=`mKCC(XIQaxh)N_2{l z-GZuO;3e5H;>;s%WcIJcp#Es*j*ogMv);-EvxWSBpBT$jD+%Ql7k|v|;^YQfWA z%z6sbZ{L3TmiI4RQ=p*X6e<99+D+KN+p7SkA0n2X4~|}3YTmZv?!#SOLBQ%B=^Dqr ziF+(2i|a*OEfh#&6|sTt7_WnHL~NB#ou6%{9XfvNxY=L={N&e#KIU6`w(M5$T>pvT z@I+9up~w?RZHtdZjGP6KVnU5DV)+qDd&6xN+ghYHYQP`{I2||uG#%1#v;jRB&|_si zCp{)Orvj(R+9 z;g$Qx2Zn}@Kf}^$Ql$;*XyvQ-wJu-+jMr&0DV2B{EJQD3^8ui^Z7FRxBvqQO$izv^ z_E)pV=XNr5wmRs5gs<7gP@Wr{L=>#*kM{5UYW`sF4!SV{B7-Ch+{{{ z8&3hr(|efZ(7`Xh5WW)L6#m^Td{{WJI-*im$qUMkY;`Eq+#GZ^hk`ZvPReG=hy0Ks z*J_H9P$*Q*yGVa1ZxEj3)E8v?uwa1xCcw8=DEa3*sk5OSU z#KRE+?f_scuaoVTT@LabEO3BFT=sfI0|X=vDHS=qkV+}PP!$UjdI;2^86e8L2&G}g zz}MlRrxyg25&`|e-q7K6UhHNJ$sxQ0vqK!lWW=$uC?RP^)py8$lvEU~%j6PF`0p#O z8XCNK|2=E_L$l`2p82e2#)2b<{<*$O1M8=nAOIe0`;uod*>KS38;t?{0!hWfgI#l{ zP1~ZNZ#z-HvdHf}sju>tqAu)fh2!esk+0s|cUvs>OKV8!SQ1U!9b3=zcsNKs0}G=b zUjmGqTF&X1oy%wW=Mveg$JzZ@G0Dw(Hf0 z)+|4l#~+@3RVi%9##3|0_uLKmjCFQXC}MN^Jc*9aoR(<9?(qjRUNMG7$aV`~vK>^T zEGVl1d|Je^hhp|<`ihn!GLYcsg9boq8lF_~vG+ z*41$F*awB6+Fl!V7|mwkWd41+<)Ps?xneFh5Bn7 z>}DgwCOy4xR5sO~dtL?Hk__&)*mYKK3xwvFOC4r^gOQ|sRye0zNkavKT=q}l9_B6T zjO=OP4F4RSf|$gC2_Q}yG;u^zRhl{waeyLN@w;#emk560X+bZjSidDM-6ql0g+J$) zTl6T(1~XFV;?sofFumZOBkLQ5YM{mqJy9{(2k2nR294JRH5<*4FPM$Md%5eNnuhZ zy{%@Rp~yz>fC4EPRfOX!Tya?GpzGf3)U5~}OQ=-csYEvLo0ng4)@Qr0;HD7ic#O)t~UW6qsfFP=to;N`|FGRXlmhoOD@3;ltmBDE8uBSge}hC zKWbaQz0;sVB{&whf7;Ue#!^7vX=LU0$$u%rK218H({ebg*PAO0v`Po~5_Z0d*M<_5 zv&Fq*V_j9zZC9HsX(ydD8qK!#xm5#Q%Mu<7>tMJ;p*0C#TZ-o`dA(I7XGzQ%(6ia& z791WWHhCDohLw|0Xa=rutwP_K=~&!0khU1jKF^H2y)ogB`06d&@TW|W3INm7G&xz< z*HD~;VFud`k(sml?fp*pjaHQk@M@#6nI@>u{#dw+`IydumADxCk@m~3mE9)0U-l$K z*PjOoeNFZo*&l(QMh0AhkR*m`M;r7iC$J2bgBWEqHi*rD8q7`Dg&@f&Rxa5E1qjJ~ z|Neif8KiGSnuzm7hN8TQl7NJIQ0&RHPU!4utbVxDk#0-&149nJDYNOC{99SnR9Rfv>KdeG0qBN2}gmV zgL6QF6w*vE;Q3{ShXRrB7n~p+0{lg6fz33jpoq}Hh(arCVhV<|II!E7%K&X1>GJa-N z@9IdXvFPZCC!^sK#vSB)7N0o$L=qt4E`O(&-)F%ZBC&L`#ZhbuL{|1!&9KbgnXXyc zZ#V0)6FTeJl-ISO1m2>nuOSvSJ$gNnEiqS22MIj%6H_c!zj*rPY-wHG?OV`jGP^y* zyNl|9`_vVP_z-S@_uTKWN`;U`yIx|D3rVGEk^c5FeenOu7571M=R_!2L? zzoh|N*RbW>(fK8lxh~>wCtq4vY4NzBirnKn_f06Fap_lv7SC(uEFM=N>$YQ+!rx-9 zhT7@|+KBlU6z$f!K-}XK-smP*^fhF&y2|O<+Esm}Tw1?)of2xvn=3MU)kDwr`!+UJ z0hNv6EAPOQPbu~3%2Hcpo>{k8pU#!~SJqVw7WnZ(|4R9E&d4)ytHlWka^A!9!q_2A zF54W7h1L`L-rPM^7)Gp&MPf}AmFh#vs(W(1S>6H-KNMn~?+rj5rPBg6VZvzF>P6YA znu?7*JsY#NRoR7Wy5>&5KEk~40u#Bu#@CTMawON``{jclg}7QDIx% zg2FVzFUH1xVVG7}P=_6iys&w*a0Y7?PGdvDf4tP^9U6-$fC>2si8bmIR%u>lPlEO*IFhXl6TE@&%fp~G{M0-hVFxo6$1ZED% zU_3B-q*ojRSBlF)`cZVap+EvQI1xqp`7x!j#r=^<1t|+Sl@|G5;=(DVv&-izmh(F3 z7%^`Mi)>z8&(Zi{u)E-2boH=5+#;ikD33ykrFd`>RCNMB5!rp{=gGzW#A}iEL?a{B zEp3K6mh(Rm(m#?hfo>2SAIyiQe&zYgLElRbrW|zf4{n?ZwGxz5SK@6I6FK6^#M4b3 zhT0j?vxO~FVZ(x`7%53JiXTMyWrP?AzmmQ8E=Eoe?H6bdFZL;bv8ir+?=*n9iyfFx zt=fM`_~nbF26wa1Uw{*92>IXcC+O8Q@#%94a6q>)m2T9PWY!^kSH-)d>lZ zW7IhZ zJid6+?`MS8gw+;|I$U1t$_fX>^pak8WOCheq?Y=_rsj}~{xv~r-}<=IvsL)#phIb} zM*FYbJ5rHwWp9{6&7jC{_X7}}{PbSoFHmw%V%JQ*f9@zm4jF<23uES)`J_TiKa9z5 zYgI0o<%n1BY1Tq!!A*OG#Y{w@aJURAli3Qir(B@2wo2=EskAYB#khwG2krh?|1k=rcBj*(Fhm>3dRqm zhu})Ogum(9%=WB~)!JEwHW&d=KwXK~1~@Q)FXcjxc-m$QYAdyxWE@D})np=Kh!tq) zXJ-siYer40p%qbS_Cv4)YT9Wg@Nb#I8>-Hkjl4k{i$fTeVRKfN=Q&3xWW8Odx7Ry) ztya-yH!Hm+wNb~pBM!UW5z*R(j3twDx_psq9R<79?TIC92T1yBEq-Fm9`it)QTAuy zD&_+^1$N^}=UH9>jwm3o-j8SoV{?yJq+mx8T39Mu7Z{j zyNa_qGK=r%x1@fLlWLRNNx0mk*Op4Tm1b+B&lgat%v}cT)Wkb0Cwlt>!S1e$paD7B zzDlJDc=!b#UpDHibLVv-mnWKPs|{=H-Ab!syRsAve)lXz%6Wr=F(_4ax$aCtKP&8r zWU6efC>Se#5?Ve^jR9r+koWn>V+w z*%$CD33_RvE;>R3Ft6K1(SUFO=pnqN!5o#BRkL(~p-niIRfy3T8_)FoG6F!1X$o8rCeADPVdBDzeqcxgi8FYCO@V6Hz_!T+MZXFD)MDa1 z5G&@&Ru2SWIli2n3nLe;9)rpO3A0H|brl0sHBe|BmwRD4(WfdF)zo2FOYNRJuUWb( z99zHqvY}&JS}?rSyuvMfW^_1=m^JFe)<>Nd;ZHR0Q)=z%pV^HuqvNM)J4m^S5&mRx zMzQs-$l2#dtE=PDI+wg^TAj-iiMpJNg>6@XS@RKYO&hD`F5EJFymmK1_6_gdJJL(y zO}nT~4iB=z-#u_2RQno8BG&G~oRUj)2{9Les#V`+?6?Oqz z?T4EYG}n}EH+7t7q56I77A>WZyxa2obHa7PGoZlj*<}Tq!^Oo)ZvZEs$+Lz z%1aL(I`rfz(|C3`2jzVpgrf37d`-Os0DOj%TmG`RUF6 zIWY&~u`~F-ZC$zKh+`O)gec^|mJTdc*7p`t~Xx$9p>kz=A0hMNoc)0P7 zC*D5}oPwm!+i1;03%@q9nq{#$*x+SB#z26QKl=tjD=EDN#j$9@jN7`lyQ4Gbds#mf zGIpdU|7a9O3A}gU0pmV7jo&YQ0}&5T_jM5dTB;wibNp{WQJ z0OBNrI4O$azzP5r_5V8%DwzwScZgPr^Nm&rqg-qn5n_Ds5=5Fw;T)buJ;=-bdVl*)hp<{}|bqS5ethO1AEuBqQ-gxidRpzYLny5F# zGxtHM43s?B(R||9J&$+^oNk4w3ieNCjsiyks-m%)lzaHr` z;Flj8t&c=*m{}hR;g_W!TQIk-;f+lS+b~~9Wj3w6q_(!kHe2Y&Iy$y)za&v{a5Zb- zW0(UozjW--hV?b|k-k^gG-=H4P7{u|w658(Z+8Fe<{34GTKB9SCq|YGji$lLASoPL zlL*?VZ|jSUetJ`7W^ArAH!Cxgi8jsKa_WjJj~{+_H&L)#oX$=Dnk_3o#M}$@yXG(Y z?2fa-x1I$f=4i10XkBfS9CvTtx_U=`*0D&ae$L5w;_Mo^Vtnk*o$EGSjI%0dw&+P# zU2@T}wjsd79u?NJYv?wpg;@zJBZ^tx3bBHp$bJD_+5+(IN$aGjL!~uSs+mN!E%01H zk~}g97vu1}%KmaAj#Q*vDh)>KCo&)ka#8b(5j!wlaReYO^TOjVD{oNPG^(|OeI;{J z%9)lwkW$p390sLP5ec#>(E@>1YIK~aQ9;Cz5{4^7m7Ikln4pqME{}^9K`=#$7i%Sp z1wgl+T0PK`T|~hP^rL8)%*eH-p2h42-V}F6EB%-72+Lg8JjEm4?T7poeT4=uSPUl>?@x~Asb z%Ib90mXhCMn{2BbXiZl1dAwvoY3IP5?HeUVoV7OPcW*Ud8ksOBanDh6q-#$pZI{PK+5rGl0*Er6)xb6pCx$x*+nWlno0X|gZ8>z?fwtns;Z zsyW}>ef);jF5%^W%gzYD623e=Fb%`6t#7w#Njc>YhPs63OTmPbTVA1$}O8NnwRL=YI;p9VN12G^U|qDQ{^?5odjT?YY{%9(Q(;|hHQnywT-`H?XB)}wQqqa9sw zQlYXlsXba{`_^qm>KdGzwrN$%ir&`TsM~RD;zx7w4TpX{OL%83QNM5Z0<0hZ%}tb6 z!|ne>czJ6rK4a|iMbqalpIu$(yXRJbJ=M<(x!3e`#m#nIq^dg_<3g=BWrS}*G3EXX zTTsaf0b!wK@{!hCj&y9vrRTKQ7LQeL#tYVUPdNr(a9GUHoAr{goe}62vK7#0asXBm z$rF7=_7-F=On_Q31a}VIH*gHmKPbhCtRC?#DVjfs5wL**zyh%;rCiWd(l29@s6m#;cL=((-Ri63th{(gBg zIKD64(0#VewKHu8JiW`Fo|kiOF?*8s01ljF-g!rS^0BM%^>jXzBY`+J94Dk)|Ar$bTUWb*MtHlNcwvM8)}di@am<41;5cI#5k0a3aa`fZ6_ z_ogX>awQA1?o`q}iZlM7=Wi_IH}lz_TpEMbkhgDa~& z06}0>uYX7hk-6>1kKb^Qx~^WYMRaRwIu#lnUbbkJ+>@-BzSgaRIyh*!)I%;nV4tFX zE%O4O?htUz?*pX7`()3`-hrNK_rNYiyjg> zne;+-1x(rVgGim1h{p@Pq)1iyLJHi}ekf{RF3J_p24nx=bkY^TcmLOJBH}h2hy#O% zc#+aClt#nhY@*?T^cDPCuy0_pBV{1g^+GyNYS=(N;*<#z62oP10PHW}+Mt6gL)26F z-!(R?aLMGRbLUp_US2=B$TEF+%V$9E!+zIZxwp>?eZY$*S1&z!--QY^_nAFz@0ap55PtE?vl#!o4_}L@CciXVEk}=BFTD5iD;qqfyor_XIrndSTi>99 z<9$4~8SlYf`}=FZ*a01CHmiOGey17ODHtD1*eH18XO{suGy@HpHVVjcIU2AHfs%CQ z#n%}LTY6i6&h%K!5n?`5puT;-qOe0~;LFxR-)|og^8cNd`Vo4-!yHQ$f-Zl2VWX6l)8HDp})YkfJr3t#%Xd--iUfkOX;MWegOlVQ>XQ8P3rpp_QrI$>VX;63IlpbS!4+JP;~2h~p@R1Z6q-Gh09 z)@;Df2gVpcn!wEZFi?wdXIGM1;dYpZn3>pfw$+Doa+i<6+`lyuciJ(P-Hv}3vSV5> zId2*lV>N1$b!*amejz$UA9HQZfD`N(Up^Y!qMY}J|X1-h5_K@;K{JV9tQ@`S1H zwg;^ml@e!9KH`~{(PEzzzWdeT!}41()}_FYlYZd|CA6^#+A~U*@N*!|p4{Z6!Z>y- z>%c2m#x7rvnT6loKdX0Dhq_A{R?pIOWTNpM1IdNW)h{mf>u%wNH+p(psnzJ#Y4&qK_3iEIzl zAD)o?7^G#Ylu9)9kd24bWH~5Y;EE)&fJ=l>TT*X{LboIalo2pR!zA8~Vrxejc7bk_~r0wJ~xl*N^ ze*5Xi9-Y25@5v->_G0nRTLyN#zkbaU)7ihel^$!UsyUX_l1#>tDyFbs*=*57qIUr# z7=y`dhMUD3uw|Lj6ED2cGPk3pE|3ThkF^a5@7!@!G1j}Iq*Cr{I63X&d9yRH_A8V+ z08hiNlb`q4m_EU|JhEl6m;4dlE(Y1rm?bB*77fV2&a59~kwP*Fx zC1kVB%;`+m4$lO-)9^&)UAOPrzi-opmpq#tz57n=p$B0=^pGRT-mfCU)$exnKRIw z)A0BQA*KW1k8-0I_wvGai^-_g&e&@Xh7t=moF#Rx^g|{c=7q$1Wohp0tv>Voodh^qq`_2S7uy#9B!>-WdOMs~x<=)z^K2GZwWwP7a5YH2yC@&EO0 zJ4AYU%h9{*z}BWn6|Ey${Hunmo3_u{vUz7q-Hx@tJN15h|H9>4Hq72Rd85-2@K_vx zyXduB&T(3>I6Z9+zS5!Qpvuy~HS0m;0|@}%4tQy`MI|f88CE0bDV{x@p!UdnKz=HVW)(ZFzhI3869&)&=B0+~cFWeTkyIqb@*ybwWgV8FdJ%ZkTq?`BA zpWb+{hvVv#cBd~uDVz#u{RL-K%R5a&V40GviqSG0IoS8*gV#T_edV!>FAE2tfW>U- z-gxmbLg#TpXSf(6v#^cxUu zr5s<;>~N$5&}Csi3Q(C2yVc(6u-~8Uw!v6lzeC_Hfi%GAMj-8LvV>9&D{qfPE45i) z5>z*O3%rP!_TR0{K~R-&5HcFi%Os=Ul&Q~+kt%>8QvkJgX160i+<98~ z^uyo&ZO0DmK@2}pKDY;0&IRK~JGkJf6?>9IHKD_4=kO}UHP({EVBf_DPY7p@-9TdfeftjH{HMBks#Dwc-hE=@#Ke8EY{=m< zf^MQrHeSVbj2V2BFJmViU~5?i z6tqidv^WCVgO@tV+1T?*Zy?xTYU~%{W(9|O;~J-tLi)bPM(TjDEzzmfsH(yvoqAit z?23B)Yf5gn*6)6>0t^D^{?#xZ9p|V~RBCx8Rg4+jPLIz1-9*dgTo$0HXckOqjZ>#? z1Ng%Rhm~Z(dse8~_NSox)!cLU$5`SY4ikW&CYg}0vz+dU(9{Q=Y7a=V<-+M!_iE#aK-hnE#9i+mnI>}dVXjg`E=8`>cphZn|U zw5qE6-WfK>{jI?Sq1asW3gy>%OhB2H)fk}Nb5Zl$NGPxKg_CMN`m)VhZ4V?ruc&KM z6PVi^yx_FW59H}42#;D>H8J}o(Z2ay*vb5sRzq~lD)KzFfTS!2)FBy`Ls|n(R5Lt2 z5g`a320T9?H$(CxRyLq~I0<`H8o)+?y+vNOsjaZ@_Y*w?OybBxMEU`NS`Z*@kUkUv zSi}bnThQL}_3ro;qZj|UrIy-tF>YD)V!Weg`b2kU{8ss<8M(@5_D#Pke*cCGzEkX9 z{*Pz#rxqT0LoRz_*9A+P+upin(a7|xjowiT8n6`HQ|;6PvGkyRvZVFL&MjmoM%-^~Ko%npEQ!7Q4%=l>0c(^}58tyYu8{S(&JNsq%aJ2LuCHntTVJzonViUQ_dQu`9qS6^*F7qHR-MF|9pfu+-ZpRbQT$R& z3-Hc%XmxTrs$Gp23=LN)>%%yd&FIIlHDQlOs{+;^=(GpTWL zo`A9b)QMJq#Jtw$PM9}@3A4X-a^3pd9+p80|LWT?ThI@*|wHd|#1+0(*CAk{uBGeI{{J#+&t z0Zip9AZ~sqAdtvV77M*ZqZQ0yD6;{0UwX=cl5{^A7T1e%m|NTzdV>Jj3?*g7BP)wy ztQtfghr`7M14(yTZDBbcv{4bQCTMa%>VZckxT33u+945M4;&Maf1fuC(a6FrNNKbm zSjn(b;RO?P(D62Ph2KjtI<2MP47=R&zZ=+wq)YEp^A=llc(SIF4n^X2fPYa&qpRy8 zF@FFc6%S%PIO%p*rn;`j6~U|zZmBPtRjcIxv^WzHpcG(hlEq+n@>SRD+wum(EVZ|4 z?y`nJ&7|h7M;~6cY}pcQ=`Y{J7B646Y`JjbPm^AI7`p!BKk_ZHk*N{v~_l6cMaxTyy)SF ze(}bG554yDhflxx%A*gzCcNQ{dK{im;I~1iE9UXKV~?eRUK?;PM*|h8FX;*47^|Va z0)M&{@a-fk6{(p(5UDz;4^#r*63bH{<_fB-97U80d&^o7nW$j5LNJzw5)zTeBk7p(b#RvZkT7absDvRa-w^9i7+mF`Ufo6-c8}5Xk_2; zmh11@)wQczhRMGEx0893`W@KpvY^DCEJ;2{BUn&K^#bTCB!15?0PwRxk{dAM53k?- zdNC4=&TNXhJyi)P)O8haohh6db0jEX^5CZjF4)`IM&ix27o5Im+eMH5SpG_2%gp9X zp$=#_bKz-yOU6%LJ#>TLaW=8PST%cM^T3gsodlVyeje5+x$HLKAnS)5mlxKkL4XJ;BO=UHfZkfGx*7(6`t6!!YCuanYEg9VQ z_%hr$T&p!G04J2^>MkE1am$JCUc(jRS)Nm>j5KRh8nb)v@xnScIU{gv`M|cvS6_=8 z@`;j3&v9C-LZAQnnnGl9X1b$&+3=1#!Ordy?qGM)4PasKgpS8+!Op%L?i>O(EZ-{GW~DgE-RHg6YwhmLPX9g6^Ly&|F(PV+0pd3_Rs;Yr zQKO02;*IFP@pZO%j!gPoB3UFGMUzG_a7Mrh0jdhc6Umg#q~{JPHqqyRD_HPF`#Spv z>Y6i~xYkTsx3>aF!P^*$3i;ZiX{gO3F%H&-gp3O>|MA*$HYKk~=|GTj{`t|NF*MiLlL53Uv#T1K=cbaZYv08ybFw%B0)VNjD21tZ*VHCeuZ~HYv}q3!S>S zG0oT5qcH4*eb+CTepq(^G0#GvGPN6TKXnp@#fx%KmZq&O8p)A>mgj1!4r$hZRS1b32+EeUu5-F zq8-UtC0PxlM268toHE4IGqV_?BsvOCuKWyAK$`>fO~Wu%EE}?(jQQ+Kb1J3=G*iVc zv&9uNVPFgvaX*um!?V_s;j5WR(7+K5HO-i_%;{7l=uHD|)u+gQ&DkXiHONnQvkaT( zfh<6|9hygS#2K5;Pu~=(ncPqx4==tQszGS`{%?G8{fds(x2dV;DCyeKh{dM6>Kgkz zBTeW9?1?6q(%E>;=)1R$*9X+_!8{s5x`rDyhgkGywuX@a*6j{+olP-l6|w`^w>DJ) z${*6bO}y7)O-6kVx7jL)<}jrrVce%lZdH&LE7QO6uHG_|%=y9#2CBE+Fu787w3oJT zJoZ%i?$>{H{E3GCWDJS-k=2vEUSB#ixt89UrkRVMooMu_?sEl?&F=U~yGK{;?#2^o ztJ`c>kyuG`z6Qz#2vw>Tq&$ezrmwH3bh8)Y&hWsVEXP%yQ>XJB? z5uPVz4cz;Nz$4!!DANXO;`f=2i9%r*s)P*if+k`|?w5h|V(9AROyE@%B!yn(9{OLL-NwqO~vx))|Lmh?0Xwlqr%&N^Ap&n-Uz) z1A=)D^)BQ2>sz;eEEF*L?LHYkMxf<8)PQ%5WG`@`fI1#}%Ip!NuqxcOl4Xh2!XJ$J z(p@~wd(~mZo3WO^!!Hjg@nyEIqtmQ>;clVv)SX2 zGb^T6uVh-vf5_CA1HQO zoKy!gkpEG>aD+NkEBozjk9KhGv24Mo-ba~3?P6VS>B7TdyB5Cr5A=KX@BP=UcCXum z$+f24LT^5Eb4~es<#!ggrb(+RmbdY~_Izm`q`%3__AoZetj9#IcEly}Kz`yHBc2XH zvDl&`PH&vIDK^2?B5g~BqFHN6_g0IF)oOBhVBac0l_JPeX1`Nl;`V?~inlWYaO0zr zw`0ygo5}U9!0I|#f6bnV#nXRxyPVla&Xg{$@uNT=>G4z3&(B$^F`stdIXvl1FXlK| zIX!*(mKJ*0=G{UqQHA{7>$dlz>SKC>K4S^)I{8;m`HIbGi^y50yCzHvF1*k@N`IT@ zI7zvaDijcdSWv#oe1MN5Hhm}RxxZKS3s7^JvKW$x7v#@SoZ zq>U(&@$2lwLN+i$*)tl4(XNG%FriCw*ja0ltkZbR(j{Pp5CSLPX5Z?Gf7-A+ad5<^ zI*|q9Qc3KCP`#lW1X;rg%~cXU5bdbAkRj=e$;wEAB%4=kR3Z=|(h^SOKvZtQ_yO!n zTu8>6B#UzrL0ZIR@V_Z(j+EkF)U;waoz%^?7Kfy1aI#pDA0F`O0O+v+7tEo%^~Pw- zMl-CqG6Tv!=M~;?UBX(!e)1Em)N3Xp7AK!M2|He{;%ar8?C$I@+>>RXCuDqd3C? zm$hR-^GIJS^;bzpcT5@O93y2tB8glyn68cQayV6BJbLL>CXv-BtJM*0Rb(Lcj5m3` z!9^as-$E6`!5VK{)Tx%=?a>F8tuE$}!ibnv(uYV)8hXCnDO#<(C!o2|fzxf{M7uNI z>_@c`+Fq^f$*exM;pV&E*tGUnpMCNx_b-_QwwYeP)n(_0UW>=VkzjPNX{lh#SdhOV z3*IEpIrxoNo$f6S?wK5IJ+N*#G_Ys>h1)>EfD#Ldjt4eu7%j)OO*fS zl5D7sk^`DeU#&zWg#+Z2St=wfs!#EFRKYIu8fA~l3W$DhgV(LCkgW*ViU2|HbZXE! zd&;NGSMd)3YxVo+*oFDkAinptr`ecSWkrr7v{G>yfHFY`hIVDl!BCPeErIM11DREz zXCf>!X-0&Mj9HWL$?S{JxdD+gGXYoBTw`7}m|_Nd0>$a2;_Ot6I(&e7!FDB_SK&oM z^%bU|4bE{^ek7|2D;mdh3HyC!7LZU;HR!YR=pTUw@Bv*5$7m~q(tFxGv97(gF=CUf zCQ%Ei?rMQ|TZNeB^u}o9qeJPpmB)`9JhKBqx||x~&4SDb{L#T^x7~!UFm{_GqWWtt zt6g1JyL}He^z6@0JDeU32w{S^U>n=fr}*1+4Z!PtM<%GPmUrECH7x70eR&~t^>l=+p&AQL& z1KJEY%fvCPytu1l5733P&@EGL*KLp_QORo#f9Y^>UaILedgBKJCI@&aXtQc=;^T|_=&B#qGo{SdXDd?)EI zgp@QVCS&6hRw=d(lAaTU24;dRh8zQiUPaJWh$1#4^^z&Hn@GjT-b@NwMTxu-Icj_) zD@%AM8(hM!hF^o6Ay2)pZNRmf#1fI5WbYzbHqL?iPu-wnOcB@%X$*$>RUyn0F3LC( zh?F&Mt0I!&!8dk>x7RotvBTMSyoGRdbN^Ip%aZN$hEMNZU2=uZbq?pcfr&+H`?{_# zcJ%wbr^fGJ^S#fx-MU@&>$*PuXf)*2^~A(W+Wthda>MC|w%asLIa_MC(Jh-?9aT`scn%QFF~S;|--vcCKHf>YQ%e@Lpz_Do5R}3;WwV z!GCVu9}T~_pti5KVeR*?YYFvtAO6+xwq1qE$ule`TzJ#wrkhs+Pl9R>1bOo=8|grA z61f3eSsG;0IXNDi%UbyXkzNtaaGa%l|4!HZHj_9{Vs=DtShIG+;;R&g5~=TLx~C9H z1p;>*IR1a?TDr4rwz}6FAGE83sRA2ZV3p)3s<@hLM4x7;yUQ;N)qE0On|)O`ffsaG zE0q*akiS9w#P-LF&?3q8G)O)Ltpr~QQ-C%N8`jW~AsB-cAzNdYnKB|mgegq(`fR~P zJz*uUdFEv(BIJlX7m23mJL)L;Cc2v1UfaB}*ui_|tqw(aGrAM)RCY&O zO$^)7HFdN$;c!N?vep^v4_JadHX-A%)jB(#S}8nq@=R@4G-i@0!J_7qE%9VegNTYH+9W&Eb?RvB;XR+*?~3>mpMB}> zU)@o3yXe0S-(7Qm?HyCae8`H+ICbylZHKz;YRojUY~h;HHu}N4?s=N$ZoB2yv5ceq zL2$uJ+0 zhsCJ&TT`{6Y708d@2T34+J<9@MVzj>2Hx3Qp<~_yY?e3F%J+_@r1uJsQb~LUt5co>|iQ zJf)LlDv~8d5KIz0VEnKR*)Cz=n-GkXRLRJ(A{($x#u4y^2dx;Z$?p7NtYrr5K@r{O9;N1pXpK&#A_fUV<-5K zS>F%tJ3>u9v>qwi1MAmpoLslHSbpJ^7da{}tKMWZ*H?aR?eVddE5AC>Kfm_x6d#c~ zo7d;omOpoeFI(R{hw|(h%pWTc?%%q<{KWQP$60#o(Z|?FyDxrri%Fw49o~7U+?AiaD!@Cdv{@BiA%;E+%d+2w25AD6!L2X=1 z{o9^nyUU+C+E}}jnYyxZ{J`$Z_Z|D=?&12&Y3uqGn}g-AtUHiiKm8|@CUswPWUbS5 zZ;)$lY#Z)lUTeQ{SG1w!x_8+_wE@3>C>mzxMju=-(5`e93wJK*3|im0Z#*CH2e@k5 zw5Om9Ef+$Bbgxjoys~m=~mEki$$PGvR9}WSmOi($dYp9&RF})Q~(8CU8lC%^! zl}|Q=18E64lfLoW^F`hnpt*N*i$-b+h3yWvY`5*07_F%@oo?}^^M1#U)i!E}#~B7N zfD@UZNpA!hHG#UE(;pezFg2eNFP8d;@-35#1Wk2{ll^n^EsL1nEL_=yW`QB%h~!VS3bbnJhJH7qM_fAvu)Im@k@<6RvYVGAa9TSeLJ*jZawGk+1l_4fg{ z$LS46s;V?AmqXPc&XP=3Mza#gC2Ayw%`hB*6h-7&k+=yl*O5vMLxSO3GC`J6 z3s@Do0|}lEzQo2#+^)uLhX*fDPW(o(l=ZIWHHSli-~7ir zuhCC`B9F?z7q6E1&LMek%d*?7ZQ{oD>&{>E;;PlL|K~4%`Sls;6Pt7)eV%z_|Bqk& z1+{(E%@?OfmNYi9U2k2#psCTVQ@04}!06Evw;VgXwdTZz*1h}Z4h^4msn7pQ|DjdO zJ2Ukpo2O5O+Pjv+0~a5pPB!<|46dXb z=HzRKme?9x-oPi<<&hr#lwqbLl{#T%8VaR{C<2DHJIGD(K+% zSR>wb9kvy`se#Mc)^!EnUAp4&&r+EwfD_LX!l7QNYs1k-HM?VbG`e!-_pdo{%g=W2 z+P~Aie93~E;*RU5*Z=ePU*f*~i|^d#puZXRuiJ3vsV`J-J$dNd`FDOj@z9U{`0e^6 z?=XkzhO*6t`cOkx&1cpR4gOQPd||rQ7c?tLR6d?moKmbUe=gqB>zDEq9-=Sr(T<7VFpngoLbBrT2bmzMeB9KGcld!j-^GySnN&cr%|t4$lt=?IQa> ziXv2l+Tgk&1_lHVsY!rzDXFeYRS6{!BM2LEB1Rh3m0VrMbe-ap(Nv7c7#sthPXf;e z+99<>M3sX%Q4vo-&CpSY&L==|#68{QDuUi!=p2DVVIQQoX)s%`u_4%qg)JGxX{0|l z7)+GJ98cIIK@N$XS!`f{Gn%hq!oZ(m1yjzk_T)VeoGd>yb=wd6ln#CREMFUMblr6` zb%@H|dBd$YoVIwX#qy2%{Qgb*^u^aatxn&mTWnW$mTWqLc|pf5ac-eYL}xBF8yw!g zyx(kQ95Bth{k+;3bY`{YmVjh)f;}jQvhG`xba`smYmQ!vNeoN9UELRUGF?IQ#MPuN zUC|{iqrPo5N6;9}q}MK;iYNPhq8OfN+OD&kiR;qN#(blp^$Xh z_*{nF_2Bc(QR%vCS;ZMsP;_mgU0f!dYHU^u7mi4Bq^^!yyqht3w3gzeCC$oxg0uCj zjYHO)lyFjXq^>#-)7f%=DGo?Jd=vg%qqwxMX2SrwUZPnQ%~aQ=n*ky3KuZzJ*Za%w zG)j@LdXd#knz~Y*(w-m~l913kl;;m1!TZJz4g|?pAhu*HX z*lBLnKr$(W$L7z0zxu)Q57w3Lny-_*XNF3Z7Yg_C_d-WJ2t5!9^n|J~dT_kJmW0NR z?*LvQk$I4iVd>8NRw2n5mw6Hs7^sDeJ&}FJL9o9;1{LKUEp&)ojU&K909lc!iV=J# zl=;5VVC+~q-E0^nks_`jY)hz-tR(S$GUJlTHRWQ)sGI-z%*`iy>u$dFfm?34g>ERV zKkMk$G~l9(5~`B6rHX2!EfATraLK-PTQ}c(eod}{V(VL*cTKh|X>DrG*0D5Qs9!zc z8i{UMbj^k%>$jWe?W_9=Q!A-7*O;xAbyrZPlClsCFD#5Vv^ci!d2w*wzd!u(SIT>T z;h39f4Mpw82b<=%E;j)M)@D!TYI{1Tn1zdedPUado494;VYf?b4b^n{>L}*M`K9h? z!nH8vk9TeuXl<_zjyr4PBW*po?YEp?vy`Pb*B$HKyVR^zPZZD1nYXyQzA@~rbyc$~ zx2zb647Cqg7EtrXH_yMS5cSkIQqMK#qkct_W4UDJu{xKoMPr_t_GG#%*^suoLxGlw zo%?=#*qm@iJ>jriw}fU3G1@%n0h32XzB&kPD6Dhhe# z204&|XCihmzB92Y46d;mA%;|vj5@}U2q*k76B+{@VWDyq(10E2hLv>a+0ioqCMx7s z!I}s%WQiz6DR!sX8VT?6c!HVXkrnlIYZeqnR~NnUm?9oiY;zgpLdu5FWD zgQbDa*nm|zmhm^^Q?!M|{z0J#HSyNMmrgS`C(BW(9 zSUI}#mTyv2Q$ByJcl`j+==k^x4|HU+=~TNbDq0+l#q;);iknJZ{sutJpB~HkBKB%! z!0$@OcE7l1AX9AgpiFr*A0Y$SwGSYcVaXE zo(peOWf&@Y=?BIM2Qb)pMo%RgsxgN^4>3S@jX@yV2F8($GjyE_QyBwb`1P@tjGN(h zBG)q$Xh;~X&xy~Aj1(yWr4L`0Krdr89PDaen6{TUys>cS&Y$f$|FIX}e(B}qOCI^; zqEkZ0@Vrj=12QFWj>@}54ZQ%27=qRpIJ4 zGY-d8{!FV`%$n|Mbky11so=78b5>3EcV~3RZNFMJZ(U=P$JaAw*Pab)H?CMK%`41H zr3UNFj&RKo+=bz$sgA9k9sQU4EP+&5Zyp%xyK-t}&GJ`<3%MGnyRn$9R~+8z)(vwv z?mKevn?X;TEb5-XE9!8h1{PGHw$~wuS(mJYlKIBfbB9yeTvnB;lcnP)Ht-ooObhv? ztjCuftMQm@q2w{*a}lbJmcM5n<`=?ZKMkw=c|$N-m6G6(ihg z{3v1WPCUzIU`TaE#5VhA# zIo&O{^mcf?wM!`Z)z@x1vpo82a#J(l&GeSZ(cJi|c`sjc{@l4AY#Yn3TGe{~hKrNE zsWE?p(Qj;?LY@eJ>FX4Ghc(>t$9L^C;oPt{BvKe}sf*bA3FTDL4O)AGWO z&iV$*<7-Q#S=Fh<+9O=`s<}zK)l#l?igd)LX}0NKND6aJ7;ew)JFmND-CEb%|KflC zhHE#kE!a)L#6Ui`GCyjMNrg>)nBW8DGf~&w?oh~mw<}5=4GZ#(3zUJ@2+Z2P>7T*D zN^y*>w>sUIh@|sJwr{xO^rjW*@$qbCd10V@`uq4ugvOAKoESiVGC*4Qr&7%&ba&$v zgrka?R5=j-&Q6SKTEc+vYCC zp%Pwjpw8w_p^jxB6(iInKxa-+=c((cyOG-QByFKRbc9|_Z=&~rH|h;@`u#Zy6hu3QCYBiKgU6)|Dy+~tnYBP;DA+fcqJ;cp@>pfa0pLL(Hhg&`Jn) zf|2UU8GvowK(=WzHo!5F1_aP3Fhk|`pbIf64M_;FOR;$=S&9%I#AZfSm~o{j9x4)! z(~Y^j*hVGD9q2eL+eG95E*EdegNY2qjwo}Qvjk`- zd`o~6q0E)gQ5?5~{y0npXteTNjrSQ`2|Nd!jJQw0+2pSAG>m74jSRH{pOx7La~+<% z3nn_AiQx-2MuT|t&_vP2qaAFNaiZMg|7CuuCtk*f1mFh;V!Vh3CS%fP;W5 zhyfUdOozv7_%_QG&y)Nw5G}A6=<1rpiQtjtWuotYsrM1Xr|kuif((#Jg+%Sv*mx> zWSwvjctqCA=BnwGDEWdSCzz!426Wc8S?nl!qO6R?WM<7gsut(uBXIk7&^Fd)7I|0R z-s1L%mPrRUmp7RN2SVM7q-S-3&oQPJyTV19O)A6qP#8^F+^poG?V3V`yl6Xv&VxGV zpgm@pqe5H}l}S`EAOg0akuT^8k6HIb70GmN9#eh|x4`gd1^@VuX~x#AZ3w)JKolUU2p z+^b%1gR4bzJKSzN<(D#U61_}&8ys7<2Ly-1A(#Wxk4rN8XndCzmAn=3ivW6|>GCJ& z5lJ#5zU}B~by*cwG1oX0-o(fZJa0C$#p<_}CRjH$x!}G|lU9>+HeJOI#}&*wg0%%O z6ecqO57fCfzMG=Y!)&Fjc0pGyPER!#_qEJd>6J27E85j=O9v8Cyf!p?JBADL$w3Y! zF?Jr$+vRuIgSAQJv?(I`B$cy-#9=d-&dILxZ7G;32ZuhWfT#eXnb_(W@Y>u?DY00S zlX08LYGus=YF#9YQ$~wO6EHwcmJq_QHWW+IWlPFwO2i-m(~WjmMJ;M?6{%KVdE7DOxF(Gxdq!fnZgM4(7QHFjCAvMmeJ&=f zcqrCpXUG$Ch#f0kjYSVPGOTg)&4U(d+zh|NT#FRc+$>5s2(F^%J-hH2_hMDBDpz&C zQICfRF$4K#biW~)0YOC25=cN-U<^S@LINAY8(`~5TA!T&jF~4{v5EB{(00h|Q|Ssz z1Y2c^Xl3uuIWyk@+(6`XWg}x6(_NK=Lh8+0Q$z;7kNSkN@ zet@Sq6V=`}&0>`!qRs0H=njX|qI$Gc!XAlY3)>krLezPQ@6b=w!8 zrlstPSHJw|fSq2qXX6#=Bll4NY`_T{dB_nFkOqQBmaM!pTpxfQ=&^a-q8G@*X0yW^ z2nJGCE5LWvXqGawRvFCwA0D8(H5 zLaaSpec7%aYTocM$}x9&FK{AQ6HUJu5EnU~EB|hP`va}V+6KpOMp7`tXQ`^E!aMFi znv0CX+h|Vmp@LWxeZs;uqSSH6mtHvjXyOy`5vgT=!0cWW7UujbCGPwD&&Q;~N4=n!V*Df2))SkJfKbBb>rE4BL zXny67)6e7_@q}a#oAxc~OLvq4TSj)5e>;wbo8_lIIaS}L2PK~JN;|6OQtGLf|Ky7L z{jy(#qWt@?Wp`U|#urEH&ktJ?dW#B~$D&bKUS`-?dwe6G0hrr-bD z7jNjx*8Su_`KOCdmjBpSKc07*rTUOlNuW~ps*UEKQa>zvauJ8!A0m18kH1%I*11O! zwK!~GQOx+t48?V(xWQ14u%3ts3>ML7$v{><32#G?RAdPu1k?_Yg5685VUSEkbQoDF zBz5lny_imjvUdspD&JGxxIBo z`STlwuD)Vq__qIl8=Nqt~PyHOG{>S@aE^&Up6$qf8gl5Ut*bndkVEW ze#z66n41lSqp?!6s?qT5S_(h}b^6O4R$I0@?&1LTE!kJbW5_ztZ03}zZ*W3d7d!#< z<6)`2?+ptR-0i5VNLS^7KhlAfMh7e67K7U!+A}H3ZivVgt5%bNm`hCDHcBhOh6zwH z9z5ScHAEolvs9BXp{l-V6=_VqX~mxT&oJ=vO;6QD*N(1@);(>!Q4|(e zG4~|1)n58hw|jcAmd_?HZb*8(^twPQ6_~!Sf!?({TKDy@*F|^#wJy47QMB$;ReaT) z_eRVoxsz2s)Rq&(lr>eGkr`D*B`PjE2o+3aAV^r@65Sw^3FQN~1u10oLBLI+H=FB! zxG4e*OlTLTmf?OP-^c?o?iKfL+$()AWz$+(UmIWZc4zm|t<7EhGkx9@@@mxoQIv92Zud?f z^2Vq~2?}s|ag2I;)Ezx{F6tgFrx&(lLrJ7|2TBXorf5tm|4Y=}+Ukz(hb|ye_rF&! zB=|y=TBYMThLD+&0tQVUSs5if)h_US6=`UPr}Mr`17rYJlw%+KWB-?B{`w1_?p#XG zDa5IXXahZG$%VV#c!OI1;~!HSUw@t2@WvbOzW)Ec%omn+{^O1}61MC?9mPa>8Dp?h|_^XkYQZo7FRI1oA@@y*J+%iIa zi+&mP<0>7N<>_CliFjnX$vl04x-Qw&lq~P3Z(uG)BPfwqmCr{cHG(6l(uRmCVd3J> zo@p6Lrc2K}(~?Szv^?`nb1I1sJRiPlqI@48W`6;#!Hk+~4Lmgp{~odkWRM+|h_HG> zW)l%Dh9?wLXPxUj5zWRltyd;}ELO@+pcFz9cTxs&EYb7uNT`Swp;u1-jSW&yz4L48 zGLyf2OFeaY`E>cG(?dTrt@z=62ilXWi4qs3&+OfCO)<6$5dXP$J;3Hi*X#!MAa$PqnSYwqu&3$?@<%@8-M8~<8R`nmo7Z}-`BCGrBrS2>N?~L{b=dx-V3k3 zo@{JPzRuS5uKrOY4k|TCs?&}))lL@eMM;SiNyEnvu-+^i-dTQ+qCWgr<)D^A-s~{s zO&-tpI#k=ffSB>mtA17W+p0fQ{X41${;TSps%hgnlLvcg${|vxVl?1c8bTRhRD`7P zw22D`ga+oDNunlD-((v@V9zL}gej3sQL#+O56A^XIe9dRE;tp2#qLCfA?kynwHhW0 znM2@z!gdHf!@SWEG9tPRPF>MQ`5Q}P&IUtGn zHH*VUakgYVoU#`kimcg@?xox82-@#Gc$qIOZ~w;~R8Kr#7b`!{Z*5;*UZ)2FC^Dwdr@Z=^ zv1GEf-tR(5fUA9MBpANiD<*T%gaz>AUOVSPb3@*)11PfNq!nG?WpiKLBjqqm(ahM` zP&6(mVOC{>vZ|?mpA3=f@waun_RWRiWKhaEdnZfz&-C^?l|jv7&&X0F>{m?ajEH8o z!dX;V0yI-Y1e=&yHc^!{N!81be3+2Wet5A;exI(*m_Jt-NL=>WBz&7pMa`w z0j_>E)k+P2fU=WNVk-_oqNdh|Owh?@iI#=8k{C{gv(lhQLSV$kh9D)SUf2^sW<#0A zI}~I>j9`US41JY!gRVPB8JNK=guHdCp_8~ga}(|SA-i9UW$3R1M&A?hR%;S0ZHrn8SHq+(MRlv0v%4cP2LPZ@e8@2Z zau+Q5hVmU}GtsaWtYoqRI!yTw2JDh#=EghzS>mPhM$ZrLX{0d*sAh7zA47f(<}VW z>ElF`qpx!MDfWLmT!onk6HPy))zmZT>~QT-8DmkU!bgllWH0Z~!J0hGj+e>hBTW|-VZ(_uCM6!lQfRwlhScxl*ykTOw z5Ooe7dQ!0e0ksu*ZlFj^x|In4Z6v^5yvBjvDiaCf$+NS=>@+<4`O)cENJRDNI!`#^ zny%BM6}2{=|8At#Z?VP-vPkzwq73cpaxru?QY(q@52NPDJUs_ua6SH@@Dj!M-Pb?7 z{2T58f3ry4D$!zjr`YU&XZ6qGg+lyi+*)07rHT$kwMQvo9PO~t!z!7I1XjENB@ff@ z_bw^IL@9pZ!;8q-!ZY*XnZ1B#)?Kw5dGd!)4}KC=duNd+dZS_Q8A>oL^N&0=V}d1K z9k^|bdL~1J7|I;xTAJv0kX{69oAgyJ6@h^PhyYBkC~?8_M$`ohMzn+c3h{vFJ^NT^ zKmYsVjku@lTru)^-I3YH+iG68KUKRWQ`cYbkX+{6jy0)heBVTKG@Pil@)nbmZLD8K z)2v%B$aYx4qEt&p!PSM1xzR{JjWLK>E&kfb|27Q2hsxZ?{hZtL9S`_tlW^A|KUe!g`Z3xDh!4ccfLjmgwKtxJ@{>}VsWcovFhPu-HL&9f~LTItwX2g#%t?0+fiKDJ&yx)9r zf?8QO&|hDEh+fCM+%&&B;P-lK!fjhOEIRiT`Z8MuswUPAZzy9)$GcnguExW6Oa@|) zd0Io^5KVcs@G{gyORdYRYtxzglj&;2nOZcztNJwvf;6;lA_!vR^J`?lm(ncjF}!TF@WQe z%nU;r_^4$ADghW{g@{OP1rmZwt_n#s&GPaGKR?RXv8rUbP;(L{f}u5j_DHRsQ-nY!-WVRehXnGu+1y zdEwJNOX!7)Gt|AOsdjlvp@-Uhe*Z5Zx!yVR#v3=0nFj6_GV|Qh*7mOcp;Z?@^P$Ce zU#DuyuQNZSa^)X#O^WL1sO?(1yyKmff3~3A5Q1j1+45)V&U3H>3vqU1yso@z*6Jgl zue|$P>gf;Ke&wwnT>AK1Z@q%ckh03?b2Jmw5YCb_t2m`wyB=?3@EoJ zvnf^9w=T~$IRX~t;8;t%J1k0)$Lc<@=P&}N< zn60`q;_T@94fC+1naV$jy{ zb^3m8t~DD@AaT$wPwjM@{H1=25|kt@*E%+K>hMEb%(~ejIg%7RjA{gz$IC@pWL`6`$jicIE{rbb}-`D*#^fBezjy>C+HudbNLEne9??V>(?;^0&Nbadb1Ma*WlY2M0%m)}-?`@#Ef zRIQ=zed7!zJiBtVX7Tbi)5a1N3~pOJ`P{m@_Z~UCG#J;sckjGm-M;$jyI-UDTG=(b z^aILLt678_Z+oxmkgnbFxqUy6?WBH3?Vt|-_7D3*Q|Hc2h4z+P%BRX7`^(>Vcvqd1 zEup%({J&aTMi(@f7Q~|OJWlmDcKQP+E=TH5`M7yK ze>G~*KZhP|-v?&M>p<~+yXu!!zp45?tjqs^v@wXhWVqr$*6_j4AnAj`37s1&$j>nX zNmgm>jh~1F0#{%#W2qc80APPpF>FqliI|yWG>i=C7!r(NRT6on&GHO>19w$cV89KZ zUyy2}&=X`fZO(;B9tR><0A8aaM0LSIR3a6Lf9%p{gf!XE7_sa!*2tQzT!DJRD{)vWL< z8D<-cwxjUQGo12EYfS<_q<#LHY`nfPpSGzCU1;l)Hz47lZ+tlrIIQ{7-XGa5JvVh& z716OKanQw$=mTvQ2V&<|MQG{l&T;zmqVm}S9+afb``Pw*bMl#Fb7C8Pvt|0KFI>~| z+3E1-2X--k+BWaqm)PH5aDRVv^!CwFDm?SCV8I<&`Zt#I+byVx=bjOdhgq{EDmBTp z_(m)g4)X0CtE`==ns`i=ZFW@#ya5pVY$hJct(mh$y`tHx+U=4Wjpb6E*41t8ybQR5 zVEhd+8>>-l4l^4*E-qciIINPzktqMfW&TO?qitrZO-46Op>*@jpF~{1*3>vB6uzwd z&{DKQ^)IcwzcKxa=fR<^tCKYo6RB)@s{H2YO_%;5hk!2MD|`d;W7dj*A05HA6a($w zfYBljVIUF`@hiugVp^=JB$M};48o-Ur|m#El?`;V8Jx@?+3wQeG=>Bth>nYClxYG* z8h>n4gNCYn+D$+6lGXYu&k5oeY0AZj^{dCPm>TUcTR0a*f9YkL?Ny{o*uDs~8ib2G z$EHr9QryZpDe8;gvs!7EuvU>>gglq>SIQ6ZY_qj| zu)Dkb)`>IC&D3UdGbd0huAMoKR{m=FVdF5bEt`I_>~y=GWg6JPO`A7Qe;y!vTecXs z!9-O-$eB7(9s5V(DMc=*$O#TC-Y#jp5SD{QqzO1q1zjI zcpPy;VTz2vb4hakpaC)n=v8LN$|qMzjjb^9Ou{_QlggU#KWC01vC(imkz_l9F@#CL z2m=%85{u%HXwox#4aO(B2sG4_;4x$mIa}pq$kH=p4`t*PlFQO#d;{^IBBKw9Ju&JZ zO6PC}`7u;Bnp(Ux*)#Qp>^y$F7?#WyUm)V&rAxtxn`+dyZy%~{MGxm5e{&?Obl>j% z^7x5fn>onGE<1i_mU2bb9&NCi%CGsGB3_nD%pFP~lfXd{iNr*($!wBB;mFky zZ*$S_tjRmlqw~`@Pyx=~d&_}@?EyIkL@h>yM>c<Qw#b667uULyKZl6U!YS0@9;a#30p^a zv>_I(b5UO6oTU_ng#^q!ZZZw!mLW4QeCHzt7pI~xrJbVDfssWE8irOPom5|%1B8+* zXmdE9mgc*o?vUtYbF#v*iel9$Z+p4{`F)@`IF4yscbx|bav^V)UfW`2rA}|a;o${9 zWU#{YMUX1VJ*hgxHZTILjjIeV!>y!FgA@jm;Y9jn<-ajIVJ_nFhcPxPQ7b6~GrB;r zAzC5c3ITy`P`GL$1f~)t#F*d6oD{=hjnAl&JYJb=2-OA2>}Y&pU?Jn&F=SDu8nl>R zYT%i#L@C?Pz7Y1OS9CT6Yv*-aOBv4(qyk5!#6*$WG546eR|jYi)b)5$HTPzE?Y<~y z3kGcUPt`Y^i?ijGJF)5#6d$+P16GqP%b{Rv zYvAmN)h+s%==4TBTE*f)whwOOxDuyXua=I7y>?X$7Z(g!D7!gJ75dUFyQH&bSfFfX zEhwU80U+ju=6qQ9&(Bc-tKfG~q6H9B<`gd^{ZN84N`%cSuo2<1FYrNEJ(u0>v&a!I zS8KP+M$WQ;ydX(vH9c1Kuhh%bkEoweKc{|4bF>$-gv|0pNVqTvC8D^IWh_9R%xH5+ zn8zCEh~(Kr@Q}w&vUiANnf>o_0^o-1J)=t)GK26iR^oO86i)!zvqnWuCE+*))6+O2 z8N>hnf~r7tNxUlQzU0hMILQi7P@du%E(xrP`ZA-&B%z@;kUKJN0o&qNxU6QBl39s{ zl_b*_K95T-5^P%$OXOQbrVKQZopM(lzJaoixt z4-=wJc1OZAA#d^^4H;OuW0F(-kr%eBa07u>!?huo80Rt6D6%u|Yi55u7$;Qo2IHZp zN-@m65Sl!KQbm>Qf-}TYGh!dljGTsOX5?0oS8Y6;%DIhAam!ST-Q;p+S{&6V^PLm{ zAzr`w*ul2vw#Uahcl$frx;8j@;F6o{wz@^OjN2~RL%ATwY0k3m2xw+8Rk(&BpV5C&2cFLU{Y*tFCakO%} zQsh_~_!i-mxv^ibt3T?At#k)mm-l!Af{2?_L`Z*|V3kC#S$0}aK@K!W z^TLSVLvxO~-mJ{K9cId6^IM~#bw|9qWCx&{=ua|v0?l9&@bruB zb?4=b%?=QftU^)me9kL5tg6JbTo{#>oT-bZUi9!Z>vu*R+i^Bc@!5~n>oLkip`S0! za~JkTRn?{G)uUH?lg<9RrMC3sO4DP!y8xIYOC0G$X1f@qS$=qqYWIlT>Sc$51rf3^ z#kmqaa<|--Y)h1in^rDcSXZjAX>>KF-4I$N=MK1%F%tnAZt=k8Sb{I!GUp)E1grk375?o2qu@VlRd#MZY&sWSWclE zMMF<&%%UgKa(a-H*G4RWpmCa%Xbp!XNDH7G&2cKA#l+DSOJgRt+?egNh2KrFSzC99 z2aV~9`EcDAifyd|n{ntKTbK{KsC-z7#^fGcvJ$s0j_5Sg*%#Z`oOZu8>&T=%cJ%pV6)k zbDGB6s-21jeLI*#E|=wYx~;{cdtJd%wWfJ7(lj8`pAuB&-KtMf^Qnc@5^62Ak=jZfqi!Jf zA;48D;x&a~s@Q#o0ODpv00e|lriuwTW=I86J%aX*a0U`dXUKWfl3>@$A`u%TYZxyc zZ;&JS1_?!E9Fgc)W6U394?}^wBv_I8Sy4$pIIkl(Uzy-Zc}GR=#_$b?hF)NVNh_0k zMPQ}ST%K$PX-D262uTT+At7~$HuN1Q>xeAG+D@8ORv0gMH28)RO2gZ@QX6AjZd*m3 zqhO^{4rc6V>}qJxvtkm!X^`B&VIWqi3stK`o|e#nq=Zuu^aTWLQE>v@QbQyHDT^E~ zj_9_yD*iwH>>|ypMYo7St_#KIUY}CEgtptAXr%2CBb3}5j}6!+H8~8-MAtiY@_OK-!ZwOH&c4ZWMOig;xwflXh@ZH z3cj3dNje8iNw;Ntb-1N1pnTG&$&#(eDTQdfwwkvxJWFL5O+qCVUn5=pzD8X6^1?9- z;MQ{UDT))nNj156 zlr)$EVvd^r6(fl~_8|J;StNl8`stUkELa)^o9VHQBXS)u=)1cDN*thbg0G{^-&d_i zDQBIhGcJ;b8siHxyX2&4+;!9`vDKZl)=lqC1ZCZB=R*ODH&=4@F`;5^ph%geK)d`80BM^yJ0u|qbmGmMEE)kH z-0u(^K3~$E$>`|$yHH&9*=vCyOcEZ@*Y>BD_a_Nw8DO-A8Mv$v855K zg|#@bo8!9fv0zwPlkE02>+u@Z>CWz3FyAVuYP74%CpHvabAL{S#fEg=w%&Gx6RT;) zZ)a>Muji=g3EnJu8iceI_t*LqF>phNz2hSD+e!iprdfN&zwM~JV8 zH+U25YUp=hSHiG_d+|z<%4$O;A$jJ;-m~5)vKSB44%XUSvWcj!a%DxN zyDw8s*`!rLEs%}cw?3YARtvSUFt>0+x`F0f;UqO7DT0;4EQ}j&hiY<~B7<`y2Y@YF zgV+~f=yGPpVlm0-MJ>(lK8;aVEsfT3QJ*~=t#*5P*5Py4H~OH39b~0_C%#GopRtX75_3Me{S^T>enf?6$^Z0A-B#FO*as zE-h(ng~Hebg)jOyprhlFv%WraJ+14$#^tnHTSB$8;5Dnj%R_%$vtA!^W%j@t6#-es zdc>MqXXu@a5zWtf9Req$1gl6roe^Au85Nki#S(PcdZ5qQ=nYHcYFkY!b@B6JlwmT= z$WK*o6m6$1W}nYusa3-$#B#{2%e(1DeTUv)({r_6vp*n9nl4#$zD9A(V#{SjHQCwM z-j)F-`((@>j^}&l^-8C=x>^JFbfd{}B20^D7-@>plDOC6bUx4#4FV5!&?-~Fp`?Iq zn9hs}--)a3-<^YmEXL-p*(lmt4+h+sY$~gGypnHXLCwM7&T$KE7Cf{99L^R~Ghj4* zK6o%?ApVN_=53UicQCXpKfE~B?V=dP`9!q0wMmZX*(Uq^jr$u+o|s9j+ikXFgf1@{ zdjZB-F7)Uo!4kKjppLhht(Ut(H(M zLPU+RO+`o%zO3+ZxWdH5^GyN_+$;tSF-$RG8wVzbGz5uJ{%J5BkvA~!IC9q6gAq}K z?Fp|MY>b`2vlSrCij*YhA{H{XG6WwkiCh{!@J`ecd^B~Ln!1=2IRQBeeyT_vy%SLt zLvbMv3y70W&bSAho!EyJA!Jm-B5jL^OLAf4bOtWXjG!_EEyN4F=r}m8SB+Kf%(w?Q z%ZMP(Q84W)0!oW=cyKc^r^rHaiIAQ7Bu{pOiLAkek4rZW(qvf75Pam>^Ed`hif4kW zHFTniElsYAJSgT5)Wi8qbc zdRRAlcx~U1p==Bwrp+R%#cWBD_E^!#LsMxWhB;iOn(rPmC7u*5&6d`~hdQ0Ju=8SIkme~y?-t5j@7e)qQzdnao)a#@4n}|+%L4XQ-44$ zVa$^dU=gpKUJ-VfRr+HtPdkHDEgR7N5)3naj7PQL-+kRO2Uz^T9zXDSI99NDDb0Fi zSOjPf*95oe$tiIQ?TXUwl$Pa@O~*KPZjN0Ir33AF zQ4$R7pK8fxh4zY+)&0*28A}Gn`oGw(+wS3fKFu5$Re-SJ79BF({Yh8M|3Y&{4F#P6 zp9`hCf}^0>ZH0u}yq>|B(J^b2S*DrBU}+`gDxZeCk+<47lf~}JsDZd1|9`3a4nR51 z>fAehXLic&?9S|L@4ffEy?5!VU-d4_MYd#HE^?Qoh2{20F-|t- zytRwZi&%H)?^IlcxZ}v3Ar$kmX!;XJ!xS5XXl4!7tHSN))KJk~jNaf|eUIS^xoTx@ zCX?B##xT7(Nb5nGM>?ifls!w+!_54T&2#El@zhmn|C7bV=2&b*_Mdn*Mx~u`#YLqo zMt@UIf)k6I-YYIGKw@$dEi-3_XPi8h-;tlv_Fr$%^xNbs?#&)kLu!`x4c;muW zhkg?*MYljrvN9SFFML%|D4LJ<#^;=oKMB^+AgoFz28~jpV~K5uebq`Ppo}iwiUZmbd{gC>t9qWS#1Fw>(zir3CnIasG9I!2C z$@c^;=~WXAk}RQ;UVPiO%i1!Ch(RKQFTQO1&+gfSsYr~Sjr2PVE_@_?eR$#BB*9d| z#uudrekTGI=ZCDcceGC?>+488JCEE_(64})uryQIaA}zv0 zlHoN_3O*K6tO7MMxB|>Vz*Q4la3H$vow2E{BZw7ev|+Ig9NtW_13^yKOBy2WyMsI` zOKu)*2b9TuGqI+DHQOaCMejcr(!#BU!wc{{ax-zKY{?G$6*_`6PXI)PJ(2~+N$ ze3ZKKYyRx;%-U$rBgTc0kUW#-_ELPl!cY0Fsb+2I z+`}1zb8tdRDA%L1@@_sHqaQ9V%d^IP-9VEWj#>_Jzu4=KYBydf^kpF zUL#_}g`J~bInvTTef-!9&rs>x=dTr);=R0EL@ZAj6XyM8R4y1hYjb(`jGLv~z)X^B zmxse{R>^Abi3ln#CgzmXL>A%1fa=eAF+RKJOKT#N564xek^Sx2*-B^^aP?0#s~vT# ztm+Og<9>QX#I)};?__zMay+_cUGQ$^-%3qP@3`0J`=2kRboR5!B}LfD-3*gVmNDux z&Ibcikt-tH(rd!dDGpi{{BEy9(}5%|!}fgn4fN^RsB9rolEN%uXbD3v(yGMeZeupn zOKZiseH}}06^wY&+!tuc{P&%PX(Zi2g0@p z$XaDIksEGTs>bigxh?*3iQ#WU99MM+exBA4Ei9(TCElYKFt4Kv4TIbg&08Wm3Z3oc zN3%?xjjCQz6g3F`8k^RWX(QnB=zK9Al0D9hYdjsDnTm}RMBXdr<}#TQ!;UXfYOhkS zwEd$!_t1WKH!`-V48`Sq#K*(Gm#Y%0PL4M$5WzKpGDy;5f1~d zClg!}K;$H%W3VRtHrUCQt+sb*`ZSvS+9dmRaB2t#=KhZ~pHnpoy%AqOcQ$#u8sV5i zKF?!Z0?8F7w8r?@cwqRpHr>$@vZ7R+@x)qjay%R`@0i|wRJqdGzx>KXvvvEN_Z{yT z3tK6X(v)hYXuRJnlnl2&>QtAO>2R8LMqP|yrhuv-uRb1?SspkzislhnOZE9=tCcFd zi>gZtd5V0bemEt!^13Bt4NOtm@wnm^4JPP8?Y2|ndk@w)6!Gq_z2>*cgp3ePP%Zd& z?*?=Qdf$0k4P1SLPKj?F-;$yHl4WVR`NeGTb9Hv4-I62emA%_TlirD56Nr_|*-y4SKz?eo)oc5x{kUZkD#vCMr=JP~Ky+*?R0o^QNaa!5`+?}wI;`3NrW z_E#?Fzr}uS=nf!cp<)4g_YYOL1DXIG5RZmDd^{}_)8GsK;y3u7=wb5k?XQSFy{M9j z!ppS1c8u72nRLWtx=wk5NgURBD3{-BLWl?G9oHhmMC!p20MkQbqx zQEI>h1A-$O9JG%!6WurfP{hgxJ{lr3WJ&gQkT2~s*qh-LI4BNh7l*;@#xRlebuLV(SX4Mch@ktG3_%4KpVPeb?THKD-W9LGmSM`Nj3!?v=6f6&$oAYy2#PIy?{b`?4 zQH;OdeRnu@%(B?7fc^$1qPiLAtx+RcAI_>q)r z1Y^==RR|~9mF(>CJ9NxY(GZegbYZxHa_W|%M#5Tjw3qZ(epR*heX=B_8NXNIG^fww zaOu3uP~tAgSOfi~|05tMs0c@7VOfa*|GPB0)V-7LbGdD5! zGY>J3F{l?H2p|yxz_}q-2}z-C4@3(p%@T1KVTnBjvI05&kmkEdU-mEX^byn_Y(((s2jT^*#5ru~G7vaqEw~rtp5PMj zp8VLvTkMGj1aeuBTr9ah6m<;Z9=1Dxk--|CJuVDel9-5{H6K{@IJ6Is&prs6Oh|s5 z#6@iB*6LoAL%6?#du!iTdm$GWck#~R0uhNOYq4V`u>J>BM%F8A3}MR%Z3Hr4$#)O~ z&Oiz`Z7O+HzCk+L{sU3*oh~7=aWdM(-nWX0oCv+xf* zA}!1>PEpDw%_m63nX43`kk|G07QD#0ONMBrAF^CDM@NCF^Q@m%hC4K7E1|-&9G!I3 zQF6&D{(Z7c8wTV7tk*&(CDfC*Bhl(A2oJQSFi%IjNCa{4Cn}qFtp_jJionQBJ4Vq` zB*)$76`USnBAC}@xKx}!I&4I0sOMxEiVqd%vils~$Ejw0_VV?PG<(u_w2~;uLkJ!a3hbL8?&+otn76=;KhGA zQ06;lIbSTqSdK&txKgS=q&OCA@Eg4dMX?d7y9FkGE zrzfrn0=tu=rs5opayhqSJW@|8RbF?`-x<#F9IOIsEV)O}iv2h0H^fshBO?pk9q0YG ztd(ECXVUvbcSm8pY~FY|O$U}2fx{P&=Y1-_Q_+)LId8eN>_~Kr!zpd&G4O4XuCx9u zNoz|=!=bB8FrO$h0gFWr!l`DI-PGJXs%0HOE%P=rlI{eQ8LhcZDVc-Zx+kGEqxETE zy{S{3#1$SjtptHjAV!diK=lq4)xBQ7lnFbQLm&s-4K3L9SL{2c_w!Fu$l7wz!KBRPWPImxs zTa3nx=P@p^?TIvs*2r+gq+2Dpq6opTWv11ir zcnASMdd;LKB+2r|;rDJQ{=AMB6vn?f4gVW$1Zom|CTFkxr0- zR|%a?)cU~CCngbe2ox$YHM;DpF*9h{i@!is8363W7SQBmOcE~`1UMZ!$u_?AA6(0SBMotOD75BFOWlQjZ54JtOk}KRtCMB zgucWf;3#JYmJP`;|9^fnF+|X~NVdniU-h-|9#`S8|BzE6az{)gI5Hde0O}lz-j8zazW}_MvhM;4!ET;=@Bqx)}Q<*K5;p-0l>GZ;lKYo3de`=P> zz3}DL@Rr$vI=e+Qe(5i^M_sSmUcZim7m{Fke=#+goOk9gUk=JXmJ6;gmO~#p)ddD7 zYWAa?TNVM$>z9FBNNHmt&?xDvw>bQUWaZ1An}2&6BHCeDouESj_9X_|aZWWXOTQ1? zv`Xdf{yz0k_~j9(>T>j<(XE)GD)~%7{n#?#6wU)Cn ze=B=qz#ryZZl;6!l;$;z$Yvv#o~|;SZ>w&E<%nD~ro2Z|QRQ>DJzDlfI@f2t<*~$? zn7jIlnPRsdwSM9?R(hSx*ydL2bD`ACRR0GTzT*WJi%5k%;$7^vk)UL>rdwAWM4^a7 zZ;jQ*=gZSmbmM1{vJn}p)?DG6VzLt=!+C~9b|BjCf@P;7KUnlvOo-!2A|G&M;FBQk1J+nUJ+^#uq~0 zsZ)(e)zZpOGLph*BJc{KN_9^1^pUqwkhKE{419I0T$15^DmS zNz&#I!YV!p1(Mw(jmTg}yS6K7m5u{*N-1?yG`v#V&r-`;Q-ge}9~2ksW7wo{VR~7v9OqVbsA0dVGG#m`w$|K0h*4QO|_VI1{3%N)k1$d7OWi_LzS3zi#}G-WME! z=c#&t7(rnUF|b@E&On4SAB?bS5EDB%cgnHn4#5d07|@Qiya@DL__{o`@QUKNoxg3U zHS}6c_<0{@qkL=N&Ds*weilTOTofnd=Gp?5{A<6rwmDIuST=)26hcD^uId-&CYxhoE^3a3#AK1Nf zQ{&Vd=ZtE5`}&Q3{V=PC*w1rrRd;dbzQyHQU5xLY+}gY>f0(7Z-Gc{@-Soz@>wCA# zyfig@Dki4QkUx+V4VJzCBky?XiT4(Zw=8a5UMirA`e=Fk6@Gsiz2q-DYN=c(SV`nZ zs9&aQiC8J=_s62&X3dbNLow52i8n_WUJ}Tz1vD@$RQKwJB5lUcU%qes z>d!uS+stgSus%+=s}tE=t30{(EHhsl$!C($=5Q|4cl8!Vx0EkSZ0>)luq~bLxiPKU zjbI5q^o>`dj^Fb?1?JRU=$aU4My$zJLv|eCqS_^oX7EZTfWe7JMIQ8!yESB&8*J!E zqWXA3VuNFBJah5^pfENW+N4BC!v_4r_bG-^jF)lWPxq(9bzyPnV?$pA zzmj`KUW6$JInWLDPXZSg8FBC)CIoVnuYO5P5wZyp%Jvho+0%B*@eu9DK^_TtJT_Ou zz_D*W!OJDF1P`7E`2w@r$QR^bleEpgQQH1IkiquqsvAAd?bZ;MWpg;lK#UdQsm@lj zv}t%pYV}Ney|KAlOCS8Wv>b(%hMND3(2Fitd16 z_~N5nP}VbvfIA-RbVGqRUfV7ghPzj8Pn~NOitWml{MTEdMTvL&SU#7Y%m<2aYFcj3 zuV=cKjW$x7mn-oknwo-EW-4mM{M!#s^g1gqc|6`|s(}gR%x7pyRC7*md{kb^+);$-BRK2c1vssxswQu&>n;MqyaJfzCbN)a(6)ORE2Jy>36~4w@J@hW>ZtBg* zp?{G26!it_8`R%W$QXG@Sc^oZCK0`{Im)Jh4cn10E(v2n>)LrD6rUq$gr}696Wy9Voi!I6G z2(Bs)WxurzWRu8YXR;ehLK=IJj(~1}t^x8gp(#R+7$$8e+il7w0?4Lcf&>Ma z4-&t#2^AZHst0<)4&m9~UrfW}SSSboqv)b(4DwZEFGA%|TmTLvoyPbyP){UyMS_fj zn4JBseP*1a*`bVqO+zBGWF=UO2@WEx2ln0IFA~PXZSeY%;3>z_Sv^})pA$f3iNIlsX8 ze2&rd?p&&+gtgfApv+KGMDj<_ks+Asezb!)k*nfEJtPhm-WIOp#IY9+t0X)7m76E|%s9wi0%v8c?9$$?Nvl19P_ zudYda((-N1W*n*$zIPzbhj?dNWkONQ0QR`%ptgiX!F0-6rISsB2n#w;I^|qP^b0mE z)kIKFEoD^H{qUH&?rv>s+~p}?=p&zDIlM7;n*DEzzPz=~N_wwNgtGo}8sjdl zBSjqEoX||IJ*Q0H8i>Jch)?dmZ+*{Y32JmS-z{ukNGUXx8M{e|bBx2wPpzO>D&tv4 z$#$f>C`FHY>&qn-efAPOG}X^8ZxtE8`}#bjt<%G=3lXE~>fZZT>ft=gRc9u$yo_Y= zg>M^y8(4W^9^(n3ioWA)#Ra&1wtnP_h1*t_S6=f-a+Vc4SB66H)w!F@N29Yd-9T?F z<4m6BJdxSmPaUqrR*K!M5ULB^$`9g>P^*aQmRzz=2-(>E$9lA{re?8l#g*u zs=zYqEJ}OR={hjXcqO&C^&P3*`|D0`E*<{Qr#;HzteetN>BNXT){@x=@;4!d;dEtO zSL*^NlAOO<{QZ|WQZkNtf7@UAH|{0w)X*ywrba>PeS-Q7^)>3d)IU(aqW%rm2}u^% zN{Ses1HDM34UsNH9Ks=P4r1V>RL0g=q?ntqCox_I95>+@Ff6_qur8eM!BICjnWSgn z&1bQf{UXT=TXlkcZI;HFyF>;NQERJGJI}Zwi8chXEt+bO!jKRb7x>4r+Wy{_2RhmW7v0%R3`BP`QBC@B*jEGNmT;i zylps20nJ^c^Tj@oNdgs`9dI!@QetJ-GvNTZ(?}wq8UZ6du><>Yhs>)oa56~KhbHn2 zqr0Euro>=FJ1p&SR>(exUh7nlU+!Sw1G?+35`*7b1FCw@{~%#9%R}#DsLd z!cYr}RW1aq%L&rGrXO%NOmAgw{@{vhcroCRJAPJjqAhs_nOI3h`>j~nJHm;&;&lqK zV%zKHfN&{R9kuNo<&uQFufcIVkS@JPN0erj3l=g!MK?ABg>n-+;*mIwQ*}2c>r#Rj z;YkOGx17CjMF0r<$`cI8Z4}O}dlFD#`o8eKSwU~pwBd9aso>=%d$y`)QwEiyBInZF zowtrxV{$%FR;wb~{#4Ch$!2s9W6)}dmzS8pxiN%_CBL&7V45w@@Vcrv87D=6w_nSkidiIN_e+ z7#_2fDxm}?xN`+{mw+Kz21AGLV-%!(RHq{IK1?J@y9^)ai0hsXFd>Dk(h$9zW(fWl z(#1|fbz4;$!#{LgbcudOb+cmRO{V6w&doim`5J~U@nOxc2V8Exl6b=RL?V425n#sZ zt-ESfmp>cQd=6xFEc2#}SWv3R?vvS`lTp){ZWtO@OQQ9w@i|?da=pzgdEA5s*^U( zU(0jF7R#xHO+G&*7@l~o07j_MvtiT>@-4A}#`_L6w&_ z>)c$RfD8uB&jgq|+nIF2TQ>{`?j=l6?!u|pU*gUv8PD2}4P(s1r^@3IEQ5JVQT%xh zD$yNJ5iI3f`ri3%YcoYyMtpWTBc|-n#=+IDK0RcjUh)NSq zCT~cTlkhN+8^nsiAN;go&k&i~=x$hC2*q>}m9;;?XGh?a$T9oaSw3YOp?jA+|7_P*yEu|A{lMI?E?aj2sf-~ zAod1VMJ}X>VX)*F5IkLCvXXb$J&6<9hb32UOKS?BNNhzmviDCzqT&s?CHOXNcM1%CW>6#m z>)pP*SF_dF)|QZl*YVk5rQE#Uc+qwIvQvgjia&M9zNy8BmvCyCGdv@msa|*Py5(!0 z+O<__2AAjQGhQ{Ij}&GmCUckF9IP7JO0gG7!1UYE-X=-8!hTCJwvX3Kg?gqZI)%UY zD%jw_V+9l7zBkEfp5{nW{mn^rCvZuf$Lgu=Q-ZTs?=P*7EP zEh9kzhLPlwT%(OC(W$vaNeKG=zWnsW;ffc{dA(LUu;Q_l!hEH-!;M@fU!2U3pL2y9 z-E7J%H=@7eb>tk5&F*M6rbl>+b-Vn|WS|H}4Q5Idl}=TsYK_-lbH(c#WkYBA-+v{5 zKutQ}k4IC~&*Q~HBwomWM-KxMosE*IOdd5-3WbBJxh1AhY0v6$XR zRDSn$DEwm0Y$17ehAG@us}z#?d@jpgzr|OOD|@^}zt``VoTJ$#%a=u!q!W{?)aD_l z8eEo2vwAe@Vi8#vc`FtLFd$?~M00p%CWf1%vp5H+kM)13c}#6~-*9jL=6frgr##$_t41jG`iRf$nfZ8pWo6eD zkKB5Aeow5jc03!7loKU{$hNd{=|(G`YV_N*X%-y-6>(^msRR4iUsQNr?GQUp9QybE zTO2F6S`q5Ziqfe1iVznKxh#BYzv41t0J|6(+xz)hSY-qL~3b6m~BWn z!l)baZ6Jf}1KW1ctMBYBz}DCm4kI=j%!DJLrPviU8Y!|pEL9>(Y&l~Kvx{OPZR3*I z*G`sWBfr~W8e&3bIN~l7@DYH7`$*{qH*h|Q$i8?hY;oj)#2J`+(W!Hs!unE z-M;Iu-L-djVK^?vwr_8C4%CjEcRf}=i z^F||)@nU+Prae8g;sHEnC|*lcL&20^R=h^Dx?^_7`ck2X6s{ogH0C**O8?hC`%eEi zs?4&iu8v0+hHHEFR4ePdD#ve7lnd*bW+0GG1^oU1^=vYL|0UBHTSk3BINT{ae|Iy+ zpcOid70=IZE5%d6h-nq`jmnLRUTZI2v3+`V_nU!u>5lsY0v{5^@-6GfSGVyrFd=#M z=3^&EC*FC>?PFs%zcTdhiOHi^Pff0NDpY6t(vAz2ByK#wzcpDmAb>1?w3dvXIyk@k z^kQ@3_^HVY|8meZJJ)Q*lY5pcBNeY6+%}hto!@`%{+^)cYK(@7Z%&B=S~(g>wkGwF zj&-(PPGzfRAqV({u!Xp!7Oba2iClARrg_O|ZoD~yU}wmuFcizHz*|5w2eTNi495x& zy#E9D#|ruQL}qp>wr?SY7RPGk!Gr11@pobZEC4xU#X=l-oCWeeS}Ko!c$-w_#6oZQ8e;4)BHjftd3c>j+{;7{%6)2qy7_!fkzy5E14YB6I_XhA2;41t*E$ z2KE)mI4}D}yb1EM%izEp#JRWCBx$uEe#U_BZLPY|&xSMlurpDZI6v4qjEENz7Gze6 zEfmP1VaC{h$X5d2&GLeMFth}tpB~a8OBbmuaZzx-H0HI~rV-3iav>>R~xn?_^Xi>~F7gllHm;k;3pJhiAV=%^RcQ@)5_=D62V z)OTDC`t57MnfO|x|4mVRXsa(C6``xjNnes>bGsZuOb=BZvhHNrDT$vILb;geai$9b zKq@IcgcMmg;RypaCM1P&D?B35&U{fcd{J*!OGG4Q;!+ie8bH=UtO2;~G+juI$-Y|3 zI`KAAA9nRjtc418hBXi$#(h#aKH@Ww{f&C6mX~v8Gg8s7$>Ewg!~K5TiYX~_W|y0u z9bshBD=SKfN(;z0a~Z$Egn|B|Sgr*J(7IjSI!DPeuaFNahcf}o1IeP?|B3I0sy<+Q)SNr5{P0~HB1`urcU3rbx zO>LAH6O}P3sMG=NdDam|!;FHwIwv6zK)Eu#i4ob-)6|=eDU{;ba;^||WD61s(i3K(f8qj4Yk!|eIU-yqW{#7_T z^dL1uZKC!P$wt(7#cruMTafJqDbQTbo2q4X5{s_5Q=-f>v9G_?Ndq*BSU!6W7v644e%w=YF zRs;tvG8)Up^KG~0k;kfAj7X(7w_I*?Vv&fi>xu2(weSA$kz97h`pkQ%5lo!rU8}oH zcm2qGQdJL#lDx1OwJIacP$2l$^S6yoS@ktvfaMh)eTs3mkMYM{)a;>6JU8*|{LL;U z=x<>rgMcZqPP(FU8T5o%ZjA;40UY*je5SPUryu)L|C1m4ba?%6E!oS}j&5Jtb=^Cs z3rRE57)yEcTT^+=^nf28MolTGhX!0wO6rJuJV-}b*2&aHu6@h*3r|OzCxoji}~Efo(F;N*cR*`^Lvv`q9@> zE%p4RuTL4#?$pBUB9|F@18^EUfLNQQmZ&4t)r6OIpNe98=w49kz`wTHn{WjP8f;6r(oPDg zR5F`^_lp87nh-lI2^GI%SDW>sGzxxfM#mRWwBV9~t%F0`!CGP^K)FNo*e1t@;&tOJa+VQ37b2$2-nmaM{l*=nDBNqXh+vWLkJ zOeK3neS~c^(+I=Z&J5zi1Dh;MEQ2H|0w>|*t^saEeH*ze6?ha_k}aQj&OSP>3A>TA zasQk75epgb6&;OW3{!xZR#P+lBh&jA=Z^(^man;&VlMF)w-4z2cck0>V*$lGnA8%C$->n?tTp2-s3tgnNBTh@+QctB4IqXtMfZAn`z$ z#(3MS=jWF;-Ko3#s~4_SI%A`JY%h= zv9ffE;*!1bOOVJx7d#wVG_z}lT$^C%&yBu#tlj@RuUO41wUDc|t9@2`XHCMOEz=2D z4H4eGwR*$yv&OKbjlfIjf3($|opt12+>xB0rY8+4p1AbR+~RU;_AOgSWHFhxAg3IV ztAZmL&fJ$NtS)@M9cb!~G}^y^@fVUlavUB9pJ+K)oj(-VHk$zm-&vr^-TTS&W)SXK zE$M-cb1M=H}=u3ehTt*E=H6D6jZapvF7^M2DX3;(ruI5Yj=l@T;a5`3}a;-l=x zhMq&2nMp;cj2$7Ep)eyZowcd+)jUQ9b~RokxJTTE?4VI)P#^J!Ey0X7#|%0vupLok zB*{y3F_<_NZ?MpmoWJI4}5|R>GLY%ZD0UFW#i=VUa%Dq^|3z^U5;g7WW8{+Jm;h^)p`=sBUvV~Rg8ok{!&j_ zKQJ+`!QdCD9)@(qd$G8~U73zVRc`%@Uyq^oRxsh5*3X5cc0 z>Gt@+(fDy7gGu`}XL3r4SbuwD)9SOs*9E8NyO@(im)5eG{9M52T3vQ)%;s(3Yy`FM z9Hzxbd0nVjk!{R}D!!mA=5UNKdhx39+*~~6W>kr1SX~i*|Bu^0R#=U?Esq%~Hv`SN z+EuJsk<*jYNn^htj@vqS^pzR$LH;RB()$3Wjs4ls4~PD7=rxNy6W@4fqakNR4W(*Xk{S{HWgBO_t zgrnKcJjkCI!WhYovw#6N@T|yrY$nGZgr~Vz!|=p_#UxD#h{0E!ZN-vraS7Z&`wvV7 zA4~;Y16B(~0p=&?qY)4wtJ=tEe0}UpuZ2=vcdW1)(hHezW?Rjl0E7YSKw2)Eo$zYG zoKHO3>3{WuH(qnortD~W>0*f|Flnr`u4a2)i>m=l+PW|-PHf|q6ugR znhSDXZ>A87%+a5s*|`}xWuE};IBKcwgxN($71yjWMrUKq88l8O$v8dOZ z$Ou8IH~hu}n=uA{YWmQY#g!!2O@wbg=+dHY&#~_OteeNB1jE5_vpJ2FoJ+1HN3Llu z?H>J|j%-!ASlFiN+Q{O}68gG!AytR^D^6n4X$%xi0`OUGp${bW%~GTg3SiP~DAND0 zZZX~Hl@k8IcPEx^*gBO-pD&qKELQMDH*IhA5CV*Z`ad0?JW@$GfNdgE&Vp4BTK-sV z3N$SY9em}OcqxAzlTejtZ|vKR!5 zY$_XY03q~2D9JAEx9Nv)0Qh2{r9e)$mKh|y24o64!)~@x7^IqP#t=*tI)fDmW7$cj zNv2~jhoqp0jvxuS?0}r@&@;?7n^Fle<2Z=T`D{i6TyGZkE>Fg2;fryKgMP5B3Oj(%)=sXLQA{*l)|{x0WHT@)_elU2V0oFk=6kx1DyG8KV?F zyf3i3=3Xsw>Uh=s0^n&)-qUu)J12p3t=4e_MFu&kpR}x}QB;40&6#5oP+So!g7a zk(JsMOFM*<$1J&C`P8v3_Zh;8T>6gHIOZ)xk1u4i-O1QvCyoY!tR%RZ{0IP|fQFHX z)$?Z_ypVJhW@~VSPwwyC)qc$v*571~F1{i4;NFw3O@968@YCb2#+gg&`)ZBC_NDH6 z2mltA8%0i){M_1VI8bWb`l&!brltz9RHG0{qIkg{NJol|RJiiF;--T_0;Wjs@Cn(Oumj5e@Gse!Q2a$vi+VtybVG;|vAaR14DrQ4!}dA3mvRRhiIJV1 zwTiR$fqi!zFGPcW-L+mTJ@(*#P$N(FBrzUqjCZZPEUjuQW7dG}(q&>G1#LfTZhb?nj|r#Jgcm2Tp(QhN2i zd-nyR@pz_am8bf2+HXZd*_7W3hp0c#wSs|7tw5;%+8w74%&eX(myTxYGr3GP8u_Q_ zaxGfyChx1K-CGVVgo~Ms9@XA4M&16usqs%NG<<=u5Kr%#9ed-#b=OskySF!XWsDa- z`xg&A`rb>9_uu}-$KISR=BM-L4%MsedkU?%e08T2G4zr#vV3MVb86G>ANQZ$yeXSX zL@K6VLDTTD(R`_ps~EfI!_iHfPDW5b9GE=7z7mP$>&bXLvL_Yq|KEvvIToAR7mxQ( zU$VAx$!%LFiY3Yz&XvXhnh}p7?nQO_mpL923{2lHqo?CmJMKkj32ridQ82-z^>IEs z6}Dkg6C-z&N_Pa#w4YQwX2+Tc&JZHcsQk7`4UgXrnZHUzkY#CzOMwTG4S_5o2zI4B z6N8E(P#FK;cO9s!yd&t5(SEDP-A-p^zeJ6>M|4_APY}=0h zfAoK|JXHhCN`tY-|5>Hhp|Nf>&FMDqPenMC~rape**UudN@SEQFev0{< zYp&k$&adyFgcA|KaVx=CVKTu#DG3SHHJ(&`PP8IBSfLxHzl%ZBiG=Q^1-CL|ssj59 zk&5{jgQ(s~>amhe(ZB!YH9zbB$7APbiR+*^N8J!j9hcPRKp%nve-xKZT3l3>BW zHX`*A8^MY}RBsSm+xU54R@qez0{Ow_S?u`#ZDjwjVYrZA23$>;7mNulhI8UI&_#GQ zJW+0T9Fw%SlVg(g+5A7?P*i$=SBbj8FE-B)ln*}RBcTwm@g)6+qLE2@BZffEiT%h{ zC`Kl4?Op6+U?0?y3@8wbnxvne?V6}(a-d>d4@VtlDg(>}d39v9u&=nV0Ng0u9Z<_n zE0T#67qf_Vt?N$@*YS|ia)x=@`MFO3F$`LN+>)GMA|MV?7& zVKw3&S!r+{x$IIf$U~&5fB~r9-s)(2T(i8{vEJm8Cz;(84JT?TvvIlQSv-`e>#n_> z$W~|DhBE&lQWf=wwNuNGxxN737@ZO%{H^E z{&4PCZfay@WOu;0vgwWrX?YN zwjMuq)$$5urO==jN;BeF&y^S?I=?XP{XqX0l8y=) z`1vnzf8PIr*WybY^V4c3)u=BuNId2XubdKDe%H|RL+{0$>7QUC(Eo)O0CS&o@tR<2 zydY)lfAI{FDY+=ZHUtfVjvKFyqyhq=JOt5(CrAVXvZ1zIw3Dl(Z4J*CCNmU`&%}R_ zN02k*%Re?ch~()C$b}5x{<7_jGFbZ?vMR_`5CY^3&tTTqhV4Q8&1@TWBCt|WEe1)5 z6pX#~VB?GS3rCVc8wViPG`=TSfn_oWKq~R5fV8=&qF4DyTqYwjZOI|8@I`xD`uX-5#A9UOkdU-?yoTLg6?% z>_vACg&7`MB}kz~)O?eELrzCCsf2uOQA6`T-9L2iiIvIm(o^%>-$(zeWBsO2?)V31 zP^TDKNdPKBMNa|e8eKYk=><yn1eKuKe;}CS!ncc3Y+v>7ke144$X!Vno$F7)28fr5)otR>!CJykRrTPK+Em zbaZLTa%!fJ*&$L_|J|*Re{09SX8VqtKPprAx0{86*X%SDV@v*8%9~xet(A1UJ)%gl zxjLq<^0Pm^`Rl(-=5#+IEC*~ncB;IS3PocsOq~X1S0P$Vd6|PtlQkMCh-l{_ z)1|#o<{Nmdam!;Ts2zT{xU- zp#LulY>mXHsc58{ZAKE9>vpSB=$={MQI$tW`!^S>hj*2(MpszphU=e>QgwkypX7BS=`IQ=-)F6;Sa|RL1RVib7dP~+{$q}p1bOIANXX9*{RIV~3H~D7 z0sgXerLD|~FA16ksSQ*+s1mf;CHW4Up&%=XdIwPxC6DZ+Kz_f-Y*6Mtp=uX`qQ;xV zGKjz=|Dh9Rf^>I+s0R+FeSFVFrU17PKk_1LlT|?NgS&_cU@LlCqi^suCLbW+`Nxf) zWao_)^H{R)Vsxc#ySBJSbO{ecfV~(ZqxmHB^b=2f=N<38?9@Yh-9cYMIsau(Q@iS{ zM>G@R*WH~4>VNx%{b}>VAe^}OY3tCFV?Caxvq1$-DyO%jtwOH{-Bvpqc$QPQ>2w_7 z0h39bHMgv}w6Nd@GAoyQ;JvK4*OdrFg;@kFGNE8Rnhu7j|9&9Xer#_sH5;a+zdy|J zTy17}wN~FWIWZCsE?Lg4PY#c+C~D}w&A&HO;fT+VM-05KgMnJHIJ55=$Je)K_dLF5 zV&68JlXVW21il9-k~5Dw#S;_b$4k}!e9b$?T&49rANa^Gf~UO+pQSt#eCB9)N{IT? z+8V!7?;bE83h1wuWB#D~=DnMgX1Ny%kBq0gP-3Fbhq#L5z307IZ}@Y*P~6A=V@Aqe zarUimx&Cd7p)ecuEo|NM_8nu_zcm!IM9*2i8AwAa1XJO_%Rl>dWN&@_PS=?-C13fF zgNtgXrsj&3M6_4D?%{iu=L;oj-$xtlNTTQu=AvbP@Z|^T>9tL@%AMQKevy6V$nv2j zpzsY>2vFpyuvM&kwAEAlIz6qwG6{^s($ER<8SebhrSMpPMm&u_&@P;fSDjOhCaG&= z;RY|8d^I8*VE_!wQ_L*}EeyyJLfk$Kp?N~jJ`*G}IPk!19oWmfFcgOyJWdkc1I`)v zwOJ4^DS$@l9eG2JO6*~B?rxUM_(Mz&WxzH^5q{fK6}8qj0nGE==vg<+;|8)s+!QcBiVP&9Rr?3qTP%8taW@8>#-`zbm@~ zG(9qU?xX+On40OK&0hi2bnbfo&K;3dBA&yjnc+_JJROXTF;TbPzq&vAu`i|DiBiU; zXyLdLUocQacSmiCV%Qt`!?z7b631Hq)}p%?0W`&1^@0zzmemJS@g`CvYtpZt5p z;l<>iXfz=P{oZhD%Z~806iw~P=gX;jd2j#SOF?hcG7H_|*%R4fIF4F5;#Z;CHWkVt zt5)caWr~F#>6B5ReX`pBaAn(WpDrp6F_AV4GYUp|&{9jHXC};yM~*3Xyx}N1wss$O z0PKfH5)X}-fyK>h0k?}6eSnu!UFCo^H6!p!DH=(aBQUmzoyiSZue?WmFTaHO$kzB8Gm9@}~oxByAnNNg!@nEfe z^7f^#?07@iFi-XmL{lHErS5*|?pUpmjFj^{{U^QR@aa9B;U_z{=T}bqsQc5c_6tIzMKQz^hvC;&uv8^xXRc+6|ej9q#B7C!3oPnxx{K8)*mY+(=9XtH;dL-F0+7) zZtK!&X07Fiu5%0xz4C7HE8I^p)q3mD!J%_Q_Y8e?=r3()VcTn9ZZuNbtZF}{M0!JY zKxCxi=&{I>r-bsCf#w=aifhIOafqRfAe3#sb?uu^O7w`mm+o%V{th1bhHStSiBg>X zcx-#mMDh%dNQUf#mo26+gP1^3v~9_Nk^t2Hn?%6;K_=LA0?fFJ2ZEFs902t;r0>(d z0^!^4^zz)qb@O917oM2fGF*sN{H|pGrF^xz5?iWf`~TJd@{jsY?orgqLNOh$l;+Ny z{?=disnYkaer~Cn_}$djP$(4Kj*;8^`IeDkJeCxctp7P#Ulq!Qre*rOmdA({^jM|r zfWhW7GGTA%r^r|aCZ5;GglL-fltncoh`hDCru@Tt-HG!4{L-u|%AvUEW6FFpA!9ukU!> z^FM5a7QP~T3?~f`IhFx0db}>p4J2m9rPFtjxn4krACV=8&l@@hLwb0jku49YL;GKO zQM{ZV#iVr~^i^wU%g}+LQ$sfn-3t_rPY!*5=vPB8L2B4arxQh3B!l8AkX)A3Rdgti zO`D)k(tu}ggwago6Zz48(4?rOoxwkZib!dg&x{j_Vo2{XNm`S_*^O?N4tx*}?!iDR zpjTw0<;136f}=_l5)=`{k4=y$B*$@08?AvjE97N=WlI*Kst}wbXCy0uS_Q5k@pGF?(}^7n#;OheCo9${7V1-p1b+d@BU1^>r|zAl&vj+Fyj|2m$WU)6>roN~o0>SbE!sK-RZSTAL zriX95CBNB>)lWQop#L{lZJpX&k6lQclRkr!JtDt38p>t@Vbi5o^BVVcD(T<3?Ycbg zHvDc$0r3uZOxAIsB!bXRp350JgKlFfmO8)l!tb2ld&nEmlBvh-m~P zW@eU_nHjvh-Zibgws*}CJB~5NCQcl7m>Jr%Y10OpE2Js>ZSR`9^wP9VukGEH{?dO? zxZ0Ng=bPDea#5@m3~9cX;d!GfmlWnEXFU#1j`xSN20&q4oPjp%>E~^cp;@Wd9T^7BR4r%gQN7pE3AS%sP zn_fmUdwhE<9R{-$xTzLnHlB%B)Y@;lJ1xDdJGwZ4BO@4#|J0&i)n1qXME0;qC$fst zq7G3XCZ}FNOy*h9*F--N{e`Fd0_Y8m{XBJ;IlfB5QZNewjTrn$CGivq@*)6UM28Bb z#H&n8Aw){7Ie^b|5*cVs%x8mP56PA{6Q~g}0KppLd1&ROfLep54)OuO1q8+bK2SKc ztVlubVdQ#o1%kE!R>g9ADWtSGOeUp)3zn-a$+hvuCC&+ET0S!afleOK{L+dvB$d8h zHI*DU=OV6D^Gj!|^}&SI&Rn|7RSG-34qx>tbJkpu%PVI3uRnAK+>WTvtmiW3MS0Tu zw_iS~pKd7A|GrpXz41P`dfW3`#!PveYxM)o^D`UQp4+`@W^z0giK$P{k0r);?|D$G zyVGRdcT3fv-xclG$A78`QII$xfLp8tfb1uypoF?RR(If9P;W zr-4%ajKYw5$|;LHR-}t;d8aEW(ak;a1Yo>&ngN_)4g-3ij?GFEJM}E5*_o&v4oed* zdp?_sYZb9?=}q4BhD>RVWB2iI)o;DL|9J0`>z*HPJ#5ml`3g0>BM_plxE=VV9vc^pxMP`sGnzi3S8J9EU}mW@ z)Me9JsvW3>rl^8t8i)YSh)SbWYJk%&1~{qBsbGzPT5i*x9qWgNvn97H5F8)7?!ejZ zrq4X})Kgy|v@H?cc(qT_$$TC*#WvA>B;HQw0K~xyw*oIoi8STuwOkRAzr>Ot;uAC? zyn!bnR3Ui8deKTrFWG`O`gvRw96}@{KX{=nLtc)r=@W>H7sez*Cm08W{+C5D%nObl z(N$+(e0+StYOz|}u9U%`p%m%*K1}x+TSF z?2{AJYN~~$6^zngU@gTgn*4&k%@`9CQD|z9w5P2WpEqfdJot&WRJqyf?&;W!(k$P| zV8brfkly;*JwFJD832mzy7x~uQ*S_)sEd0RJvO63>UK6-Y^+3UOF8_W*|(|a&)X77 zt){#2$kC0R-Hk10KXE1+(it^s8H}&m6SdC9dJGvg0(sdIao7Snt&d6657D!QSlHz# zM}n@CQZ(?kchyafv^Ir;wA^p+^_YBp2e%;9B6qs`R2nX+)`?M%y-@p&VgvJM(H_xp z$e>4f*(0nD;ZE_&f~+tt{5Dj7fM-$b0fU1gY7WL4@B8sl2rLZAikC=qnGX$O0|)}L z&iIi3HjE|X&32s-_q`@x;5g#YyhtHx6_w3`HOPyW03){#9XZ~2WXqatv2yF*?R)I) zv+WbpnYwIY?V6K)$BzuFP(dq|tMn=doc)u>zm1A1tudTJwzZ|(>PPLOWb^tp*NG)` z%+lWC_cg9#B>!;a2#!i)J~kMBFl65`Je7DTv~j5UDO#ynfJPFD!HjHIfE&AwtQo8 zmD`%o8BIo15fvS_yXv1>+T3=m_FpboxLp8s@2&pB_~c;!P@~(UQP?fEz9ws{RIAmc zwp)!RC#wn!#Uexcz(s%T#JJyj!{+tXs#sj{E5+YVI9!pa({&z&)Dldxb2BKDI3rd_ z1sVC%TD|-ivYSOa;dgxsGLmRYULf*o0=5&vg;)eI7=P!9qFv@P^4f?0pL#5K zRuyt1?K>9!?UoIPzc}_{EP3&~H(g8x5vMWqCr{t>)$6|gjYK4#via9OWaTP1Ow zHdyaag*dBNl0f$hnwk|R(3iRK;O$Rdf54#4 zc;)A*&p-3ZTRq!a8vJZ7?bMA`6Y*$w({QznQhTkH3t-GT>YS*?noNF+>?u)`=tb1- zy(jva==Y+(f=?q*dqUeC7J@h>1X&CWM*?swk`U-0f(+J)4Y>V+Srx&W5|ZInC-@pk zAENRIH)!azkx^Z#*vpaU8>$|gSY4Q3GZ$`7zvzCCx`qG}BnQ}S26S`H= z-MMY`VE6g756P4#n@(-;%`I-|?Pa4SS?}~`!b~uZaf+pEH6pXKUO#47B3e6mvDKN^ za+#hR|NgGq(J}6J<)$t^fJ#>CvdkOO14k|%YYvPCod)q=Sd(7s3kDiuahW`3VO{>( z56*YTQr>uf^JFb;3&86MaVBv~(BTZBd^K46Wz@L++3s?#M2U^lVb;&)yVn(3b9sF= zc~>yJcNHwxuf;Svrz|)j)!D>V%4X%%;h`o zeCA?()}mL?>1a<^r=k=cZ5>I;gC@BhgFEHbL7iS_^YvTzN-z({ zsjN$dy!+iL}{hGpX|ilis2*>-4dBlhtI)W}0flUkb;E3adsIlQEk! z3|o`Mq?T~F8jQj&xKg_$|0eT8(PvPT_urz+#4cD#7!VqR?2$p5ka7v$ZX*c`#9xry z1x;h+mklo>)d)cdu_QvFLb8HL6uvYHZcg3|h%O6f=D)$GAVJ71q10iS9&rkyhj`+~ zrou)sS`oBS}`>CVAsTcZC!(}+AQaGqgP3i?Y3?kXjfMk%9>`K z&SH&dNz&V(57}FEsj^KG@o2T3jbd7FXlheOF8!9Khk7=S9{2e|xz?$YH^f*Jm}sT6 zXo5Do*)(j87?mguu$btqR>9`Q&q^7+L+-Pgq+ZvR|Iw`FxUo*jt5l;uIqdaj%3fB- zYEvFJV5S;J<(ssYTsrO>Hkr3tPi^UsDfRNf z`_E5y_-D{-)OW+gjB7%_zI(f0Z_M;b^TiEnokT`uXM8hbOIlP~B%I9yzEDu3g{S1R zDI*wesxm3PeUy#!xV-rhlZG3~N6!r<5*cS*+KX{7x>P7yXK8BoSVOedXu`Z@&ZUts zMw2^&SD2)lJ$Gey*&WfCv*9@H4Q%YqjZQ^-Xd-VJ;P*WtdkXVMzDd1DeMtS9`VZ<) zpkG3g#OxFTMrObZ@@@i8R4W<|VpRAPl!S6-Nu|v45geX|BOrQy7ecSt;~FUk2n&!+ zi0oW`Dd=+|U-@0I1ydj(fY8C@30toesgg4ZTmtDT=yHKQ_$wtJfFF<=B*o8^LAZYY zdLdm2r=aZtn?PU-2O(EM94;MILLJ8cGAqL5a&Xz;3NRvkIx*go7&~DT;UObYd0a6N zvB_IG%B37)Da8U=zZhd}Mz4(mWLDR2LjI z+;;MsKOz}(!QWy2KJeGvL=^y_h_j%zoWBM56x-kqq2rQl4DMc$HBd`3j6~&sb%o5j z7@c-^Svq|Hi$P1alko!x3%v+p1w49$IVI`~XenZ)QVq~UPD%d1|tm~S>yn;r{wFsaFG&YVQ`B;83{91g8fqEMq1S>cFRB*mazB34?& zoSsqx2~aNa>R73J*tKc9CtwA@a*i(5GiJTqidglkDK92tsH;A;f|4sKmXVm`@O>#gcBC=3IdX-Z)VxwKktOfDhWG>w~fnif-IDvTC&xWBVy@FloB!QMF6RqW2hoxDu);VT9ZkAuxz8S!>Ntfas6`Sk zHI5N}&9Zy75;4uFoLY0#th0xiRNjbDwhE6=VqqgOjnt?&(?KgIF*`6|fWbsu$)hyw zS6h1lwx}`c^eTf-Ve8waH;26GZaXTmN~xYigHLPB{LY~XV-B?%Yoy=t9>&qi&2NOG z(_`t}z~c{LWuhJZUYShCsXP)%+{c_8dsXGIH=Ei`np?$7X*7K+l49wQ(^O8`(0AG+ zrQK%WbV5*h#p3C5;(cg&V)a~jF5AX8GIg(mmqjkDX$b5$RJ?IKO$U- zt%-+rx$sMH{XK|<5#ATPN~m|Rx_P)@M+~9fQ{*+rJ51HOAakdNCKCSUKg`xBmOXDZL7Tw#mZ zX>jHTEnbiPq4iy3ZjU;)Z}qm8pjD@DNSZAaEp~9@Qt~Dx0T!E9=NwEKm6=uejUf!@X>F>vWcL_%p4py6_rpBpTbQpTR_8e`@o>b3Lh%8Ea!xucieckdiLW z8Sy#vTGanhU#e}v@I^EFE%qW!TOqFcvVi7gE)l`J)c<&CE0h&c8vI@UXu(K84T7BP zEePfn*Ff+D$S!7+5w;;YCQ%nyH+uJ4CzmoAvL>5BkErJlZah^juT}fKRn5awdwzR3 z_}&*^+qVl)=Ej9+FqUmtdJGl$&f>5=6Ld0VQ#_MQ93ON$UCy}wtS;gAakfax@5|q= za(e9xP8$-EY0Oj)3>UY2@4f$e=(clfx6ZBFVsp;>dtR7d_u_M(EbrXhUKwAVJ8pBf z4X_1@lp-I~dHx>jj%)@#=$$HB1Jz z+f#^aUWaHIJa^a>#MnfHiS$`PaS{uc$AK2OBaF}Zn}qrX)Wi`=B@bS26HB2;5f~QS zL_v!J4N?p?3ZYz=C}G?@;ohZ;@?~lxGVOQ+H*I(i&vYXkR z-@mbT^{p3cS0KqK3=rA2anFQHEyLXE^nu+E&pg?36D_T8d3QgnV4zDkth@Eh?f>}9 zvo8l_waavS-~PQXzI2_<1Tz#ZvX0@)Z@Hv?m(MCqC3k=N#eIAGI;VTH+1{-9*4|vM zH}gTaU#-`2I=!6MgDNEvo7X7!x-E9DQjSH-4cbb~k5MP$Cl3Dl#G8M4_ff5q)=B}X zYOy84M~C~QR9nN1U$|-e-WzE9?e%+h?&;_Zhr7FL_t)KKr>R5!y<@8>>fzlxo}v-y z(`h~X06UV2CLNUSsXf~tnHt}BWp8~d-p~+F)i3}3cP=&Uap?8K?NS4hqgtKSR7;>2!$)1FA za8dZ0KNlcnI>V`TwMF@4u?i>Ry!rkl_3T`Ddv956BRoxHRa0_v-e=82qIz9SgiK* zpSmu-?RGWg`!d;3aC74nMQc3px)b^Oyl!alz`xf1s@K^XO8K5++2L|&{9j%$`8$Th zE;;b@SViqRSETIppmXHPE~~@o38RI?6W*;>0QB55F*`OC^w<<8wWIv}iBoSxXtmk@ z@~TWqXQ&wE=f_vwIHgvc42NIzY*4YG^!o9a{kDm|bfvHL{@%em|K$)xe|5vT>7D*e zu@@D@H;3yj9&6{ka#O%)aB8OwGG9DYsh4XSbP1#F!ByLDI5cwqx0(BQmr7a=wVc`H#To<8$%FE?I?iFU7E=|yLB$TnSM52xI*AfsB{g_8DL=%t zi+ZUf9EAaDidw)F@O!9VQOG624_1)bni zAo)(@reGOV`07R+oWvz@r8pd4BbE`9GXoBj@1Q}B5?>&ME&Mp1lyQal6=w3=m&qRQ zz-S*SF&Gu(@XNmm;Fc>l0_V2iw(+Kpa3?$zO+p6bKKW%l?%TCn6k29e;cH+z@V6A` zaD0#fJCH4LV#0b-Oflqd8Gn11uMCb5syO+3N1$U?>N|y7%tZWYxQfFO9*{pSesodciXh`Pn}*|P^vk{ zGml<4=QEw!dg|qhSrYQ-^{Z#4R~a^!LEB7q_SJgB$jFIj>hjNSo`2GtJ>1vSW~|GE zY_|2AE4ldNTOt#SOE8Wyh(%R7nau7|stg{Dku|GTaxIIP(B9clChN;ZjLEJMPHw!- zq|bz-p|H4N(5X=b>kSE6z`&(L?Iv5;t;NV3R{DxOGJie0r{M50UZ4WY?D=Zl^nSk) zaJPCXqm*g1MswMKY^m8MSLqC9zsIjZRO{7M$?T@T|Jwx^!pt0IqA-Z z^hh&z*;WXKn{&f1i8qu*=~N``abG?yu~_Y)NWx$iOQlLiElDcmG*^hXTXc*9a8?G5 z^U7WHaPRy@jIg#i7uLfkYh1X#{oc2907zN9&H`i#N~*N`%K14-!5jx-OV<&*omJVg z1B2Oo^KGG+bb8Gfh8lZ}*5hl|H#Mz;LnV_cP48JNZPh~Ti5rekA2`eDRF6Vw^$xerwRgC~!##uD z)v*B3p6n*LVb(yfy`eKOu*&WAMV~sSsJby!ut}zqg$ElPO0~i*^@ox{N6@UYMT&L( zs}8UxYe;QW#v~~+tQ{8@r=5BgfJR5fie{h)usSvIBPmKO3tNq0vlWf(2BlOC{9Bq* zI@||VHB>$D3?1H(!w~le8-XJqiNr7pPOD|(E;D0l*?zA@%bMoJH+u%GF}o+;-<$AekAQcKGwA`F<5cPHM!==b zRi|RKRRZwzNYVsMXhRu!ZBS!EdpvFa!~k zOu}}zp)2TT0eWKqmNIP%w0B=Q5ByOsJ$bOHeWb3L*myF^TYFFbwCs>I`4QgXxI#pV-xNW9UV@Vy zAeBFkWm!ZaI4|Cbx);(57$b_rbdwPcPOU^*Hrrv$e6#Ma!OjqOQ4pz~E~4p{bM(16I4< zOry1@HtPm%tC(8TlWaSU@q1dy7m;r(6}N3{-lb-}q*euD?(jYbw3-@KbZ&ZaPYt=Q~>(`kQ-qVhFY-Ky9YJ zI_d5iXlmSiragOZb49{nj+WPR5W^U}!@J&nvaxc{@go=ZMoLt5p*dMFC$8)N-bBD; z?|ii9iq7NBq|rO+OQ*a(pEpHbd)KwpenxZ3q$BQ8tMm$o-(lnAQll6>l`b_SHX5TY z8E3;}GasLuqN%-Cua{3Si=u?6PSlGjM950<8jGhMLP5mqCIlx?^EE9*)T^IF|3Avt zgOqvQ$Gdy@zQUtJ2#%2-b~0a(!K+mO-Cwgf$wZMto-UNmZr#?_6$%*+H8s>;eE!L& zAARclCr(|j4~2SSUCq617YDyldk4+5t$gL8Un0$TJYL_74^RJBr*ruWQj5!xEM@E} z|BzN+iU$j&XbxjsZTV1~{-371M@F|Ty?guPZ+-a04F_L{Mo{YEo0$Bs7e9RK?g#&A zX{6p&E@RqLqedG#aaK2*;j~v3kxSGfxM69jh&pq?MIk0wUHGP){@K` zB4*FE2ayxxibyO5Y)}62aoUwr2mxN9qKh|Q_=FF!TzJ{TlLNU9{(!=CX#nHkW0*8V zjKEkVPD_#h?d0;qQl2Qt@4&B=qCR_B#_@?mK59f{nh+C`1~$v;GR2dJpQJKx{T-^a zY?X1kIa|#8MvPj$-4^a*7lG-@8Fg)2RHhjuwxnvkwA$KzM8~Pm4qGcefXsO4(jw9;jR4x>^+%1)a%J-I@={e5FxYHKNuLQ zM7H;>Zi)58rY6U#;mA%;eZ!d@9j#Zsyuleko8SC5{60@Q(tZW_)24(IXc&~M*W(Jh z19TnNy=FuBChwrnvvprM6x#(@)WuLV-J3w@^O46W^U*!WkNHv>TCLWY^^A1D0gVkT zJhgEOsMT0rPTP^?6hL+pJ3~^)*M|1AkUz1`=~m#k`Nh&mc31C^*5%x_p?6{~G~h#1 z1#P`8S_(ED-5ZO8g%cN@4o}?3I<1jg!XBqJY_Gdw)9dwz9_s3CY^ooxd*{gd^=pWJ zR*80B-J@8=+>2Kh(SFeh(RtBD(G#K%M1K@rp#U$*Hwb_?2w~HNNyrNnfeRX%yj~`{ z0JIz4LIo4y##g=&swI!Ya+Z_Fur6aHIYI0Ir6bWvXclptkMmz>#VNqKq$_94mxY)7 zcf7B#d?|2>$gwh%40XsW8F=tLxf&t#iA&=7QsAQHToMKK9YTnS@8;*P8FlvMU`XJl z<=~p|Zu$2yQUJmEP_OF0>~>pN&dwrkBU^J*Q!J78c}A`7xGo(i`h9HJ8D%gcRt_W( zol>rpQBvbVx5?M;ENaxvTp?yRI5~SMX7RBYJj8X|$mkb?=Hn5j3VCP(ye&u&q zT;8;w_LDQ&OsxBIzt!otnOzWF&e4`erM!E-waOS^RT@xAsB0d#uwtdUl&NNAp+KQ0 zmuFb6_KxfM+SS^nt3Q13kvF}rnd#phqul@Z*VM@6Uj-emY%uKhl&@4>7OTe{_Qx8T zqRosnpow#}Lcy5~_C@6>hco3y!q$$+0G+ZJXfeaYond1`odtc=Cd}hJqVO7QdAS;F zZHC8Tw0qIzB4f0i%U@TSH9I-C+idi^_ZWRHi`naL(L1@Q&9RA`h5V~+&ShKl3JUcC zZi#|ojK-vQ+)lF?d6u@tCmp`_C5_(68Xbd}nx3hB@;j%<3P!s+ z|GEbF(9yEnlMR<8HithR^kssnF4S;6a+Ov@WY>%CLJi*Ypyg|_nn-OTuLS{3l!>5A ze1u{J3lkz0f}GG6pNuDjN*>p8k-{4itVd2$#uozva=kvkvl|MDRIKMqslKyAfU~}trovkgsn~tUm)7j2jXBRFw z&OQI*FBA+Vo6T)hYJ;JStvqD5!Fe&8ysSpe8Hy>3)(m7Ytv4Lh)ECVv1LnqPJ$j## zYe%V&9Jratcu`6%r%Cx7F^-j6eNomO4}>MJtPc2s(MoNMAn9;wy! z77M{p{>oo+J|jjZghiO(eDzoIH>7_Qg+=qCU82M2ZMa?Z5PG-;%r3H8h$TkE#5TtR zLIDEH!>2+Z0D>?Tgq7yMWw0cCbr4@0gwQcrRCLB+z#O6nHOXLtXocKEXoKeA(6 z+OVd+?sEY{=FtAf9=wlIefK9%(N=^|#KGZjZTr|a^U z1IghOYs^v?YA=0mar?e)ch*NHTjL|tb7H2i>&V51pp<&;0%h*$yY-gOQnIe@?f;0; z824=7noNs#UN3$%e z;GqNiqBCpyO{jY=rdxuutEsUMfAq{JSI=Gg*(eMq=di=!5I-I(mtzs9-RbzT1c;t; zXEYGjYc>8vB=6EAh0xg8nMm|?rZXoQq;K?ErAjaPha$v$ylw47x%#VTu6wrqQ1RTv z)b3}0y=^Ad7l^gh{)uApiLqvX&X?ZO)zc92cDMEI&PA-YxXs^!1GkUwX&w zg)8Ltc>NF|-quX2(c?=becsw9HFBC(=yfus)@^ml6=`KPUi1gN-rTItuCf638a9T4 z@?X7K{v^}F_hn3rHp9+1i4Mj)k^dA4SsGHm!N?%ILf}xsZKQsdn8y4A#e2fCVH@FV zyvGJY>W9o>HlZAv7u$U5lzc99Sdhgd$GL_e#@hm+WoL?C#xe(PC2>&_^dzrPuS860 z5_}cEUC9;pIGdavKnzfni25>>{{9d59ylJT*5%Sw+E8$5^pxovzyJBS*=k~&MBkXn zI|8?a0xn<1>#@@BQcis)Ump&g_c`*}^rZ(qu0+b^YK|ouB|nRK+>LR(bNg%ZW8JA3B1VRTpI=9TG(rd?eo_l}m*2P8qdn&#$9%;~!dCZ@>`rmR+`g2hU znVeOk^`a%LA6YqpH_Unw(VHI?^#GCUqW}(nFG)g2_=w}36k$j5m9R3`_=h3jpSb_f zzCMyW;g?84Cc5!?IH8FKav7|K(vGV-g=vaP?LyuiA0GZs`gMIY>yGd`IBPa-_1{0(<@1%J zMweKsl>6LaeS7!N#taD{WU}PB&F9Ttd)t9A*_imvnb4FRs;x`LPiB3(QJp2B^JUxH zCP~cfYghj!r=-6?{Gd_PFItWJeN^-^yj}zinxU_VKqJ%+E|4w%Lrj$;u`+=vLL`R3 zyMufl6rY9w!_HGZPuthN#z#?JA;v`?0V_pu2NmW}*E2qI5dEWxQ5wfgWeNV`ks2lSjs%efulVPTeql^TAbWi!bWy`}~)w#aajF z>%@RIU&6p?Sd-+7)I_t@IvG<-9hdJ!+!AG=5eNQ=e;zcPj-c{UIT1ULAh(u!FhUgk1>e^txM?Eb3KWa1)hp!TxQRwbbzlLtLKk&8;u{@SD7<^QNH!N2YrG%GI z3&0y3!jcyRbSpq(@Ch6K8{(bu>qw3TV^%mM4#XF)W(ZR_dR#;&Hk$~b)wph}u6HdUUlW-1MSSJG*epsBp6-_2?r8jaf2Y2-jYmt^`vZlI)4SrZsK z;I?q>&GgF-i@UAerBsv$az)+RxywD-zFfEf(J1Z@=LgfFLfT8y zpV{CEr=o2Gsboj{#`802u@yMeSW~+$ITdW|iBC2qyZ!I}+XJf?6N#;}PyBQ3k2d|n zZT-n!7id(W(rfL0gU@83fZdB$FiR-HxjbwSXO3Y2A=gl!PZ>E=*uSo&4UyTKlh>RHLFGR|p@UT+%goycQ=6=#XjE|c%s9O4P< zBRRysrG@+*4o+M(DQ|ZzU&-<{5FseJL)Tv2Fm>Ql`S9A~XKs4qwb#D-g*VQ9;?(wD zDZOTP&*aATGJE$kpR3($F-LqR7iUdn8bafAfAcKNLyf`YH+k#B;Va*+-ShqX?|J|7 znYhahPbpdNa!LLyyiVZtm1B1-t3nlnBW|^+8rLUS!b^t)4{K?bp z=gZ&x{da0VUR){`3&ky4snFlo-rsTN`07=q5KU$NsyEf=!;w^bG7+ z;qxFk#Pa?t=Y@wxuE0sT#VdrxOFDci&{9}#McJIP)9b%5G&@sn_SkPa_4FOFx~2`| z`(B)2rFmSE^8Cx6JN59RFPy)nqwVsUXKG)c|L)g6_nBXRhKhY>Z+Um^YY$VqHaFD8 z)8AY-f7W6;l^VP9Es3nBZF=N|{Rd{I2O5XH&YK4@+}S=@wu=uAmVlJ$1cd4JP4O5^ zwWi5sUBpwBFLPwiNAgYZ-%%RYjwYbZU@R>!573i~EKf8pm^PCYY9bbC2F| z>^iGYtG?-LwR3N8iN+{#II>~>_S?Sut;wI9Cl^x^**26T95 z=hDpZ(*}k)v@22Y&zBBTgF%ULwy~+wFlq)>uX=QYwPCE zy>dIPqEreN_3S#c*2>J)+P<}J!^VXT)Ccd(Z+csLM@vqx4Jo)D(_o-ZdsHORpJ72kYad6-u0uJy{Fp*hdpj&J29=qx0 zBS&t&=~(U3x#O5XCdFL(SFYA6jLa+OAh*H0%!>v@)1n3BY|iq1o4h{y228q)?A9}g39tfd@z&TaKbKp{t+rzSPL9Q zCa~A?5wXGYm!#TL*o9vKi76g#tn^Mc*0sNhqP?YUKJR96!`P02(Po(VSB_tY*hz4y zJ<})VVuMqUPK^|^3mxJ1`drs^btr8V|B*_is)g2>y4~W5>4qbbXlp4Hyh3IDzHqSF ztVir(hsEh!=Sh2gJ9~0okHlRp3=U2A-n6bx>0jO5)4FgXmMBSU{h7q3_P(W!wRa-X zLdR{?$72jsZZe;rE(!84@XMF$IhpdiS|e|KX^D4OlPa*Xryud!K%-Fpsh)T z2~bt^)cj7Il7B!O5Dyv!+Ql}|^vbPVzWKbpL+qE8TPIjOp^tC&k(or~UkS~$!h9hZ zL?PaR6l57e%VPwu5!MTBL+WPlG`a{sDMQe3H%TAU6w`#%pST-Kn;RE*MhTg-0EwXr)Q z;_usgIt!a~>8FQSfG_DKw(3Z+5{z`!djq;$b8B&XCiQZ~8SvKk2K{2XwV|WRP#T#* z5y^QTat3`?o5d8c%MC`OpR>gSP!S@r*jl?^_DPuy{QnT{6_K&a#ycUv5}|WJ5Rkhi zB6?uuL99f+ISJeIyD{i7!bZy*Ad1gR3cgmSjN3yFK=vVwz!R>ZWOy!F@m_cnliXXr za1)sUk~-trClY495t%W0-I4!%ygobAS}`k430GJquPd~ie)wIgsbDaAieXzD%c@ip zLwDYGK6ZM`;=QAL#?1;Ppy;`fG&eeP^5)Nm55M2oc;$FJeAlMYPbefI|J3A#o%5US z2S5|sl{~Oie`3VWYBX|t+;?OE?NEpwn*eQPQEOreNo3et=%+AnqXhC)~`4o96j zy{o-3K1KO{J=VVW#OjvES{i!$d)~TmdTiM1o1Z>zom{_5E8P>K{F^bN87i z2aH_Z;^X(v2ZOI~-Q3h%ySxV(n~qR=&5oW=oIIQFu$$bNMytAMa%phL+r{|;A&cAS z0#ZU8^~LX9y<7Gl%#5f-bcC-jCJi14cEA(n6D^=zax=-&kj8TIAUB+M1+Ueak)Z>7F#IkN0VN!yPU8a>pLRuQqpR!Z+8}; zXNnHAlW=1hcdF`-M(!GJY3m5aF%3PCJ0n9oiJYU$Wtx*~Py~s#h+yD}U8~kEp6h;r za*VC&Y!3!TC+>W``-VAP-Qe`+uiG|0?GI8@9howQreRL2+aP!1S+8`cR5neauD;q{ zzGZm$(2LvFt>2%>v~+&y^;PS}KO{c4^XeDnFECcb7{j7wL^&2={XPZ`0W2#|y|mAZ z*c7?bK`1@k;AIPk+%nu<0>wt^j(O*p7)1iLBj8WSoA_Gjy5Vm;?4&>_Li+WEO%i;~ zf0#G6$hLxb5{|Px+iY3ETrg)F3G_0vBC?x>F)_VUoa>lKi7W z%v$e_M;V1p-q_ZvR@X`wYVVgCXV*<-*KhY`Hf&9#682(axW41g`>3t?SY2-M?gzIO zW2s6*Gup zftO6Q1mV4F6e8tWRe(yv8F?y^@-`GC9&cRX0?<1k?1-I7I0c6$Wevpn=Ci57Imor) zLF_N-rN%)((xc|8;!grs3hA);_5H+pk9kZhEe* zd+%1G>(kHu_K#1$=&^2ESIF9(f4iucFNw6orQJrX`s2mlj4mt{s{}g8y7GG zh4>~Z@&&ob@Wj6$L26)?EmP3SDw3QOXbtoRs8ULXmO%&x(u@o9n(T&S;s52J3sxOj zO0$rUst~dxg2M=E6KodP<~&YtGXX8--DdKEAVnl_s3B3BX+HK-Az^P>gIu2O2Ek|1 zw`DfHU$764OBs7>f7GI}N6>FCQKKO=**d%JjLryqCLEsMXVU4>^m4?*?;GnzH|{oh{oWy3$^kA=BD;LHy(`(eW5?OrJ!YBV_|C@q&aHQhjcn^U zOiNPbcpIW3=Y~V{gNE9Vzmb@z!$3oCF_j(bZRl;5!6_%z zOHEWn>cdPe9ijyXX$VH<>#KlH za(WZ{K29u`2dK~eY7A`+64v0p@4njSt#bLVscZBjAM?!h1OXsR89_af1Z%*cAmk8D z0`YKMTiE5LFy9^sU~)n~l{SHXSWnbyW28ExR%5cUCfR9E6(PC)QY&jpm@F%Fk`Jz? zahDRHl9RV4TDR}K<*)ak6TG#Vr;;byr{)QjBumLk4rR-p9=p;Adbx7j@j}M!Yoh)+Y%Doc@zGU1JjtL&A#XMS z1i3@@z&kL4DFaFffkeonS1?lTnkC79##|VkD^deFj1jqR!PK#sB~7#*U19~(&V@}2`(`$b=e$<4xv|`53B2yvf6k(_IA?+u zxq+sSv~QYjdTMKDrDbPxt3htM=a={Y#Oq2%Pb_{vBZ&vYbf=V-S69WqR{Ow^ibNfD z9khof9}I<+3avEMJ2@K13>(*AEz#t2XJR*r_tkqEx3Pw~h1NDBlaJ{vNw40xXH$23 z`#>mIti~zX7z{O9D^W1fU_eQokEJYCt5rHN}V)wHDdOSL)+!$;-78kU|?-Vts2#G zjLjbQuu@v3R&ed*VH2z;IczM(NO_%+cFri(qRyK$8yK|rI_v?Ki&rqeS1QK%4&T5u zKy7#Y-O&ufuzoII;kR3A;q^5KMaBv>-Z-*sCOT$8Szr;&`8sLxpjvaUW*F6@-(9*i2rP8_e>6YmY?ZB53#5#9&KauJ` z`ueg|Cmh<;-Mn+RfrU_yq=; zB&&htC8Ld2jT(xR<60w5$Ucfjue1VRC)01+dj0sL%a!4CWg} z$@CicLTskL_IaC3M&!*uTs2@v5$aY!H?q}jpI*Hxov123uEx6mbMoli#IXy#I;O3+JztknGGeI!=D#UfGo8Iz8y z?CHJnrjl103eKiln$nZSynkK$%}YZw0jtw>q<Q)L z>kG}Tt=C`ogL-SrzMZ#Ct)9+Ljh{QZ^XPR)a+!A6!>p;KWL!3Xwrk4`+wZw}+rfS3 z%pDEwxYues^^%y%Cg(m&Whz1MJ+;r^7xX^q)}Y_!}ULV zN2jw|tz0~zbkxmTEt~r3Izk0dICPqI&2F|BkwW-o8xA z1v^9`dbl>Gh|2CpM02O;6y{sVC@WQVZIH#)LD{Hy zM13p)2t+8DLp`b>3j`a(Lun;CF)?#x*V@>zEiWy2Q2|0C)+ix3!HXiUv5}mLmoGBO zaxlrvL_&cGxg;|!vG1aHDw%6<|>5(I~@J`?Gmb=g_q>xC|61E@(4sj=(tLnxat1~GaWk&WmL+MN`d)Gh^Xql^q z4f^h)E)@1fyItQ^83rS0y*#|P_943E&EAnjDjw->*7VhXRvis^GbMlQg%Pt^l{9>s z(xrnT^o7kQVp2(S+2}{mMaRk7yZthiW-Tp_n5MKUgH>TLsjV`ncszFbGnA!1lTZe{ z=LUnOrfhfW;O6>HwLaiW*98xMHhU!{HWbRe{$hT&#UhrgViwh@p}{^mt=3a9_3r8M zF||f@tgU0M!qiM(s@?JDn^lbCy~ET9ej+0w)3YgYZEUW!4VX}c7#-F7^(J}6i({4?;RzlROeys z8!Z~Ob}RFM!u&$%x(!KW{}qYZ?S@cjU%S4yv+I?OIh9`G?b&cX}-8LvI3*gU-&C7c>sA=4qX2CQdiNBeoRx|Y;bihFgM{7WvkSfMl4 zen8XOp16)e3K}jrdiyjq*bY37+*j>ih>C|K_~9=ioEbo2G%hX)^WnZh36Uzq9?i&dyxjw%g~{o=k1swi=oH zC>vHN<*f*aNyYSwVx`tLp-^7=>y`$aV{daJ;Io8vdIZbFTH}?kHrM6b5Ww27yKhwd zs3v;L>~&j`7^%`7&nL5?t~64DT|Ei2);V2izJF?UbE@?6(l4aU?oA_uiGh~>P^_gm z>6^MaWR$B>(jb5J4`G9rDtLe}hMCbcC|@e6O%})Yl}OQmFAzI1vp|`ltp9mTZ>ubP z=b!KB!?d&;7g`cdw=`RqT~Te=z4YG)X8^wX&MgD{`g6 z)}SGL+#KA{+9LUa{m?CIXSY1!3#47eiBO2EtgCwC)FIp0Oh-rU>tFWu-avVNSzNV2 zObz*myz%Z>lA`-M<~n1EPETn=SK9+m%*9-eHpea{h9eCOb+4VB9ACJ8?P6=Sbz|-7 z?Lh3i2r9w0UZSI1xXsv3TjhPcE=NhAfI_<0W%^%a{CC(E9cV5|V0j~ttT-tr^~IzyO-lq-O=!2o!{N9}|hg>X{h2th^sFPDcnVIf`% z3Dz$I69wQdykasTb|Wa4aK#uBx^Z|0TK2HuYr(BrHl&5#1QO*VKV+p-foviFaCV^J zcMqpMX4V0m;E2s{OpN6E`{j<%;PW?~j>=??n@+@&Yhs)tq){{*tXVznY_D*#iLqNs z-#GBWTj5>xv_je9+pOjm<~P?EOfbt8EpWV^ZIs7k~R_V{2&K?Pna^*R5 z5FQNsx5ub8e$<0{!>6{KEVlbYbW4fqm&bEHpZ6=x2}5y^`i(A};mi+qM0IHP%I4_^ ztzz<3G1`V8v2B3gafVjSR`%^LJvaW?bKg0C9Lwxrqid4)r8HWVyk{=u&*t?y%UHZ~ z(W0<6ZEI=@n8NSI^AabJCSZBj0Uk&u$z&77)cfLA%uUiRO)mM=Gpws$ug_%tdNa35 zox~7THjDC@#*xfr^o!-7>eJXn7uDGvx!kL{P?XkOlTuvnG7^f>(Xt6PsBVPC_ z@wwV#J6A`Qj6x>YQ`JAIT<(~!NuyQBVf2M#HNC2#i?-LLJasy4NWoNR#f|xxi%V9uRD(7kb2F!)~0;-jFW6tS!flvA0$Ty3OfI=sqChl?R{tf@{r}Nf9Xs zh9HC{2xIi65eg1tx))&zB1{Pxt>E4BrV1+3KQ66dl?j80NLM});Q|X07(T*DZi+;s zz+!@tbIlUsojSn`OT*$NNk23cV#^{TO?*F^OcEl_A+j6%1(It8nIpL-oPGH{*@wpv z5@HO5wcOONXD6dxRu5{&SZFF@^_gSIr0Wqiq4iIkiO6M+TaU!!vq?@)XkBm38W?*U z8saC$&kua&z|z+i39&1+^({RNL#SOkOz6z=hY(L?m!20(fD0=jwBPZ3Q&FX=*tN!G z;#Z-o){a_Fcg1d2&sB;k(7xNrISl({&Gu|ipNM5g)W@8TUWr=H$fpcCF)Mw(rBwR@ z=z4wOz@RyR?x;%!5ycm%gTSKkiJ()5n7;EiYf8%Monx1rMIITol zz4C9W#;C{RwnzcSUteen$N#BmbcIi36<}nDR@ZJ0N?^_lQlz6GUuEa2iM^U!Yl#E+JgS z$7J+1i=L1mV(b`2M;wUdQ&Y_2a z&bvUolHs=}`v?aSQUo7;vwUc5kN=m|7k^Uz_9Ko%ejst@wQ@6Ic-|hvcjy-8rHGi^ zPu#XVG6TSMR-9}%6s`ZCs_y`hn>^Y+NxLiUYIn8L?rMAQz4z+&Qqm0k{*@8emn+RwjkRwbt<~$o8d) z5N|2OBW0TBY#J{eQxz18Zo84*e96AUCl0^l0Ivwcq04j1Q;5|%3)z_w68gMrh2BJ* z_iGf@%YM?CDmtBUbKS)Qz#^@nPiZttm0qn8&S$#A)~05k%ZnA?(D02=s7X=8;zUoS zeBm|h?F?7yzyDB35A7(Nu84sgoZ<9NzO8WhNHZ|CLU?Lo%pZR!B)!mN#uYQ@uqQd< z?^K|abkLku-_<^iF7-Z|ge7yP|!?%#b}BP%Gm8_!c8$2se%|wz7b3 z(kgxa?93XaR;SMf9?6?ojfuB-4X@ooacZNS=5*WdjFEA7+GlQ%$oLCH6f|11-Q+hUfufb1XSxvIgXDV{#2m|7;1MLDZ11 zP~y5`YR~!&iI4uVed(gTyH_V`SFYbXan<$LsmUv4EMry1=DbC~Cng+P=3 zD_6?Y&Is^%0IQpt>BZ_Bu$SLjQev!yw3bqPJT@prSyNU)??I@eTtuvH-bqkZ=|%bWc}8SO1+lN23~7%nC*J#YioGz88vicR_Qy6Q!3=FiD6Ya=%}awcaE7Qo8b09ZQFDDkKW0u&BRo|s2Rb`Smq5w9Pppx9n>KI4Fc)%#n~qm%=Y;7H5985cC_&qomlV3oKG#@g&H4!q6>!!-*yZ)Ev!VixsuvHptaP zo~D@hMHW>wD|)B}08?p#F0-QLfhM$ImEhB-(~lu!?-Zh^i_Xv_GOCG|YoWUjIy*8# z=wbrsXlSfQ&hSF=2VG~O2?y&1wr*h)i5nGdX8O;aU`J%3g0f?>Ov`C3dwj4l8QrmM z$kj7tt2P=tEBl9Nhu*Fs+~k z$rpte2UpdCZI$}P#RD+eWH$vJW|JK9NJJ-l1<$PJ-qW+AER@o6&f?+RmX$dJL#|j?>xSH-z^(| z?SOup9MsU8Hnpb84TGbNkz~Uvi+cDH|07erwTYa~t#aB&8X7fpeSas3(Yq!Jg_NzD z$C8O*1?y`ow}eu*!mjY};w773J&Ke6)Z1P0jPN%H3v@jUHDgt1;M&f7s~FD?3jca- zu94GXGMibUqO{I7$VMf-Mz>a{c1}{;N;NCLBAd+i;}0^?jNdKn*C>bWTeh3Vw3B7w z%hoUfjGM7G@{oc0WLt&tK|t@%?zl65t?J(a3-7Q8zmUj75w$TFQNfU-a_J16Z?H)x zlmb*z9*;_6c=eZR-l*c!1XT80s6KX^&o#SkbW+ zftR3^uo{VTKzutt5Cg3u$jJD>qYue1n05nmPH zQNt>Q5t=tcQ!RJEPk?`>K$u&Ux)hTiFl#F^ODM%x3<@ma!bBvgbWSi8P@#|TdvLi3 z-Y7ax@V@AWJU5>$<`@3Te%&{_zNdTL+TNJeUW$fGr3*wXwksSTuL9&*@ykjy9*b7% z$0k0BWc|L*Tn53=iHlh;ywAG%vh*Dp;7sx<7bYaVMp*|LgMQaUX7p5ZB2+$OJeM9ybnO*MkAuZF|b zsO;iwPxtzDJ-ur&o!uFV0841Na<(BH3&-oL4iYu>$^n!RZ;j)`hC%JeK=nmZZFpTunG zq0r|wl|%&fydt4XL;IN|{3!Bv5!J)Iz>2Op8cf8kky0tWPerzWo+|2 z=HGE}pA6J6F}QMO@wJ%ju33h={Q2jEzY+z5%W3RzM}_yz5XoEZPTx+(=!TZf0Pd$$ zg;zVg`83Dqj5=c%AB|_gO<1i|Tb{)^wT9#4j_?l5q}KKGI*Zf#?o4%bsf^QE%NC`s zQTXx{Lm8YNS1S8_%tbOGn8AAEJq`YW$|f5#!99o+Q#wypaxNcL(ra%sEmPT`a5zVak- z>J)bHO5q+AP{cXX&00GbcA4x>?fopnI+Rcv1%%C9q>T>+Y$^hXK~K?In+Lc}0wzHP zQ`Rt}Y4X0L)YwYA+GH}Am0@?ne;no=idM)%)mlBg%%C@NY@1R+kibG=H?by|Pjp>; zPx+wyA5a~1M#M*=@IeehkVTU`4aw0!A5p!u6qq2dh(ZC{0>W2HLW@oVJZZ=%gKL4} z6L4Il86P+*co!hw60A}ZQ%tHU1Ih(FR}|wMC-k^PM-eUMyrEUHKyM$4)u)2>*@hz) zx7i#vI+@n1-+FedGrYt(JG#j=%w5`{Xg4-FtKodwTx&DgZOze2BL3A?TMu0N$l?2% zi}#q!guJ!s$0y%kqcKEsDw%uJYyVui?0X)X(HlvPTB+v}fP7;<{^Pdkn-(vUTk=Ws zBEMp=H&~H@C4n-8lPfotE4z+-?_=UoL(t)@7MEO|4)xsXPngVVEp$>3(Vp=xhY~_t z^-NqA*Mt}-Cx$K?nOs}0F%`=uvTJ(UZSKqjG)*@JZ@BNqd%olC8VlXG=)Tmtzoon$ zpFavMC3W7wbZ)t@b7s@-oj1j!L5<7^vl%7li9fWpw7Wdv*!ZFqiw2-zSBBjpn5hK0 z8fqM7V6NaM!6S<&#o^A$Z!XcSw@L(3>J^b~hMYA!xT@oA%HEI;PnT0gUKOBt#um58xU zL1ucFjsrH{c-Lsx7_dICoLI8hXfP}~c)1!dSFnW=7}u(AFKgN~ws}f8F;E!IZ?0$* zB7@vOCvwI5{P-oE@CWYVW zMiTB8>H(6%z^Wr{liX-AS%UCnNPkeuj{xr)6l{JMu^T${m4P%i_e-R4YAaFFo-zahQ@bmXJ9O)wSMq%7>=9>g3q} z3G2u=$)iw#z8!k&-dgtntVGcg{8Apt4wBFmhJ(!koE#d57VZlgOh_C6it}AdrMn?Y zYY8%>0IO_-+lAJ;FodlHD`jLwDJR@gn1jBR^a0K&l7zYDlPSP%BnQ$dsDy>oE$a8< z1SmFmi!54KVDnHIA-`EhE}7VSd_bq784U#2yuYF|;tHqp+iO?f_167M-2qx{Z}2)5 za!h7&K)oBKXgz)GF0~pXa`lky*4x!k?m|-PDh;fikj(%fxBL#FS;zJ5f9dR*)`nPX zzi=2|{QY|9DXnMwS{f~KRa67Wr-**dEip`;AT7=Q`K&3-(4-X%coWi zjx71{hD)Y?gsuJG&dIE&KJIpPGP+xoueZ{>@LB3baPizH7U4 zOpa;cZsiqr$~(IojM3utC!vXR+c{e5;9tG18MXy386CuIwitW@B0$ z^SW}B{CJF=8YY1&#v93CSX_9GfyNpV-nQ;5MK|nRp{9R#X9mJ=51IoB<&8{qXo>IBm$x%B-$Q$Ldkyr4-=hpzlH2q|ML>Bn^5Xc@WTw*CFmIo%FMa9x5KfepvKjZFzSb9Y$vyG>7ewam2c~4gT6-oK95;u zRhczBYgDmms<;2@)5ATu@S`U_G zt`2Ci{!U0S->0;2g0a;8;duW*x_x z>@d#O8HKx)UnHA>P3?a0)_(z3N~#x-OboJD^Q9z6P{Bxn6nrW=q6ndMh`31QBd9l^ zBy5t5nP75regmWsPDGL}iW8gwnXd)eMxrI=fsscgiMk0;D`4&c84iO+0oc+(jTBJi zPzV;`Akr8C{b#fw+$bYo0x&W<1som$1mPrLV2g@V5e2V;@!qW7g~XpM3J3FTU7UivSLK z7;jcNpIob^pU_l8;a02Brn=b+-JnCU?H$#%E~Zqw=8|k0 zVGji1ht$i8e}lh!In=`6TlWa$Zl6Kpia7d^_C7Ee4 z(}~6)xSb3kzJYWNLgPxuOCj=i@yKG5^)p38r9o0sX~77<5C9a$(gD#o=n%LUs9%8$ z?!W%RCZDdLuGGazJv3Q(9;g!Sp%uoaytJWKrDyk zDv~n-Ac@w7g59fw`cyD>;ICNgbyptyTPCTJyY+$9J^e6COsiOc(vu-GbieC7f5_Fc zXkxF+p;WUbHPw9u^giqhTeS|?p`o@tgqGiZe{&+y9FH%&CSC6N53(+b(bKdm*Eh3q zgN~AOo`}w3GK4%lrari>e<0+AC8h2s|32kv4waMH zt}8vROUrp^T&XO$Cja?#TlJ~3%kHwP?XB(5RuWngVP7}Jmh7CYwL_b5l_KX*Fl*h0 zw%W|*-BHN*n}vJh&B?ZHn0c4%ZV9+Mq$e#ITx4yHBIpCwN=FBn>u1(o z9Q{9)2@oqOkd^&*GxmSKJ9xsNZ!)nAH9ov@+4eQd;tKhOUU2$Yjswnz$z2rL>g?+} zHP^n^Dv#+KADvvk;ptaTMu?0%S#`VOE>vCfaQxx(Hior6*^j@v2<=D zbSjzLAtMx9Mj$hwF(_p!TW)RhLk*T5t7m=ot{Z-QMVHSHJPC@Mp;<*X0w8`JxX~PE z*bxgRa~6v~YBdW-yw1kL&78OR?dERaDRWd?)|f^-PH)5Yjf2R~hh`+gM^qo#UKfIT z{Ka+aKwC`)nF;Qc332nGJC=mW(@#4o6X5GbFb-)bx{-i+2n7k4>YX1W5n2rttN}yA zD1-;dNP1ve1^I{KkcNU*oV^|EZdFB^j>~|7K!K1Svb#=RdcAq7P=<{1+Wo(K|Hx4t zUR_K4{X#cwcE-kTzkBHt+z3s+GAj4@Y}e58rdEP%^G5rK$%gWF!5ct8!tvZ8Brv~^VfTai-kqHEI-tddFSmGPM`OAkwbr=ipxq10>Z@l%% z&YtnlQJA;#Fz)a{0WFj#%~>=(y*k#{>~};j-1htKY!*Ln&!!oTs}$1$RVx(DTc%>kW}+(4|NZ3A0L=w9>% zI-=+`pr8>gFfoRj-bzOT0oOt7BSur=F^Qg$J$D^{9$U3_?{*D6*3;jhkL$*KrtQVb zUW*xeXKEPr(p4{g`@6z(8`h6DwOq4P_9#@26)UWPW3-M;6k|#1lb@4e)`D~1iGQx1 z!06XK!AqeLPK^KQ7le<5zm-~bGI`vY&&I~J>MeV)i924{6<1vInsD>nhNnnXGC2L% z_@e6u8fphI-@)TC4QDjbrKH=OUAd;I3A`JEuhqYC`f}m%+ke0R&`^`&q*8C)18g6p zR$~mf=<~NWl&st}BR{ySDRNwHh@c;>CZauCFV;QzmheeO!D@+3953}@#-IH9zTTud zSo+`FAhm+*%nfyVWk!B|T^U%w4}g6?ub#4L+xU3jcukpiO45}z7G^WdY2u_}Yrc|;!$O+J7ENjo4( zSTH{%TnZA3c@F{7#?k}+zdHcMkpLVA{qSN;a~hh=80lc4FA{IqyHdj`+&fy2Pp*_J z0QSq6nrD+y0@L>W=*+bJMY4mcLB+oky+W zeY#@^`Xytd~&Ij&}>&-G6cu*TxO)ME{6&@3u7waxP zJ-4<=r!xexFmB&Cb>p?)T%E&yq9~`wPERq(t6Z}?##2isD{{FB*AyFYY-*JpagDNs zY&O~IvfGWzYt<2z*?>Rlgrc0aNsCpj>$~tQl`^s$a{;%*?$%D|2`9xerj*%oqdTk9 zY7N|%geTjzoY$l?2yZdb4!s&Ox~ZGUiqA>PLf;2X^rqC?@`hU#s#s-13Gnu(E`Cwj zq_EZ{AZL#-_g@4&?yu@T#sXl$pwwMTc`{PTF+6Sbz+n;pNUE1}gG&JV3evEUcHkvn zf8H|#;2|h5a>c=&gGUdjd9lD;8bDwj!mOt-7?tL8vGa!q`v?0$fHOfNpr%+Lb%4?oS4w9RSEBPn_yWq0fN1bbLxo3Pjn>C&&&wWXmvMCL;np5W52l3BGxR_Fw32QVvgY^0B zDu(3yLbKDccno-!JFfT1^0eBS%a>cmAFZ}6o~yOEOlokzy_Cf>!4Wjg_`CHsV-;sS zPAy}Csg(9O%b08W=^oFywQYLd)-=050TjbpPn#oJ`P@*Vj{|zfVnr5!TD1TSbXHkh z0SDAuj4PInoc&wbvF?>X)E}zOT9s~vYzL+*_nx`6_uON`gq0X{6B6$OB;wL{J}MQEh>Wp;o>S?J9G@x7zfijnhsmcHk;e*C$yQU zLin}8#p(4Pr^n`Rk5OR<0h=VqL&;Mv$&1BQ!HnDwQTxV~qzAU#>}o z=}j6I!%CL230hPbIP;}eB^#p6Cb!QDRXmhTMbNl#{<@6G?NLxPy=qCZU|YL~S80pT z@x5c%GgO^sSIIy1trn#7=zNYv9_^c+O zI~*`hip3-)u#lOgwf?>s3c@^ahTeI*HYNci`YuPsY*| z;Mi0UvcNLyiX8{+jiqeM!KRr|To?0gby`**YW&8wxz(k%_b;zTvg-#&Hfuc52PP)& zJUMN51HXh!$>E-+otf133vVyI@(s*>vT1De?CGB3T_+bkbL#dLje)4cz05zoeBX|~ z=UTm%)^a_OBOZDxJv-7neJa@&PQ=vy(BvkkebecUSi{y$`IJEaW@SVFTqsIgY@P$N z8!**7vmT3DqgIQc3AiqH*PTW_7L5JK_<%dKFgXK?zwj2_5Ru?O zOb1BzLd;)*S1j2I0JI|A7EKTG8j#HpBOKAB%){yG;7-FA64a!S2ivhQtciya9S4{T zk`a^Ze;BYCJnpMzw(Z_|+tcab(*CXaw!OzA!BRQoQ`4pN(IfjFdh+>iU4F&lR7E&w zVd{r^E45VH-p0{lY1{c_I)zT}9;>7;Ol}PF$&RmWSvrugnyoS6-&eE%KEty+S#HvP zN278ZdL|3^bf!X~pXMteAAWOJ4ab*tXZ9Za&Opy_E_1~LlbubCt#(T$H{M^4*{#OT zhGiS>i9==hnl&dnCNY9hXlYNPJ)iJJ!d_oxvg4LXh9WfXp!=0H)A7}@P8Z;rSO?59 zo-a7M2bcV%)aIe&mJ3hRJf;-O$W+ad&X!X7(vIdjtnOan5~Yv41oGPuqrww`;1k^; zB;8VUFZu#-OT{Q3K7cQW3^CN?A=!mbXgC+ecRtpKZ(+s!v;a)=!h?h%2OSV>KJpDg z5$2Bvus~6{(4(7I2)UIfbZ*XU)!IyaCGMql(1(Lo`?KXYS5zAE=7cvMxT>?qY2(?k zr7KrNBBQlly_P00M#V?l$7Wjgtew#DvgFXz(DoCx@zLX3*G@kgaG7anSBGJCn1K)Y zRVs&@catn5|I#&m9XIZ~|KX#v!;hEh_iP<-1b|vt71@(1jBt!8vcv9Wxyf(6f^|HN zX)av3erc(LVF^mj*>zI}d56ZNVmOBBY#i8emshyt#qWK*aYg57uyHh-O~=06-E4L{ za|W%|(3aaZ2gxK?_rTJgW3T2H0qbfVFo5+4Zz&Hz?itOxBQCI}x)s1Ry|3;v@Z`QI zR`SmyMWpBPADs$F)T&?}dNEJv1vedTG9Q{>D?SX@g`4pI3Jz(>5`kyY@J>EkHwW6mae*?ePWZd6WX=< zyIsd#6t)fQTHexoXq9HF+MP=Kyzza(6f`G_x?EHCNH|&pBj7#%erfXB=}T(Ghp{ZC zzHQ|UE?bs9(P8dsb9C0@m4M%6b>*WjKd2yfweSg5g#H+D_<#aMe+-c+A}i@b0Da`R zqihjMv7tE$lhNmeP|AT(#i_-@zt$NCtBJu3E`uVpZ_K@O*)6mptkUGejosD_!nwuM z!Y9JYefysn={!zdGd$2Y_d-|qASOS3`a=UIIT54TKUoAq3r&RXUXs6-(l6ZO@+{2uDIz zsPkX)<*VO>+T4~OUH`dl(EcsW+1Y3z((WCgUt~Bnhke`b^0>7Cs#SYr?&~J@eCbPj z*7d}pU4_=IQBvyLg^f11b{Mn1(_l0OTzy;0WqHV>V0^X54m{sufLRL}PC%(s{0oOr3#z!ja3;Ct_>1pALcYY=uo7<3> zT+`4vk$d&K7>g0#Uw!FgnnFr9IVSx0>1XbK;CeE1+}UGhX}hIXTdC1-P>SS<+jX(! z2BpT%L%VbvG>?aBBMhg`S(VA`T3r4ci&}>7%$>V)*yVJ(&5Q@d>Trrf_lDuv5NU*&fK1GE1rMH>T5TAH*5ObVzA3Cp#dRsl>R zyh7u03hhn#Ra7F8A0j%dOXi9Vk3cK16abXnDQFAU8c(9GVDR=wgcin9mD=Jp(g$RW zGFVRdbd(kNdp|=zVt(*u<^_yv!4I->Q29WCETX=;i#lEL2|?#4K&3?X59n_k%Bhy&-_TfuudH2VU`D_7(R{gz{8b? z5LOq8ev0$8LMD(I3E8-CZmDO*!Y2eB5U&EA9Yg~85hE7oCeIHcsv_nw3hz{;0+pDb6nGDsA2(9R8noUw!pg5uzy^xDm%x ztCP+`-eFnebCy|!jK!UtF&?)t4mTYeoPJ*T`SfIV)sFSPF$Lksh0TFDPzAL?D;lCy zpGjIZpJdhX+;V6jb21Es`Vk=Rb>g1`Y+yACyuD5V;Qq}HyI#f{P}vx(i!=J2^)9EY z-KezJQcYNe2sq7c%@4pFyTj#5#)g;d8Oo-c?Yx3A=u7r*o5F-Ozo&njV%Za~+nHc?U zZwZEYVt5Q|$}eHaP^5L8$DK?yH>ZGF^Rsutc@Dbz>Uf$`lH^{QDNv!5r8wgj?MvNX zFOE@fDK4*z)J*|5-JZIm&_Utux+jq=eI_K3<0Bz^q`(2_Ala8DG^saFn~wr@5FOFJ zh?9 znie<+0R6=ClmBCj*YB8}*1Y=a+t2lW^YvGLKw!r4W!syATz1cPtoX&<$FE%dV^&5^ zFM0TZ*LR${?ColUO3~Kd(1~#kHcc{;$O6JMz37f{$TOR4p}<4u*$^Ub4n?6?p#%Tn zI8=GqpkbmNyTZm0vPx6_rYA#z z?_7G-wPWFOHh(rw+e48UYbPme7(korI3_djNx1 zCl3K$xCGBtd{Ct#D~{XX^!rgF5!S;~)By#{JWvw~W1%6U4-$X#4!%gtjK-7CTJRdg zHaFs!1;}Aie5?ykRhmqcz@6e?B;^w&%Roeezkqax>NT$!n!?rJblt?5%h}j4>e($k z{>7e$Uw-h!@rJgM;E|&{+GTQJko&DHvr@QllknqT#>kicJ#%;wYk)`7Ftz&pH=|{{ zGYk-3eAg&EM)dX#1iK~W9=FRWhxsb|hSe<%F@+rZj~Mlykh>+$FqW%szWer@oBTuD zx4ixX%=px8R~ea%a6TonHB%Cbi{HYW5sQ<5e+>z@(MZ`|>#-~M!B zC|-0&hggm4Ya!PN0ZPe>oxyK{d898H*z3Np!bswi@XthxRF&lI7 z-^#Db|BSr~+9=Ku!3$Jeidq98AW@CL&kDl-VAvt{O+w8DC?7mAbdx{rmm%hS#TpOM z7Z4MJB#Q3P)>2e}6cWXQ;)0F_gG0%M!6QOiE2%0n(evH~tVgSn6@XpDuul>bBo%Nd zQ1b;Phxw8DKmrheD5yuC2D-cuO#SB;4vnq^IVJP^OQ9(`EnKB^4R8|J80{$jM)44+ zs1>e5+8VwU1qW@8f>CrG(z5Ww&@EUvpmezTqs$)?T^S5M68H_)edZ5|U9^n|p{SL5 zMbBRtLS-3622ON#ba7(mreYyQz}~2k94;B2p-iqf#GE;bN;&N1%D85{TG-&_p*1o~ zD+3@B8A2^r$^hY@!5p5>n$}L>^$qK1YmEeEV`?2fgIcAsH^kz__UoNAx8%&44VO)` zk+mJIc$k7d$O@~;2TX_neu4JDG6h9ZrS zwT1-Po2T(XVH|2& zD3zU{@NmiDlPis!7AK(o8|JLISQOLXZa#o!1zA5-U<1hr^dpi{3e17iascV1y$OR6 zs;Xo%9!+&oL?Y(RSnYr_QUTb5kZGz^xrp7ORjJz2X>SyoEoag>AWv^@=-%3B0|r41 zqiu5?JwqG@13h#uCS{}&<01~V)}C(L*Vfk3c}ZKw#wr~VTBVe;GPSMRaMv3f;fAT0 z?)~deT|T$FTT81Q9haZjAd3Q~PMOdf!FWIqErrwUoxa`S+}G;10^knTkWPiSz1way zL$N}XQKq!KlGSRcT}}gIH#6#;C-76vIkncR(aT9LuuXxn7SheuyVVxxsur$>QW3w! z*W?a!T}jKaJ$k>d)ogG4dK7q<+33@i8j#d-yIXu=U8)-fq&FES$~J z6afm9P_9HRv8U4z+=A(z|sqM<>Xes&;aY8F1DEg;~P3>UB?O2%Q{;36A?FBn0JaOR9GtFf6l z`xrD2a##$Jgm%24I<3@_Djgd$hkTI{eF%DaPmEr5_2`(4zykWA74aB&F-FsLt+15S zrz{$iE}KlIS23ZKIk;lw<=1}Wpozg9s+rdIl`WO1$Ac+xN)>`GA#wkR zN`|_vdOeVTU%YH@qZcPY0)Q4zB{z6u`P8Jto!u0K-eIi4Y`3=LthQ{2aE0vD4 zH4qwHrDSzVB~BBS&TuAa0Ww9PSdhuJnhuM}&SL+pEngardMCP~tsBi&uO&`#@yLg> zD|}Eas!$n}wAG>31l6WM$Fe(CPERkpdqqn~uL~BfG(eYtWYxQDLbw>$mwmY<4P$-j zT!zxBeX(fU(lb+wzkcTS6;MGzLakhC#Y*9iD~6U@ZNY0D?)VDYkRDE?9LpP+&hG9n zSd!Vv!J+;3l+V5QlEUqG4tnlylO3;_`8<;*#Ff!I`0I;D9ct)W~JW7HS zb)&++A`uMN2ppcw{dmVye8@D8`(&!7XAjW9KRZ233 z2E$TLY=lrOu%EpV$2jpzPW&2%AvR~4-wr$1xv9T*TRT29k}D1l6^er}Q)=XNT4Q8@ zBCTxL5)}UF_nT!fpQ2MMwF$M(6tzYzyP!9WS+4;oEs(!aIx1t*`k*0<-V|{qwU!X; z)Z4ULOBga0LA5OsOxTr4tvM|FVP$x-*t^g!meF83 zrm1zy=O;eD*Ah_^xD4oADT-6s)j>^?I`jA>*2#YG`*UB{IUEN3stX%wN5~>8+_&oi zjaCe|&k$t(;*T1QM zppYLNnjIPz&OdWzr#C=hZyMT2B15?g>Hg#xV<0vkTRWpojcPmCowb>ApyQ?^ ziLs6zsKs)GfCFR8ombcFwn*4vFNUt(kmm?0Bit(dX>Q-46)(%bXx9+39fgk{WYYO1 zK=<>`DC#_ef*i~P)A>+zj@kg5copzRdB5)Lc4&`#vZQW);BBSl+8AeCbQm>-MB6WM2``xpRusvacs0fI zmT?@ir*@AXCY;@7>DI_$Z;`}ri3RnT#ib64P7m6URCX^sX8S`yn6yDB7R45cu4JI*b0`Fw zd=_P}2!yTkPKP9@k{2YIvUx8Ha&m}g4T&o{Q-Bn6ZBlTwfC`k7xH+lPvQz{G)r<0t zc90@)aeKHg=pf*GeYR3|F=1N0R=DTP;1ZxZP~)t||Hw?C5)2*Oe|E6Bi&VPQbldb; zZ|lRgN;Ts-*WbHcP7tJqad@6wamcLpp))N+Nhb$2- z*WZ`QnKMoQ`wza;g5h@TUT0$MWaIK&!m7s&#!{uDdviluD73WClkV*r47Lpnjzrr$ zK9b5-&5!;#9L$w_%Q;fX*i=+tG@Wp_-|+a%y47}8>iHMRLYGEYxzac~)N^3tB|Rpe zYxseq#%f&0sl#h4p#U#~&eXU@2NwCl4}fwW-hgu>(`n@j9iaoV7#6ofuO!s#@wZ-Z zfPo~#=CncLz-0C7vcp=acTX2ez%-fH_7s0>S3f8@BGb|KU4@ z|M$p4MV<`NDy@T7yP+w!HN%@MPH%ntAep%l=?Jb7f?$|qx1#v zPSP5soT5>84Pf}!kkD2^9&th{4btzzSv|{Y6*ikf%d+}2#V|~@TCKD;Zbigyn!2;X z@2K;ND`3Xs4AeP%0Cn9l>`Lqo?2C{X{XX_{?01lzLh=k6D0=N798D`BMH2r(I3bM` z3u}<^1{K2*O*zse&?oc)6l{QG6sJB!r5E)r$3s>Exmv~00$|aJDoDk|H#lf8Ap-rj z;S^x~VRA#7AAzl<#6%HQM8MwY4^$wcbD@|3Dx{_005+F&3YiYrr4)iqp)0gBprHNG z_Q+6ymZEWP-VPvO35<&<9fuYM*xYzzrI2ml#eR*TvtpY77%3q&4?tC9B#_pMBNh5V zXj=)B0$)S51>p2W6O)q+9r^*j1>+!6*DIR2LLQ!(bQci=V-ai`atWGn6R;$OAlC%jrZ69MOtu%AE9)pu?#r|t zyM>%61}z?YHKBEDdlK<3oxuo1K5mb*J{VT?)!Ogv4jZ6xKw~@Mjk;@8wY^i-9gMJp zvnyuSu3bIBU$1HHEUS)K5ewtFKl3)3Iv>|TfdopE$Soc(@ca`2i#Z7Vi82k$5*SRM z*QxwEyI&>;`cB$s*Spn#Z?OiofIlK3W#dxgzmjpR!LA8IxigrofPn@M`KVecSE&d& zBASp}D4U--_i@S)jv1F$s?bwe;|jDjuUkX+=R7%E5Ng1I2bwre8{DaGZF^HgHnZML zR?5r27{YO&a&(#u_Q>i5Gi3z=RbHhw657^FmoJ_ec&@1tn8|?L5PV3hGam{d0~7?@ zG)L()T4P!zR~0s4mY0kwRoNV-=`19MR9YRaLawi%(S>Mo-GNUi4JQ-MDI)JsobqnoX4aa6-3wCZRfA0wFLaC63{=_oO{Y`li@z4i3=+Zs5D$Tf@>5iNc&)NpUDCdupK=vv<3&- zC95^~9Rk`=K{p;i@{+tkYxl8WwM?YW&(lgW&Om3ueHu4o(eu1g<+C$>T2J#qs6B&j zG*Hq-r~($F?c5Z);fZ)Vbo31RD<>}h=pl@oOjqSk?0ewh!Tz;v9^&h6x{w$;a`d*V zg~ho}gR?Up0}5}-0PK`l=;p&)?!53YSjQMJNVwgQaxy%&-K-cMHSwuvByVARkCHCR z&G=F^;FX9$_eU^{tWpC)5?pKzt-F>P3A}KvOa;j;Xm$;jQ+Vw^Y-0gu!glCY8wG%y zjI6Y#4LWsEK^yeRUWnAYgGsqusSRa{xr>A%2TVJ_sFwH3<(3ADQkruL0vJk0g?q{S z^Hy_X~5cn2xAgkiEYGoVuz4_j%)z3JIInq3n;0WULoN#SPulxLf{Wrmjmkp z|ARdXp*6@0XuzB#GBL>JEaYIgQjzdwB~J<+9RcLUMVfy`t0cRJ<|`K#bU?|vq4T0M z7tnd;Eg-T^=+r?pi--&$e1oC^R4ap^17JRYr2<-lpareSxsksHi+E!A5<&66)`I;N z&l5u680o5@ER7)H7MP6U36X&&(GQ1Ju%Ag9R7yTYDVK)=0r=&>U?3iiEWpu7BcBZz z(dB~GgTgn6ExaKhSwU~%1V9xEpV8qIa`Y;WAo$Q+WHd3gqV~cK2h2+n9m=Y~6^bg| zfi{M~%{48)4rk0Xw4`}S#heB=SM&JUuV3#NG#uiX-_76}8DvLPTGCa;R0=>I#dKOe z@#H4sn`?;>t?YkNtJqwH(zRe)+T9iiE1lannz``xL=>o!TX#R{(-+3_y`G%!L&C_1 z+gX*|>^i}Db++*X4>w>yz*6*tdr6hv^4QeX!nY4i)*2hAD(CU~zpdHU$a0=c1!m;_ z^nY9mrrh&^>l&^;i7o$@*~{6B`s?jo=1W~0)~~m4<0_4f0goS7u=JrXIVyBQ2Bmm} zvvZ9{sW$q9dU7wF3k4KJw4uHU!vhnGe4yu5Pf!+eYUH{QW?sKxgHfdf3&3ID1GP3W z!k9rDH5*k%>;pY-Ra;Fe!@qJtZvlGh3NLS2_WF+Kt)1<+${%r>LkdRE=T$R_G3Ky; z@N@4QUb0piZcP(JMLo>3!AL`fk5S4H)}`ata9hUm%XJOa+f~;=NuZczb_BYaT7Jv! zotJG34BUh1bIMON%CvhM9>1D%$h?^qEn6HRbq|dn-{&yo-@BFbjIKIn(WaU`Mx0V# z7ifbiLrNB3HhcvWa`?x;;ssKn;^FGhBZu|9%Mb4pTGs2#fDqQIl-C%a65bnCo;*D| zy}sG3qmB3l;rFHtZKz-0a-E|Co2@ldY_vM6_mehD)3z-;$VCo^SwYwde_lOs+L&S6 zfMPgoNRzaOQ9>JI(`pS?Khq_{vDsOGrnogSnG)d2y6k&fb}T}X6XoP7z3Ik?7V1$o znv5$9PMb#iYL`mYHNkP2<`(3CjS4rDkIFxU>Vjo;8v(`nV%?7*mOqbqAu~__8`29K zp~)jaS|bfYY6*S{`~$^D%cs_a17`+QNK|W3Ok*BtEI1wfiK7TeAub3_ zTk=8AP-Ib%a}o%W;N9fl3_v#{7hy(X+$6a%5bwjp?|gk7a&?R(gy+y*&xe2n^MP)eG1a z!Vw%)QPb8__uu`z*1$F@3nWQi-SvNe)c5y#>UB(Y*J(g*Gr~)9S=#-w@Ll1mcd@@? zx2<_aJ9)6Cb#hiC)DS@XaRYJV5zWAL!ru(8++#XLE52m4_PbqA_w&I&{a!VW`Pc|< zpfatKa=lDjcFS$JCz?39q4$kfzuyY(5KO3u|KU^9a{H)8Zw&QfiUg!;KRo;zR>Yc~ zzwQ@=@ZQpN!0l2q2TM&B+ynl7eV{NSUvl;NJ2dWlAI+ICt&1nj@u-H=Qf6;AX3pae zKqU;zX@Mgfmtj4mHTn5(I%>J76-od&7PgAWSsv8ymMA~=eI+*fV;vo5WX($UU}C9JRpX_qA#mOlh6BXYIMNLyrH z%&4)?K{ppdWh!S0C9kj+SfiQ)7gc6a3LmzsRPBcea9ZjS{}|HGugL#Z=ZA`{cEE&P z2AHtB>pl-y(yxK8z6Ok`?;^H#3>cjJZW(Its+R^v^orC#)KVZoN3FqN&;pPf(6Ix3 z6Z%d^B7F{_+?$C9HHQIK8VgNQDh@gHFjhml8nSLk`9YD8(t|>vEQ1_rjI;~vpUcA0 zP%wt_BJh={>(U1pEzxFyg}+GkU|0=^3W+|zL@T7*pk$KwNbjHlu2^!1MpKh#L9M>B z=COYWe-mC3{`SvD*DP0S##@4{Nnx;m2b;#Wy^zz`H2Kn@Aie8k_KCZNKVBxB`=5Ip z%N?iim+(7Z-n?A+=`T9}fN8(I@)q5>KVt)$2&0AG%S2n<#dU!gW3_X6KJxgJbHdrD zpk!DR?{?E(HB4TNTK8dwO!*e0JP=ApLQvU9rkffAT0W8;#r_}UNbNmkj7#Mf3AHt= zSI%NTTDfY~$_uxuV9G|0{aK49VU%*=_OROEz*+3iL6up_GiRO9X)h8;%1K}S5`%?uwo#di%;dyLylhY)NE`1$qS^c4&==AKr_w_B$ zV@uk*u`WR?{Ni6XeQoj5z(CI6*>yMW(r{|E_vmdU)>AbaSZYId;DI)*G@a8C#shi% z63Edh*{VW6V_10!?@P0405iTf)?J-xiErd)SY!7{W9E&G8@FwPf0tRQsFPDuR;rU# zM-wtD@B)Ps7_XGw#L(?iiu!u!1WjZ3#dXw6iq(KC>aJT2RnjNwuBy9P%nQF<_cJLk z3?c(^CZ^>{Ul55ESndCS7eP52EEu#V5^cGG3=$w)0Ew27XuN^%Abc_3a8 zpazh|M~g)L^;s1B8PT2;uFoUY;D8|*NRY3mka{LdAv%&(h~MR+_@g~Qj-^8`3@#wO z^N=<4Q_x-zw7+3XRJW{}F?|19uRcHW zH=gMVV*Jj_O>KtQqryJn`?o2UjXn0@!+IV5EI~~#z3b6euH1Hf?fP<+BzI%u*iSCC zs4S_@f%8|}0dQ;w98x4|v*W8m0B3ZBA^=RXpWDo&3UhKo(Pn2bqS8=2{|ID$4HOv& z1^gssY#07wkt>F8urhjo-TMj)`fR+!tED;@GJ(NB=swX=$Uqvi;!cLs5^*<%y!SuIpx(Tg>me z;;`~#ti7~CwD7GIP=!Q9i}U1RW9qawSO>rB94WQ1ebP3xf`WQXH^|J_B-f zP;`S95ilhp_NC7-7dZb$yf85qL)#(&`_Dx@5Ul&`I7lZxTTuE&TmX!R@?5BuGWr4V zmyk|9|NW;Mg5xIsLbQJVN5B<3MdE67HfgQ~5;cg&_0#s`(rx)~?fOq1%Y`ch{Xw?@ zvS#Sd{H;WwcbE-_>=67u^aTpuq;Da^2B(2vC;5nICzP{;i$l6dZCnF=QS2HT0_vfg zFL^eobycg*UAJx=Sd@iA60^+?d`NCBYCa zz143+Y;;|Tco`%J`Z%BevxcKd{;K7h%HR{}v{2=#PcTYI$^hT57NDN;7$BEqYG|;{ z`ki{MOsj!rus9CLi6T2}0}>DLFer_T{oj(B-E zE5Mi;r$4}0DY=?W04==?hmOKpMnxKI9H4R3Yq2P(E2kl8#t^jv9kGF-_q6pyisz16 zm1-GAo2L>5N7zmqW8Lf?KHdqWvpS%kA)sZDS;9;6ICg!9)K|#NlFQst7`(yFycdBUGSQeW?Z2FSnB7^ zW>T%Pm`P}?#xkV*8*IR92O3=ixe~T9@^kD{9!<=)Zq6d>YelU@TP?~ z@kG6FiT4bKbAUpnHL`|6LpwGBVBllR%GC*mnLBV`XfR~UHg5{F*eSJp-_c+1 zJX5JHUA_6;<9l%Y=t;uRaV4c>lz!S=)U%w^WV0w4PQ^ldEZ=)qe);BgtHy>C@t*#@ zdw=$#@FcM`v8-17|75)foEznxH@-8HMr9<8H0o{Cd+%Gc+TPc@-u3Q!-Ft7i;f4VN z2Af_?3xq%l9TG@FDuHxz;Zg{1LhjNo2gxP5yh(t(3D_(Dzt4;obNBy@i!_p+X}?~+ zziKblSKX?~W(GlKg?u0w4CD)eK>wweZv!4wk2%VW)5IAzF-CPv5QYRbY*{*h)^f6;Uhs`^v6ynqqq9oJ>ip3X|uX%&LyWQSe#cVF|N(Hm>)RnKPGMSFXCu*52)A+~f zd{{_5qHdU!x!`A7^8CBsGV7McKPm|(_7D6x9NxaeBb}2rm49^)~9-s*PKA0Y;xI~K3H-Hjs&RE4M+V%{-oOCWfj)oZqNES+}R^*5~=zlK^R zlL@6$U4>S3og2fMg2AYBQ#)_DX{ZiABT=9I{^-Bn=``9@sZu!3J2ux(kt+0yEw>L0 z`rPAp%4ppxha;|w0R8oosP{N%;udZ(yWM8`hpu4AxsVrMA1pk5{Y?+r9KpsXpS|tY zu^dEYWclZ)@O--w@{y=UJ$FIVKOL18?KpTB99i& z8=8tdbx8_c`d`eL!R`?43p{5SZPKg`DatI8u}CLaMluY=$X3(;5TzN3ArpHDs}PqK z9fDT09cYkEjES{ zJXx`TK>mA8b(l>U{K3{9g;A@vrrLl89=&d4l-2My{^|q5`1qz1 zPhyfG&6kFGRx>bUKqq#}`}yEALgX=#?^{Hn?4*00J?1 zP$hVhG0GsrxCp>pvI>rmIYWMw#;};9q0@0b!!uvpb?9I_(3!1nMa|&%Czo(~R0jh$ zQv9~bc``hQi2XeuN$*G*S(#4hFfWTF4$jXMN@kNcV35j- zWeSP$O>o2aFTCr{j zSmHj7npFd8Ignm`U|)MMS{_@PwkS0P@&we>59u8D+^|eiqguWGP42Tod%`F zQ;N0|XVBwr3~PCZXHc*iwE~KDqy3B}8n1MWSygIVNEx1)PO#>=ak);-hk~Kj((rXp zKKqq&Td~9C+IetWm3Ls+vU789|K3g0Q|nsW&TKU3(=0}>6t^AR?Q#{Xg|;s||NM>J zm9}7DRC9IPMg9+ye$ z8GT&GD@R>|PZP_YpA~dvpT;bs37RU3EJFj6T|KM1kH?o+BlYgS!`Ylk*S0jG)CEE( zmGU*g8KLe?N8If*vE$vVua3vNLxRVN5kM%cqbainqgoK$4kZekhD$>`Q+HAA2RnCY z?VaAZV|Uky`|f=plP~nNcLfLPZiDR>RWxI@#aBGmp5)mME?ev!;LzKX&$fqb1BDWB zznuFK@W{BQm2T2_(%b zN&~5HR+1z{h!CkKNfz)GIB!wbVP3Zg(jx8w>xn9DF;ac$4e3jefET4>U~&#&cf!3* z3DR^00SW}sN~E5Ms?v;jM?^PzQEp%^baOUHQ))=ELy{lOw4NTb1|p(B6yxM#PvX>aYuP z8t+8QL`(rFqLLU#v!a*}5bvWh0u=3LLK8;Z|@HlANXzWk;RiowBHVga@&8RmrP&Igz%XiIn#HUkb zpV#TinVCSYhYz%xS-oG_=<&OR_kZjk-sx-$%kJ~1>@IUFZBTcff6uJ<4RI=et4dkv zyH<7k84qpH2RpNoBL# zLzaBJYyK64&K;hxR==ViEjFHvcZ8@`tJY%EY_pAdg>W_KODE2yFmKj`viGcsfg5df zFPn(RmrO)5e*amjZ6KBmVHmX0n6bEHMm?)Z#a92_5tu*~XV4(Toi2w)CO0!bm0O+Y zHn)4k4si`|J>CPZ2ZP?dddm>T zp(9BWQGHW3d>pWNW#K9~pNI&=4rS6;q=cEcpoqdkLS>K)|9^o+tO;p97?M~l_$Fbt zrp07tPz)tnBVc{9?pT%4`$?@)ubhKP6cTA|1fXk-zZcRWZG3BCsvs z0KmJQel;^pBQ-kIbFk2wJ?m;UI8gVm0{{VL*E3#kA;0prBgZz)Rm@iOXISV!VB4Mc zrJToQx5qQ?+LWi4S2L^EHQWxA(#%i#Y#y)B>P0z_R`0Vrf??`0=GPy;cj*L8|9ltq zg1f9t9=IvNr82>SYXGXRh~0G4KGcd5~l?GH{pC!ZbidYGAV*ejDQ{Fd`2ELIpd zm@xrRWH|$5qvV0lY+r5TF-`~r)76y08*wl$gg!714~gv2YGij_nHp;RmA2aKIj=|S z_wBHR(OHI04)nO%F8Wo^FwX+>X>ZGw@MRxsK{Pl_DuPAhS1QLPt?+Ug;SR~HuMp$| zLad@{gvkyl6-oaznL(ttNR%h-&P}2g4Rx{ZEf^qUQIJh56CB)2Soxx6Arrzsu-!%8 zBgQ^XXVF2Z)`6o>CL4%LO9vA9R^$<}&X9cmf!(d@vG)j`*3Lk_b_0&kNMDhw;%m2NoQT>#81KF&zE%#&MP(L+Jt)RA1hmc>mpL&V<9TLh&&?*+| zsKxG9Vp2)e#ZmCeM8So?8psYd3VDKL`@qISzLpqtMCM7JEZz~|e;X+WC3_@d1nEfP zj`UQJd?@LbAktPwd^;lWWL44MlH??z8_C-vgIC2P)TvT}>85pE7{!3F54rmsotKXNAG5yY4v*2NxFwBmS* zAk*Ymu}n-lL-GOcJE?drzGmtK1ck1+dkhKkRSDKGmqoUGP`x z@W2de`&5v#3SJ>p=^2=aTlL+rPfP(FYj?7CkBs=S`thtotI?VaeqM+P3e2z_l_BxS zINkjN`ww1!4oP|aFjcaeeL7XhZ^%-@{;_SdzEuB+{rm>Gqoz>Dlhk*JCFF{PTj@-M z6ud@bnml$z~rmDL(G-(OB$X!r(C%nvNx z{Ru`lLp1MlIo(4#*~14WhL)dv zKch1F%Hag2WT+fYj8@mQGK>lh&6YriiCXTI*R^q!t=fh#jjhdOGME8m-^(~GfTN{! zx~yK_?jBAj)haeMBrG#@2A7uVYGpeu$K1Y33Vo0{LCGbman_eAv?bj>le*FsP9=}s zci*vCFp)_N6hNf~uM~^sTa{3W(du}x)3A;oO0g<+GChp3OpIx?SVA-++7TEn z7V#p|k@wgz;|8<1tybHG1PY5;-psm~`0&-!zFce1xUmqqRCSR;5-@s63u=5R~k8o%UUzjdL^AMbnolf-ON3WH|B6-_&?JASMSB(a2 zla-Nkdc8@;BwbFI6QO3A2{^!V#%e-8wz|&)>2jm36pUYmbeM+1Bs`X-wOWWfiVdRs z9&v99?e<}x#*$_f0hH;g6Bdmxh^B26{Gwx(b($4sn^r@!tWnOO23SY*f}BcUoKW4% zoWeA~SW5>wk6I|8FVY{f93TK-f78-<98xfYAfo7|6Zm!_VVYJ5_FG9s8<8fL3<~*g z8*l&Ojd!Ld?z-vur$6%1=bk!u`+e`c@ymtB_O6^;zhlL^PwtFGWS>T{$?V=Ok$AB% zGqYjEj)nG>GjoF@hkH`%BmCSnb85$q#@RQ&@$#4Nx_SA`%+hmrQI~!HP3rQUJKldg zmHfoY)tffHxM|AorRLU7&L$FGlr*kglP_*qK(mzxXxnlib?Q7eE3TJmxp=Wn^=)Pj z)km*Wmr*AWxws!%uW2QT`EgO^iAK5jiby|VTSbUG{ouxk8F5P4{O%=-X0iEdF)eMi zS@1)MPLe<;FQq$1{wLmffi!aw1wif?q8}f4G~xpwDu-xTfMJNy1^kE;fiDO!9#JXK zPvjw>O3H?66iHT##~^rYqP8U$)|C3zMTk6dH0i^p$%b)3WFylR0m32a^yVZ4sX`fK zM)n4!+!d**#(7{54k>D`s0fTfu7Rix1$3*V(3;u`L{r5coS8V7Od=U*%cj1Mm_Rnt zooT8%3~2hk$+Dul&WomS_XI|2a;2on)!v>tx_)gcxo217BVW6I!-mr@eg1R*Cz)Ee z?r5=Ei)L~Q-_RN`lUZmh6+B5jKnG^-{(M5GG3yjsgCpQl_m9N74Gzw+PE*|(ELXhF zOeW^FIBcyd9qcs9-wMxB$Y&Bp0|v36GaOjVmN3UgJ?&vMAIj)Zs-vf8z;AqNCtO`1 z?4rl2qq>(Ik%3jK`2WYCy{vKvSG%?<;j)1qjORyb|(&)+>42pH8SkC5GM5%f_# zD|oD&S*cL4es4`>Fhxy{B_3WWmz#NHaZRQjPX$Bu&Z^g)_Ghx@Hg8nxwV8}=kBsLM znVh#;4z>A#D#5CBOsj1ol+8PQAd#)@gEhU~(B0VFaxs-2m?)O1Uo~b+<%!;O+D4j> z&CuZfi9{$KH`J2gV#>@GE%r(e2bnTFs0(h|bmj4vKmG8-FVD|!-rV^1s(n;+6dKC&#VXO*J? z_JW}8d2l$CM+XS0bNHtMu{E0M9FwcICDunuo~7j6LOv5tBJn4;+p z(pp9>m$SBl+hw(u_SZ+zVXnV$?E2nlESc1O$Y51!@%V9g@=P3E7N`%7u&XNlg(Ki?YVkGNu7uUaxCK;t<}O@u4?ly@$WmK zwCXGtH7jUCsK?R7;--%N;mgb6GCHRe$=GCTerh&4<4I+_iJ1TBz|g2*#K=h6he2fe z5U;cu)Lh8K`s78U%4pKLN)Cgb2YPzE&^-_mgfwhQFJ}r^VN&MQ*}1HPwVAAHQz~vW z$mL(B{LJ!fUm`ARk*(+~%rcE1Dj&S^it5kGL##?WJcu3ydecFh3G8o6mw|(Vkt7QF zzYkU3s{H<8jn-x?2iq$ti`nk6cu$RMhK7Xmhq!@KuFs{m2HS>v4_T<$&;M@E!LOqJ zmdPEhq&Y6+a@dHm7F|6wofb0V>PasU;&tW}su;;ZcZ>S)O8J$(6fn^qRf zwbuEGL!+6V*>(TQSxP3I-w(gt+!_*!Iyhnu+sk?1AmN&Y3Yxww5Wl~dHVn1m;)Hc{n) ziY?|Q-Y6k*ljviMtOhnEaYGXH6S)r+%#6sf5TSHIxx^Xfs<|wuvO0{B(C1%hJlc4y zaldTPkYtpc+fb+`GM(Z2Tqwrd^XUVf?HjvRdTc#ivFJkT^rq2Ns@}bMZkl>~%eB*U z8?R1f8~3QK>pJ4m$t+CkANH=?5{`H{14dGewSM#9<@HcPrP12G$PgjM?siWMee7hd zl@?0F`}zm#8{6HTBj$LDI{K||G_G!(nY11>x~uK}!O_~veJ6apM&CIEh*6*?x#PoS zmD1~>HqV{Sqz0E^=vw2=8|FKQFPj-krLCUS*Z`oz?2gIXIO~NUdZORCE7j@|1}Yi3 z+(3B@rEJ+0pllZH+PP(=N?XxvRG_}2<+a8M)!WJyh#K!jeeNBo&iz`;dBimmcy5cP z(4qj7?kaAqC^E%>2ISo0ryk70(VbnzwprS=$b!cvc{rG zmqTu@l{6Yo|4=&V4y#oWKd1$$KIZrDz3%2)uTYGp1Er$Qu-TPOX6P|M_9J~k>)alf z!miP}yLwjNKYg%bQ^ypnmR2BT;;>fHrk~9sS+Xh-Sw*V>4kXkp#kDi-9kJf^c7;x6 zSJkbKKwJC!|FF1|K^aFGbUG(Q4JFtsn8y|SjbA-vh|uiUY0>4jHk%}9&`0lQE2vnx(N_`{E`PKE$0o$!b3*2b4(_6pOotdRnoqQDD>_Scrm#^X zH%)fh1+>R-{%9doALu|{*P|)aG;w8(ixk%`OQrUW@OQ$rwW&I-xqRaWHnVG16=e*$ zY`MRZN4?5BjibsRDW7WDhe-2T;Gz7c<-akl17-0<8WPsY(p9lu9Iy~#Ben>xD0McP zNHaKkqhX(bo{7m}Q#RcRQrwPxO|*O><3y7I{9-i=birCEVk5LkwqgN8VHlrC?}Val z3KFOj%>s-&0_%$KI7qY*QU=>d_L5|PVBDExxkyIQqB(;vksUaTve;o+=%j2#fcrH| zM$C%E^|8283WG^Oxc~8nF`nJDbZN2d3COnBLuU2{jcnG=x@#vJ`+jiMiT<^5mJ2%# zNtx~}%f)>{v|FCFXH>}TL#NV$8!uJJDxgal;Q)nB?$E~V0;_Nn_%m1SCtG$O``0fu ze)mQB%*!uykLDWtdc2{C#~J;VHyo;m;uq#a9-$a>!kck+K(f|`U*BIfc5p>GVr)ia zBveXIyyUcH=eF~^gDxg&3h)t?gO7Kl8}B&;zZHEaHiyT`L)gO{@k%cm*XUWJX>{Pw zhDybfA7(t};}1vOKVI{5O7@kVKdY2>+|%edb>ri1-r;}f3X_2071fM&>`Z<>VLY>~ zlxRgdbm;vKttIFXxOB3A#eH&>-<{%|4Di}aDwR@i(#RG}Cm;U!2_zvg|20<&IbD9F zqJc9JtoR$NOvNQ*9kGPYUcb}KwU?8X0@~SC_AbmP={IoZI|mKARIGKNcfe>H)A<-h zo`q|c$FNM6H;ozWJjejG^mo{KB$w<4tK~L3Ni*3EX5AE|T8_V@Nze7AY2Fh+~s=1qA6iO1eA*vLi(s#?9ay6+}si zY*HzDQPob)NUUNNYo{=hOG2bV7O5&WOpCTZIcu7*APjtRR+5Nlo)mNs&WY&U=IM}I zYOUh;xU(WKLsK;s3#8KkAqHqLT!y$B))Et|;*Fujm566So{98SNc_2}xXEoJqko_! zrQ6d*)uHyP6@Xr%i%T_B%BDRms+@K1VQa}Fcn$$bRd0u_N*j9WpPSuN*Xrt_N=@VG zHQSY#GRXl!fi@Y&=250<(g!(%9_XglxY25NUzpXICmYd0-VnjEuby(YhUW z#)KjS-mp{)#6_dCdvw=YhuMKDDg|&V-J$NGSdup@Ib9kh&DyrL^D{1|TxOH0F#FHz zvbtnWol0g5g!LNZh362^vy3l6;4lvSU9ByWmk)KjWf}z|^J?^}F2@8#8T>;Y6dlRv zLvs7j;KoDu^%o-H$pcFQMkUj@-sSQFNcjzflr45&fI14iNNuXVzocOqxyH;~<4-7o zZ^E)BM|`!_nOn1}quQoi6Vh{yR(k-Ten5a%F!fO59fcEqyGf&|`BWCbqv&*2&hNZ- zy=*Cf635eelf#^EeAWnnhO!3m4V?paUahT0obG220JYrR&+8S2uFVRy6%k6Oy{j+I zJ8fQJAe`+E-x>1JGQXiiN7+=_Ttz5bTq`q`y_-CF^!&A174f)lyPa!wm`g_Yq zgOTD2gFWx@MbR>f0n4%Jr&??IyPlX6T)CRZ*;67B6)lU>R-{lPoA(WmN6fsDRt7Xy zzmwxq=sD0hqDfZ9^A^XzV7uTBMuJN`u8yUn%R8%_-mFwZOxu7usbMG@qsJpl)OM>a z=EXaRyvs$LTZ#Y-qT*veFw|zf@<|syGef?oaZJ#>lkx&g&|@Zl{aoHR@bTY9$QbB0Md1wk#K^h&T> z9j=t%Nx3il5fO{&Xyu9aR6Bg?1h0*+xn*Op)~z)fWr~QM3t;S9YINX}HLH_hsF%zE zy;f}ux(u?$(ZVmH77G)#s`MZ-o$~h20E%%;M#qx9dWS-7G?%_Bt4xOheWW*8RgtL6 z;cqt`X#etXGMv?$S+(!Maig!$&uidWBZ3XkJGsSs>+U@(3Y`VSa%5@KT4Wa$l(Df@ z^;zX!ps4L=`3S14#U42@WwU=sl5Ru-it*Kw82yl>mn39GK_+oFUP@^@yny5t1>xfF z@xKhhga|cBWD209L!LCyY7wv%?#9EqknQV7ZD?^HIAt8`vCV$Pk1X9+%@iV|_U%)84yd$_p{2*yZ4Lx$qZ4DZi9R!di%$SYcMnCUJI%?~8EVTecDq^zx4y@X!Lmx=cXdCUn{_vI_ zDo@R@ZS95S%L)z~YY6n{&G5H_fP%o#37vwY{vI`(ayj_RQSXPk! zxRaw4eYaj_=FzE5t9_HRo7`s3+_iSaOfkK;ag|&gvWUK;U ztS!K*tX}l1Z(&|X*5ZzqXGIHjv7{MFl28xSfkZE&#w4l(R3<4d5qOB`J2>KEkr3Gp zeIXGWRTW5SH0Y#-{FJQ4A+iY1ylF*}y%Ef_C0`-Eo?>(xz!_5O0MYjV0wSspNCN~g z^+R)@XzFJUt4m@0{IQ9Vfdi3buy0v(e=I47gbp+=4D`rVTGXh-uKt!oa7FD&t<#cs zROz0i+LkEVuIw3AXjCc_{qdsuk(nFL9=m2YHD<@ym{__Re|PiPSDz3}4!2N^ogJIm zZ5Z8figJwF1dCZ?RyO|HSpL#2KiPR^<+`&E@oJ2s&uyu9npAz=%j2BWj`W{yJN+_E zd4yF5J?@hck5aE^0%nVwg^F_8BE8hx*Ul@noFNt(d8=`4&Kq#p(~JS5ub18an|D&rt~jt_M9 zKcZ6XM=gJ$oUrKzsFl6}Ngk_cY6JrrWMD+10{svdhuDXru!1>yNoo;^w>W8_il0g( zB~lCdd03P?I5sRK@f3?basUi8yd=F~B1zIoDN-*2#inS;?;}l&WP{x&i7)YrQMDr? z{YqyBdrG8SLWUo-h(O|n7rRD2*a`Bbq{4S{hL?OMk})E`CYO$rCseM!OG`%_KC4Bm zCV){!Lw&=s_FU)SOn}j7U{h%6Xusd2bxs_120~%XDtrF3Uw`oSvv1XCzjs)ra=B&- zMvT$p`vOr~D@Rk9h6y_Dfx%j#{pf~HgMmS@wL-%&ZodbW0Mi*|NB`)2teS#JOeq$)&waBzpHT)}e2x9l!aRbH8R+cUbV}`(>zS(<|M4kLMHDTsE(i+c%Y$ zm2dPPx2ucj%~o@4u%=?OW%|OIO$EhCuj@O;ZlE$^c94fUziIJjM6K~N_;lJzu1yTlVpq-zPQdPRv177^J_WIs@F z6bTlFC<1T-n5$ZmMs>hgAWj5o*qe)xv?}2*iDyZ`S9~MpReg}?;(A~R$pIt0-K;ng zp(SuqO>c^52y#>fS%1;P60;oQ%96Q4j1a^|ni9eaSa$HX#J7O908f(Rn?!D2-2XvD zLlsx)Da<`@@Nezln}_Y+I9V{j;KExWgBn2T=W2q z<;3Q-Z8vd+{>UT0ny3yR@7&TgJk!gf#lvE>IL-CRuJ#w*L9c*Hs@j~+iZ zIZ^VMEy0nDrQ_f}rJ0rU)3do#p|Q_BO-(%ch0##gV0PIw&+0hEksTeZ&(s+V^gAL4 zlCFd!@$Sd^mK|H+^rWNougl#In>SYWp8sJepHE$NY8~TIaY8lBDRme>VT&hhwyr|x z8~=RhhC7EQbmQMcA&SidENB&Qi;Q*;d?(|Y_UbzNgi(XN>Oe*?I-MH3QDWrAPMu5O z)fkV?5cUn1+VqA(Z+8LOGKWrz4O(WatIcSuc_WNYqtNwd12d< zzN&v#p;PH%SH?~}ys0l7rQM+As7mvp3Y?}7DvQ9_b6D~kN_OD`;#PmEfQ)CwbA zc{}_kpYxqU6hled5>EfZAEJPxNhI?!POj41WC|f>)&rW-^2UkA#cKz>k976#I7B6` zyy~#sqHlb{321gfqxIlwf;Dg-(DU#f%t_vZIp3A>1U!&%q}Qn5tWBo@AL#P5M%ALt zrJ`3h)+u)?Uqc)=5- z?vHFBekm{5)L}$hkvO=-FXB`de2HjAkTC365}*fn%9JvZd0<~*-ir7rSP+Cz~eNfjdVM!2<{&yCsi!qSbKuYcz7k+@u#4M#V+#wy8d za(Han-0c2kQ+Ham*Id}+54f$NkzMn{J-g&e-q10f-*Ef-qSZ|Q!sBzh?z!{d8(%wz zf*`M_xOwOGx4s@%1Ufsrj;tO@R!7=x%IFI>tu2=ORtO6^*{aFS^a~o3#XsWpFBy&B zvObWjj&@$Td2XRScH)n>?%t84FtwjWWzvVDiQbJJ=P#6YckT;Cw)GFXP+xs^D7Ni}y^3qX z8FV`uf=wd$$H6ZTNsNQ(0H zURw>@Y=L_4>g!BQtkK_i&u{S+E$;f3R7dAfy)fKbX!z1=LZLc^fWBN-aP)R`3x18Z zw@~SDIGl}-r7s_!>m|0Fyk%YE7WEe80&?cNF@N>n;Z7ocjK?7n6N(fOWR?V|XoO3# zT|yyvEB-@~V6Y7YL5wrd8KD!=W+K=@SO^avJDRc%i;1-_%}9}$6A>*wP?Z$+69u;t zoi)wf!4JJ8c9ck1&CjxQlaMZ%Yq0ytX(%HK(mg4DpZFxA)u`MplP42BlTTe136{Fm zj@+o=^7u+ZKsQw3m?!psZuOJxOHLly>oqtzYhzIFv$52dH9%)DudlX#;SoB=cu<)) z+}>Jj-&uE^_g!HyW%^C~2K$z+rKz2}&n%gfz4JiE8{*MYlJ6Tzr^6;ztIp5$RhRQx zovLkpclT<8Uc+|Gp{d!{Qvj$vIubR#%X}`iL$3GV^aGb%p<-mJ$dhN^nDsGBziXjh ztcwOTIR-pzvow;e-HaWe2 zUH|!KuG86_2&1X;s!om136vLgUfsdg@Iuwr%C_5eMpcKIz)oTQ9joIty-Jx&ZI^2m z0Eu}0en!P;B0qkt@$3EZ{L?<>?~I;HMX*K9ntGV;?A@|+>-Ko#8&_FPR!)z_ z44fJbS1m1c%j*~SsQwCkqYgxDTEy7wC6@))B*jZa&Jn3yVm~oHvlyhwz^M{rFN@ZQ z#2LhlA%7w2sfFHPV68t`Rwtqs7l8+jruP2z?Qd>dzwz1|OPjl{bGS+sfWKAuymEB; zNUl;0h9i@)ue~uUe|=f^xf|NIX zxGI8BAa)_jGwDf)GKZYP@XeHOUo8FP{Dx@XHQr#op5@Loe&6`*#8sR29Xg%NqSJou zRWtn~vH%xwhGQ0gcW+1V=l9%sSB}Q8FrKjkS%^|PSSOzt4Lb@$%+BrW8`n2(TJfFr z7^+@~`iHu@1ZQ075Nr_&!-hsIT(=P4blt6YUSmqV{J_gp;PmyBwav*W8$aJZz4e{l zclazOyD&c%?c?oKeeSt!;r6z5)W$D9(svLe8+7vE?3^3Zy3<9sXIX6W+}IBrZ+`ji z{feqNXLW1s4xj1lhULrUOEUg+sqhosD8?pv^)b)z$&LM+Ztd-#T-x!6Z)Ubz0;9uy zcinma`k9@AUc-$IA%3d!#7&NHE*8%!IcspZ4fQ_BQEhH;sJro;irGE&e7n;ptUubn zZa<=Oz=r%$V>8^YYUB`r%^mchT+Df$$65abU{O5QzaA>{}W z$e~Pl^0-13UZQo9OoZG=Uj&tvd8sf^&?%%+Y|5&ws*EZXRR#WyR`KG)`AEVYyv5w2 zdY9Rt;QpvHEtoaGOy;y5jP8aTf71B)E8qXZGk<-Y3cR+DR;*e#KVS^HKkAMvF8uZ` zH9ax)pRZ_N{o}&L${tnd$d=NP8$Kid?lJmUTG? z`5BW1B}@?|9dgtEmRJYJ>)=nWss3Q){Xbs#KK1M0lmGb#>~HPU^Ut-oJF>wp*V5=;5P5h9t$(Af8N0-50HO!A5 z0IC{-#w7L%@N)!GP$MS(0b(Yq$Dsa6HwC2(Q!)jW21;7kCJQS}GBu4r8)mvFswSlf zuSS_D`j?8|vWS0EN);xu$hgL92K&NyE#8G6n*)uYCqMzz{b9BIZfmHKC&;GQ+!EtDocFPsP*nsO}DGFXi(#o`3wS=Rx7JM$Z*b zP%odKlwaMjH~#R^ukPL5c%J&wNloJqPYL7O4)iT_(bqM;PwED3jjyYpQGOYB>eiO8 zP(c8uZKIBY7DfA}Y0^NX{%?u=fkA{&wj$BcGE}Jjucm zX&q9Bkfp6!5aXYyDTaM5RxD%ws_45C!4#ENCKW8w;Y6vm=>5XACFwbFj0xgL6pH^O zodUO6O!`adI!RrKXGy*;N<5K`nioK-qNECQo1lU?#rc6uiX=ZNUA^>W*zK31UPO43 zElYLL&Gs7cqzQkL#&4_GXCvM{$Xd}YkHXFWz<(wMlM%(c_UgLvdR?$D7xFp`uV-n) zsUQs4;G9)K%RModN2mJZ zEpAJ|9KcX2^&@dlD!R*JxZ(bjC;IyC9(cJw%EfbD7r&rU**qza%c)V*a)pi68-?kq zSS}P%(CN^DN7Wjcni0a?$rKXre4X4kOYeH7K5?B zV!)U;gDOO~w4sS%%RbiVi{u8JWzMKU=mb+F)s)P{JDiGizt(ARtNrvyw{hVrmA(%u z*kMrfMvFn9-d4(44O@&k3i?2+a)Yz0w`a{jXYsP|yvqRmlQ=-QqP5Pp)zykh&Csmz zJ%xMzzFVI9*xh$L&{n(2J#T8Ky_zc?PqaSN`0tziuFCL4&B1m?cYNl{^L>%(>b$2v z646Vc{Q8Pxh%h++3m-qRNKA*u51Jab+VG3YWV3$heak)Jyt8=Jg zFgx{v$*$6Rz37eA$z<%{{3y@!v<~S96{(R?i@D`seMmeVRT;zXm|%xNMv3 zuHKgQH1EFiTcPI6}< zeZ{QVikVi;s^yF&N^~hKCG&CEk4;9-~iz>t7}GTLlT@Hh_i5 zRiR3Zyzinwu$Vw3E=BGima+onSG*qr-ZYmJ8H*I)V*wgp#ulwaDrl|mqEtW4EEy|V zolqH!2S^*f6;J-x;!zz#)OeK3LU3%zS-+?rXoHJ zx1joE93S8@fYHbqk{+8IMcX>LH=0NJ2%|uf*r7v`I#q0~sdXV2ONT>9{3}p491g24 z)Dj9MP{=TcP;G!a3y>Vn&!bZV07aCF#eZqR$J0ynTx(C<;7`kAZf79u_LRes3iYDQ zP<8I=XH)}Wj{!wpywYRq464F%s^GFR!BAPRFfBQ64!d3XVVA>cqwb)UT+riA%29vg zZe_I$wHzIEW;QV1pE9YO7A@@p@G8pvF~LL&z#YHc#xNBjVAEgt3MFH;atkj9R%Ftx zvGFp6LawqRjbu|QoUA(>RD{(gg)UZ@YUAcoz`9lnagAE0O2^Yaj0OtENN>M}lQ9au z*Oycv1&JH1Z|$J;uq5@~X^mVpz!or{k}dZU;6ot>^VZHNG;s^VL<8?Hi@JRo-s1D5 z6`pw6?Fd8x1?hPIJ*5y+>nAk4N@?f~bG#zyG}~nqFQd#+na<)0#|=Pc^eWv! zO?f0gZ;Lx9gpU_2Q8$W-qp@^C_76}C8q5M#u<7)l1iyth9;iCp z`=f3Jj16d37Il%e#?KN%OH)ZVI)l3UUp*Mlc9!O{%J|VpU%?Ry8hiuu-knNimwj5H zS8@tvLE)N|$@o;EW|ez#@_exdgQwIVGPo%9=6b24l6IF@xEyGj-`Hx#@J=)rFy1-Z z>OZM+`d2!*5JP~MdYq9lmqB?Y%WBMm%T56el~ENSCY2g>n@4YuX+yo`&6pmkQ&=60 zjE85dkQ<|}ogOEeO6<;%&m;5rfg!5&0p-P{#*8aPIi)w-)gg_C8A}5c-h!@9S`JLq&O|M0Pt%#XSR^5* zysDk*ki~+I;y@}l;2KPt3qG@M8^&tI(?)NwZsI4Q4{xQ9_fBqZ};L2b?G^JJRASpDI&+m5`IK~vS3f7v1oj^tq***`;^EV}O zD2R=~koGpVY7J_?mDe)LMA%^CffTQ?_=hbDHe2IKa6;$mF;dF78{o1uFIU;^S&K%6 zjI7Naqx_Ldd))7ES2C3}AZHw|VAx@6Xp};xn`c;!(>N%T8M=5*0}MtqnNg8camzr- zX5cJxRN=Bpm8mR{ep%`XC9w5b+6NUc*PsI4M5L0^o(jb|Aa?joHVw_WtZ`5z7xP1c zfuF3MWsO2#^*ih@l5Xyj%M}X$fv5c5qT8CO+Zdaf>vAHp;_7m+<_c<}!^NcKTESVa z@$vPY)*w#p?~ND@vDIKD-)|kLEaJjhNyUCg9VCc?hp2e`*1OfH4n`% zHxs7KY6oI8$bUMp^PXGQu9}bb6}~&LmGjuGzV7zk|FdKu9<>x7yu7`?Gdt+B$X-&I zgAYZb4)4U0#<}|&e;ISlS@};j{`Tg7nKUED;p4X}6XAH4ukQKVC&!+(Tr*hAK zl}@CetQxi8EQM3xZN?=x&*%+$`FYu?KYjFM z7jyLH{)rrfJ`bqq?JoWwkI?dAJ>5%9sa(mZ;7$aXYm^Ru-0ccP&i5$YiHOIY@XLxy zyD!=rj4r(AviAiSeh^3)l<3g`&K}EC3HiHjn~}rpaH|HTV!(v= z=uF!>F$$cUYmfPZ%)7auh}8n_UZA~@|nPxOpD=Jds*9$)f1>F!wC=Z@bYi@SWWsNhR{ zNijC8?hL0L2=Kw6;mw8!W8wtB=wW=9QD@Dn^=P8cqny)(mXN5Hw|AI;kw<3DJl*(L zwO#o_OQvNKvBT?IKHl<~mX}+;4V2j*w7iB%7XK#36Qfi)N*RmgU^!?BS}=Q8i39^; zBG#gnI3Q#IuOH-UgbVUPx)Mx77z+fxNW!3W!oVU&i?6{f1QJRzZ3z+xI?2U1#HMXp zsN@%@VCcfnr0OKET(U{AIu^&;V%h_T@nFJ=-zcK?i0{nAQK>|Oa6fG5n6OZOW7w}S z`l(>KgSG@!8(j;(lV5Ck;DK}Z-+xiD@O!7n3{MfnZBaaC^^|NT;l00yO+05d1$(T{ z*=#kp(HsB_wAnd#plk5jX~na;cwc3f=R#JDsIw<)?@V{JvP#8@vp0{Ao;>O_=_;+& z=_CHIPGKALzP~?EUy5049UWnyLaBwU!8lc!sxdm*z3EJQefd1~)0uRt);Vv`|3zzj zzSHmSaQPdvji)g->|(BiiIuta@S?`U|XbW^}R#=#)6VE)e@Kf47HHENg z%WD_Erh1#vKm!C2v)+aYDlNSDOc$%REGE2_N)ibbNYY=-G>{Gi(97aRDqTdcMG6K) z5WpieC2d4pO2kE$ARAmK0tZ75gI|&NuLUCcE8@ACe8%fuW7JhCv}&p?7SH&qCm4ln z4p1aI&KWPPSofQi6F}E{^`N+HY{Y00xE1TY^1n~*Oz5>%x2syJHNM~WUt2MWTF0uC)y;pg z==2v7IloF%%&+LWXS8?alEI0!&!0IXSIl>@&U_AedHK!VpO|^;iQ%hlYhV1_<7$mIrR}?4dj>aJC3kmQ19B?SF~H?5oHp+m zbbB#etA^G}zb}$__`vs0T&|FReDeDgwQS`My%nYMsJh)TFki6MdRC2_?Yz#B)#~)I zk;2QHww^fh(8ka7-AXBr!&+k1o7@(sqZ%=A&lxOQqg5%h=L}}PvEi4#P^mL$=DVC2 zx$cUZs{Vk^oMzZIo6+l!#Y~p5(^tOs_SaWmcPidDrMG%LJ-D||HomHMGXLEY1qF+J zWgmzm;*b-gM3iu(TuSn=$?Xt{b8#1@mx#As5|SK^=z%EnBtlh{Iwo_ePaF-neQ5qS zI@~w+9sl%78@xKJwZ7rVJ$Jm<<3;*7#1^8f|4MD$b@uGg$Ylo~p4i!LcJuAMb1PSD zTeq%Umi^irpB!0o=zfeJv8KzjFP+-{jY2sd)94I9RWSwq7rxigm5L=>3wm=z&t4Uq zoIY^qnn!l-3R`5BzOhuQt7pgd-Oq!ZP{;Pf#c8#NsY6rDwrs&{=d&$$1MBe1&=t4? zK44WgK{zD#`w)q>7)w#5EvgJgl~v4KwUJ?6y8J$hrzG5q-K1#L6|84eMKpwht*+1T!yGt0|d-?`jB3fy6I9!=h zU|`4YEv{Rp{`}`*k|$3lM-0uc7y*GO<6g)TkhOLI0FU-U62Arip@TKWn{K1=-{^K80Hw6Q?e9ik`!#|m6 zJUL`C4ojzR9F847zVHVNy?)i}>re8U)QZum8xPp2bCB{ zL4$i`rrl^_m@$c@PT(x1+7YHTe)l>WL zK5=qzXl~8=uivq1XZNT!)b-S4@3?!nD?iV{WI5YJbrHbp4)Hv z^k*Nu|M^h3^ZJ!58m~Uz_|AKmzcjex%2##8O!Z{8aQMXiFJJaAW8?oHXYTZJ82?YC&-=d%j&Hs$d=xL_lh_34Q>a1v$ZC zbYV!QU6o+PA*PB142&y3axex^pMsy@V6UOk05uaF);XwQbUc(c<~^D@$^p88fkJ?D zFkk>A%`YVY_eC;|KYiNJ_2?*MKnkB6QMqmUx#gLMLl7(n_+XzXQzjo+4uTInMY+mMFXhH4o9F2Ovg zIedK02zCHN;Ky%TY58vU!(dMP!6C$DnoM{`0IRG{7*HzrhV&9=+UrE`sO%BN zZ!u0S-XNmO|&*UUCoW_S74g6v)5$GxH9gws^$*z6!*%khW<+>_=XZ|USx7SNjBpf zQqjqkDhp}#swWOG=S;G12wEYO<6r+5$-Mtfk5FPA{`mCZLc`?5- zvv18B?#*ab%UXFJMZ$U|Sd1txVrHBYf-KC^YKUuZhmo2Ob>@a)l=v~aJVJO*fzO$M zGuz)EA$~b2gF@6$5g!Iii!d85!gLT0nE|GZL2bNrMl`(+k^2TH3h;vhs?XzS&Ip7BH*FbP*Sc1zO08c%e&p27E8Aze+>Py{W0-1r%Uo-Dn$EAn zPEI6Cn#nV3aSbJ#+E9siaSKL%yqY^dapJmR;yL>(Q<|a>{*-a*&WTu{fczCUGWniH zY1c}H1m>LDJTb@OAfNxk#5qb%9?6@l7Fj)Q4X4i)a>ty)zNYrpXM2_|9vvCE;!e!o z(dqFNbp`u^!M2WTj^DX+>B`};xr0Bdt#9?rYQdf&U)4K` zo%}hu(p)!LZ21KLBB+|GESma=d^2E~2w^6|LrYi*Ir(iKCnoR7L?%jpMz;5)Cf4Qk zDoA^vxpu|6I9B#@42_lh@>pdc&iNoz06YU(W{*Rx^Dm%^%qN0>Ld8)r1iHB(W}yhH z!#c15Y#1BIc43FHlh|qO2iRlSbJ*+HZ?QjOUt-_D*j|>smq&P70`nphaZrfX_-+p7 z|32ow9sd1OzrX$cW*jp~r8SdBI!u{i>8;_Q3%&KWsYQyHS zgEw)P+7S0^8Q;zo24>CH$qP3Q7g*#H4ItYm3b+195%8!n#V%Vz?dI_hN82%v#pLyv zHxizhi&`u**u7a#+d^(~)n|?!m=M74)DLot&0Y^uOR;W?2OaLkpMy6O?8RoI4cL2e zEo#NWALE6UG}!2Z-?Lut9f%eCOC$?n+oRcfa2~!KDv#?Rv1)Svbk!MThXucKOC9XQA6Odpy|M znO5KnJhkW9CZSPW)LS>h`_CRda(A(Dwoe@F4+ZYN_UhA!^{-q!e4o!=-l1dL=*^7| zD5AjFA_Ho>Q_H(mds)Q;!yjRu4b51<2$3XB z{Cz4brtchX8ubj^k@qovc+fbYK7%gcZxeMJ8aDI{Xs}S%O#lAq%nnc1b zF7WT4KY|^(@%^`p&g@4Q=Z9zd_eU?^VXjw!ybx8uV55)e#(vCG)%2aAOMZ99=n2f; zAGxz`Pui0^88+bSzskWl$iY%U6~qM20?T-TUSDTnC@ei!1Xi45#QGExKr5CSDcyh;qK<6XnuKf(lk z^K18|3ufQ^mzMf{1L;_`Tvj;TvHv!1|DArfqow(MOx@o*$6`}E-E@5FIF}GNo|y+o zRdcsa?5H5mRhCUePfsmY(Rgas`%_{@tr6p|MSe~GD(atz|CNPOdN$+aODR3xL;ghL zomfD=F!4e#Kwc@Dyn|>rTs^vuyEwdgX!e%-yXP!<;j^QgSIxc^fKj~m2pO8?D&}_e zAKpE@WYy^7kC%0{IlKxB{a3DF--< zvpxB3zbKzx3*$2%w8$NT+d=xhE%^BRk}PNW@y6t3+YgOV&LuW2!E!}7;foDNfq~N& z;AK;i55wSN=;08w_@h_AVKCI7n;@YF!6KJW0zVL7vhf$l1@z?X70C6=*(1<6gbSrn zEzlh0Ab$s15rT{AbEQ;}v5PLr<1Z%CV3{IQB%T3th9@vs_4yEwqzQ{LZ_(m?!yArQ zHCycs^^+$*d2pph1DVm?SKM}L=k|sc60=$BI<7M&s@>g^^L;v~U!c3FQ{TwklU!IAT~h4-A8)NB#jHfPbxEDpNT|LPf?ay9|+daQiFqI7(2y^CEA2G z(h%`ly~R$F21tjVrM_0D2|tcoOhqcQ%YcjXJ65-+^S4)elmPuFwmKwok`~Efv6j_D z-I-2j#G*4n?Lk?TRP1KtyQZtP^SPf^NNzfU_`+dq@1u4swE6SIYOzVO_)chy-Aoc3QL7h zOvVe$`YTGkD%NfFaBr0x6gX6#qE!Yc^JmbzbShYOrJ+=%#}7U3U|9fXgwFP& z!k(^+c|$HI#2bn&p6LEXgj!diwwp)`YYQtxq{}B01F;Ei;ocMZ83oh~uYq-zLy!lG zRyKJ%mUl0Fe_azsomYd9i3&#RjOvsl85CYR?Oa3)FtFSTS!76w%E|Z3_ANlCO|u=E zFU5frw`sraw0GpYRv?rV{pbU-%DFId4Sui5awsZEB$8wE+6oI2_uM$vX;4Gu3XKYo z%FPbv{)77*Rwb(@3TDR!2lKYfZl&;w@|vWY#U$+J+9ih!F8QUu(`u28u*qY_z_ly0 z$Ab;lC1Jxd_$-es<>g)jgb!eu%eHWzNpi)K|)yO@bor7HHfx7D>&SIz4!$|%{% zVHOdG36=XOG|(vkbS#Nup8>f91)xV z1d`KGq3Q=fC66Hw2m=vZ-v7fp#UJBDVT1`Uk~k3Y&wDZugFvDMr~`SqkiS0)P7z*b z&z(eN&{^OcO=Q4n4{z@2ZM4Zu@AoD;F*cG;kEEy6=p%_8A5Nu) z)05%RWO6h`)$oT*DRMhIhSTZcH2t4x^mQ`Yec;@KU*6Ju{>Ih)Y*fn@w734YwXSj0 z7r^oI!lLUtAGxaApioW@qNb9}HE^+1>YEH|KF!2X8>_$Bmr9MKQuK>_`xi&xc9Nsi zMgF3fo^Uqnxx zhNbS(vZ|uhf26Uh%At|*8&1SNzi!={(aoXI^O%(Tdg8w8Mpm4>VR-0zq&o=(?{lvS z|HLpb7y2Rk)WZ?c%@F6_QG}qy&mFG!3!NL~5$b{m8QM3hOhL`ymZ*a2Hk{X^F zo*h8KfMxOS!5sfg0O7+TR*uU}b4$o}cBb>u)ZwS{Escbs9 zA-);p7RvF|>~$fNS&s z)=hXcP~*A)r+lzFDD@XDS$4~954_1;H!?i5c=494Z;Xt09Cn61Y9*AR0DL98Ax~lj zOnQ>jz6H0-Du@qUS5h~@sbF%qS7au52m=z?{a86;H zon~jSM`r@G#^244mWq^}vmjehsLNgq28D7tWwJm8Z7raHfd}8B>FzC_J3Dsh_03zG zT7L1+kKQ`L{dIIzI%@+jN<>02Qm9Q~wu09O3MVKD2(r9FL`m)QbVlQlQmk}MNa=*q zsq}PqAG`LRCvLoMZckO!n~&^Cq}Fto78dXC>m{~fxXmipRY}yPPpr@oy&j{oI48=*N{5`qNXV1lt7FP zt>n`bKRt63FU<#uz^{;+kDU9wp3dgF9DPSqmZob~{OHy5Zw@Va?7|zrxbV>M&}K?4 z1R$4qrugG~M#k4d_)o*e#uA@WqcUG7lg}GlwQ}k3+67zhi5Gj4vjV1x=TvOmQmI?# z0|-tG5Gq^0tY00}dP81};w?<>f>EPai{zE2ydmuO$pXE`VRPwBpXdu6<}CJeslpoW zdF1Bn&yUwuMZ$gYj}Bi$ek7ExTf*J=>Khjx7+SV`*@cH*dH)HyZ!64?nGUQB*?dFmCVrRo7%WdL`ym$XontcPX{1sqlfCc+ z;?oeu$*mJU!)ybO{4k6*tn=nbA3U$TvdG)8)5|D`_fa!+pQC(;+JO^beE8#e<_LTh zh5)^0_%*NkqOk;i4qP~QiSJIxtNi%01Yg;XqMeJb6m2iAtZHdU{!Dkx{ki7oKK!u*v4>NK!?^+2%|$hFOgM z($a=Pcb6&Za&3-lHcmZOANG&km9!Zh@vDr|-gGP(wXr^T%^{n?8DA2>fv=ZQDQB?C zR~}2W^%yd&dc+OB8&|zd?uGSkkJ@c=do|TnFJyMbL!odLDWXJLx_9z$)LKyFGNs0~ z(S>fi*&Q;|a<$)Nbmd2kP*5mjgYXe3km^VP0y_9YIb+D=RToBUP4X&VEQvt)LN<#t zUu)J%6>@upyulg?Dsey@r6dj*GhDEW+b!y0`UJ0I@O@f(^3oE?xSU)?@-vrFk()-m zD9wq$nIIfqIpje_b3+aGCIMS8dkGkD9>&t`g7M%@U++wC7P3Uapvf(~@dFNr@RBsA zpUh1B+?0ghcuom7m1Bz2>u%_#U1r$5=zR@s@g`JpyaeP>Bq zolC;XAkJQ$3g?aKG=9h@SF3dOWk#iC(2y;L+5jd6V8Hx=z(hi|&R|gMG%h97@i2+a za;3=!kqBl}w3rlPG5~oda7gCU*lu}(IsoNT3zF)<)gimR^pL~Zwes)+EF6zHs{7}4 z_`{`&q@t+EDv?v`ah-~VqUGkQ;$$eV!d;p&$aQ+PMWJLEVb+q(50vgUc85&DGLccj z(n5!J{h3~f1}OMqEr#hlZmFpyHd|YBOxx`Un^?WUdpxqZ$Sb8K_y*g`a+6H0O%&Oe zxmmM;Ak)5ZnL8wwXo3YRQYxL!R2}p{v0(2!kJs)t*-KJJiOf(@S6-w76ed_(#&&$G z5Y{p(fnAUh^Z`0_4mSWe3lIdNxbI#$WsM}ziZV*fL1Z?~wUA7KIfbZvI-ip_rTCvA z)dzxn85&VsPPGR4gUAlQ(;thbM;lA$-Bi+D(zod0>ywT7h4Cwo9Q)my+{s&78b_9W zz2n5Wcz$=o(-XDLvF@lFGo4y_L9tyJR=TxLhx+W=QHnfXePM9v;^R-O?lT+ws&*{m zt^4VVKiK)gm5V)@mIYS~Q^n=&1Ebs|zEbhdtI{n+IyE@FOJzN zHgCFm>AZ2V*66W9U*h;K?)OYJqZBwmGUWPEs|4onK%qWJF-Hs~Hvyq%a7xcANkDeH z%z*gWPE?jx*_>GR=G#ECuJAcK+iX>_x{7d9s3Bi&cc|v$3#w0Y7ax0zo0>mZ+-cD1 zEN;K0kNDNGYu9aG&J7%G#HujO+Jl=PKVNz0`ny&%)X%kS*^%Zx8o!2nk~{s+FMjg) zPhY<8%X)`1>;F0M#SZRk(K`Af#4J6V^Um@kj>cz3{fFoeSg=Ij&^zcBNMAq|0Z}M9 zjBPQN2In5H;P@1L1{b8S@w9^;h|i$K56sk3MS^t?gA2g|7t%4| zNC3>`8Cgz^$}vP>RlxK>1p*eBBSA#28NHWcuFJ|yy5`wsRglfXXaVd@%a$)(lMJcN zq3D`*_ulZkq*|Zl-pu1({;7MRT1H>MN(uAThVJGbKKHD(&SKQzo1uQ2C(zQ_ z<90hefc0M7v}@J5$yucfLwWvHg9}dmv0|rQAqkDbdZKAjpH2Z73GsY}|lT8zw=EZj{}g~P=~ z<@HNqBDq3kkkCRy$bX`{b&pR8z{3swUEArN-YxwqiTa8;jx@mUl~s#ak&vcT2D-bZ zxTL%`6g64ESt;?wyKxR9imWCA@|-9JV5A7MR0BclB+_>*+`Gbi83Xud3I(X{jSdYr zB4zX+sV95{{&XGz=%IkH;sJexA3`*;IcfsRL0S(QSB55?IkcwfQHF7c0Y>m^X^LLf zd}EQ7^aZcj)>xs{CJJKnuDtTl{+;7f_npHsFZ}|mdZae4mA74W@UHE%Y%ZrksuUxtaGJbyYhR1jFNOZxx zt=I3ovbNsl=ovW5+w6qk3vR9O9cC>=h(DW)3x`@F;O^v^C%oq>dgUfgj#P(I(mUD`aeojqs}&lVHYhQ8iB8O-VkJ$iNaw=`a3c%lfn`P&RLq0K z9$c*TQcFmy3gC^zs+7$Qxe;Wh0J0a%1}9$Zvn(oFerWHbzqr4b`@^t8VKxaRZu4PW zDxP|gma?)gm8Qp6U=3M)2X=U)2Rb;r-#?sae9D^#*h zZDQDJSG^%os^oWtbS{A6P_O_l9dmmqDMMjmTx*laUY5(X0H10dNSb^~mCR!+E*1$L z`l)q{$ua-#mZqbv_>mCp)GLKDwW1P=joA_tZz<&pajVsYV|8`wWh#194mIv>{Pt;4 zi24SwH^P8zvJpI@2-SwyGEow1jtRmjqx>AO900`%rk5HjphASHKBMOg$OASu6aobH zP3b}116Iq=PCo4x)?j#oLIlK@tKo~=<+Mo@ECv(?EF6dk%pJhjN0*rP`oJZCUT7@{ z1U&-VMG@(MccX{!RX^jWpZd8{N3R;C42qxchKLzGCVSjqcv6WQ6s+XAX=GYT%{Y=y1s;P(BGy+^)-QwnQQ*e|A~bQfSEC^}+^Y~inN zIdiU1qaw!^{PhR-zjkSgRvMV`1++mWe&(QDsn8LR>M-+9%p#jwx{>?iUVPb+`kv!+ z)l^5mK`9a4`+!)Y(x-2d>lCjvivfY5B%3a8wTDywUTtak8VDR5j`n0;|{ z>M`7)k_+#8P$B}r@S>wKz4E0wP!?2J{*p_1_H5;ek?`)#mQ5#+4k37js}o+NmjX&a z0Pw4vAV*V3dvK%Z2uLX@##Dq8CNONfotO$uVu%DulVVc2q`aiEV*bTr1G~pZMn~y2 zA-iLE;%V;uhlMexHBnl!oZLCDxO8*x#Lm%iPR-n_H-{#6j&P4+O$CMI&aesPp9KV+ zf)I0xvIurz5rCXdVTD*JRtY$~jaVy0!gNDz;Q?$RwiFuyP?RxjBUD=4fn5o;h7Vy! zv1_6F!cEw1*jemu?0)P)>>=z&*b`8L_&Mw~pi?L;l4C1~wS50C7pN-76E2?V%=`wG z1Hh4p)JNW;LEH&qPSMA7!dOZNoH7HQF~e*#|Gt&`O$St-2D;^C3{WqKC;mX#lZL-I zdV?MCflM#{n^vDrp&;q+T^pgEgD9h+BrO>pKiXq>ylAjVHIjvp;iqT;ZS77HkY8Bj4jsZi)4e2n5#t1dKjNjMTwje zhXvtPMM^Ark!lmH#9Gyqo*|2AyA{&1MV5dKVgnosWr4-(gWwyj!voP)6jUj*D_Mg~ zqXiHRMeC8Nd$Hz1f{-zc!3Q_)^%9KH zDC|!s9iF0$vrHaL#M0w*TLmN*LnbdC@_IFt%37uFz;LLi&U9dPZtVB4M$Le$LL{d` zWufvSID?%p++P2lbBH?RW+-WvIOMh`2%WJ53B8v zyTURItJ+duSQ-s57=?pVS;`O|Twf6tRxutIR1`G<9JE88CsU{zoZ9rvzZ04N_78Jv z7o(j{-M{^Ga^|Gm=l8yHH)>2abphz6f-LtN(P5?&Vqz}{E`kMfSwf*%hE%DX*#b)s zxsB;KcBDAL)C5fwW-;WX>Oj8nwgj5-GyDcNa?FKyjDSZ44hJ!KnJdibw$rSDzaVcU zp}Ebo6C@;a8ZzQBGxs)aJ8J=ICH=3uSk6F3?eY!eu8x}EFM;kYCw^yiYpn*D8Sj4d zk+;b!uOED1?V2O<$PX3{HZ-qwQ~r3ow|Cvp4cV|>!!m|hUBkT()_Y8@6a(P>nH?)v zl$Es2+TJ7$R+XfC>N;k(w+8Jl1xv0j%3rxW?nui3;HP`;!DXd@%v&-%^v?In=ICGn1~*xQ?m)3nPQZ5rA$Z~JxE=!WXYl7&;VsL+;HceS8^uh6?tCaRK3Sw=iUM6}j+_2+{ogH_r>mPVB zksPcUU|FNVk>_w1ky7Quf^dkAvoFfYN7ZZ%D?(}pdww1F0Y<`BHewAjnwQ1S=p01j0nV_~Lf zFqGBdT{55(pwdEso!V8g2A+#jF& z1>m8Nb33na^*9}V8&q%wJLGOa3V!2PI&+ZTA}QOo_o0VxJlo$hvFE}~_ug{-O=lk1 zwgrmW0zQLK2E{8y0Tpd?o@jQaoq35MH_pl0D%uB^t^rjTJ8)uaNy&V7kvs5$WZlYt zj%Akg&+cyMGT|nrUNK)+ zX>4ez$}5xSS%YWslDt@Lk$=EyTuZ#Y2dhd@7I20aAbcS|IAf-nTux;ICk=9A zqf!YBoP($WN`6C$Yyh-D=t79u!7Jy~^Z6Nc^7KJCa4tkTpbDUiyB!{+bfWX8PlDxN zM3Fp;&4AAbnHF$9RD^*X6IjPWtQO1@Jp+~nd_~uScPM?SW_-XY)fu=luva(b&^^m- zy!D1zO_*`(2fzIo`!n|XqPepHX4JJhkWUXcr;5sBpk~*tC}&KGtiN}c*%rlqW|Esk zGPzL6Xi0};Zop(UI%z2YgVQQJkzXeX711JvR{|AaeAc<4a;<5WY;a6xG}yE;T{-Ep zLrBh<(ZPB5o_>vUaI=qJ^U+5?dG^YRwpkc%{%CTPO%{*b;dAYZH~WO*H8jz*#wOWI zDF|&<)q?AKt|;xPRFeCc#;OrLCf!R(2i*~;o`oXq;(&$1p1kwsH=enR`|wz$(~hYy z*_L-2YeMmY)qCyba>}6}C`-<_l9YH!5#Wo{9;5mGb(LePDr>sbsj^^D@0M1R4yl70 zN>;=oGvx%J%v_$|r;+KkwA|tfNyU&bYtr0|mz$uJj0~W^9XJclWw~t9IOmph(qjH6 zM*aQWUoTsO zFcH=Ul&S)9@bPswzO!9`Z#ntG8EC}}A~gIyASWOOC)AThMFfj6?aU`^!%AWT{*qxV zHT?;|UyzxG2pc}MkPd-}G)IX%@AD&|E1n8dK!nJnl0qlsKrWCoQVRsAKPZ{%uRwwb2(?IoBk za)R2sa$q2p!KgJG?!M>q&10)Niwg_wtNJK9iPIgm()rT)Lk|0#Sh9toO9?U+2~@zo z4Z+*=?4<$X>ek(RPvet6!-r{WFwfZmTpLs&y>_QbHBLvlTYut>&q|mMERArMc~yCiI&k~f)QyPkOT(AVy65B4xDUb7{4kjk%WXjwNZ!NtzIwn;Y24x`9TwoNO7!Q z9^;SnZHG5&1P@@)=3zI>dSSKt=rsfIDMQRP~o|{QG2-jk> zAIi9Vlj}dhIzRpFp1VK8d_=z09u{|r8_iG>P7$YwdZDCTt&Qf_nH@eW{7`Bpg)115 zkcA>LUZqgd4Dx}%Zs6_{hM7u0U2OrI9cpF(rLc(dy(%E{I1m?_8Z*-mY}cInfaZV- z{eTE>I@}sf1sdmcM-=)$?(+=Ca^18n!*q@wGp<6E>UfMV4?bL7zd z{R4f!ymig4ElDUHBzlRGUVZwBGg>7URcX1aDxGeO+uzK+zCqU9go$>(aLvkHSUQ^^ z4b}taF-aUV>eXQVurH8I(oq$H3n07 z{=|nESyEF_hh!rq=>JwD8m3F%e{fegVIlEW&yf0Xid3Qb(Wv? zFiA6zPQ^<$I0vPh^QfcfM+h4QP<{$&MaY0h%QX;6j<^9xP!u`^lMz*Yf^J5xHHd6N zhoKk05Q|(9ppd`(4(9&Bhk1A88$90m(xE>t>ORm|cn!ChTXb;K6@*Zo?dU(62w7Yn zZM1l79{&C%zj9mY-!S}L%vop&TZS;}H3_In<0`5d0)UH89^Y_uRei>7vH0Zq?osMj zp_s`n72C_*N{zmiQL3rMPCIBU#cOl`3eQS~q%Pazck3Ni@0uGH?XV2>!(?u08Urs;U8Y8DY?B*>*?C_%nRJBO=WtElqvAhw@xi6a4+Zz4y~Fqrlp14O;1$$yqdCL zqO+jrKMwYnHf42ev`n|K_IKDlI)ly)SrDdVieUl(CQ2k~jF|%OpNd4Z6rh>x8lyR+ zrh)+gB`3g3*(++L#svz28sP(D)3P83jRFa(PJ})3e_{RV%)hXH5&QLNgWGKo4gyd7 z`Z?y4Z}eFCcB%Ba=ipCqz3LgM^cncuemAZ-$}l(ILW++-S-o+$VPYQQ9OPX_*M^BV z@DAy0SxVY1J*rR~g^!eMwiL<Cyj_ z1mdX(;@OeV1L9O*YAukB8o?T&XVH5+`tLoEtY<*Q{Y z$}0;K%Z(0O*efMPjemXFgZ0_?8Y3Zs|XHmEc4IUEE$ql7V&ZWuiVvN!~4K#<|b z2|*MP06Uk^(g32JV9|sq<>yKiyo6xPX51-fI)m~`JL#7$j?=9dAHqwW%jUmWuL1~a zSn|YLeXN|B?fH07H8xb)kf-nxzmyBV#vrSc`@Qd~I?_Gy7t)ZO9Kz4fs^wr(0IVQs zqRMHnj{7*~46snxY(OI--RA0$78Wegy;jk`C)51B0y5Ujy=IUf56yL-pP!_N88Ey; zk^#gX=y>>eJ#LFUU^XRE29?DnnJ31C ztB<7{3wPjcvcNTcJM*Aij;z{ZA=8sm;vbpG{Wq7n1BG4<0Pu;#_*g;|XUO!jK(_vd zq}ab>^W4ZBf+!@szH)(BQ2*_-qAO?-WXGI>9E{%y{v`N90Ql8_2n&gd;FI9ZEkrHA ziE_RQ_ySQS@F+PVLR;|1`z*jW%BSQ5ogt)GU}d05AYd=_;#rq~UzS4KdKfrRt$6JM zIszR64dv8*M7@lg&VAtt8Loxw0AxI%Eg8rXbom@|N6uHm+o-50**N*ADZHO&tcmbvpPLdDf`=~QsrCT?>3o=wMhbDvHC}lxHKL%2+8xvA9ZAff8Y! zZcR!l1_h#Etg=xmF+p7tbGEldt&2fKYPlm1>NCp~_ys_$qh*o8+GWdDw1}kuYb=2{ z2{{Dj$aIhaBZ3N|P=Fl}#~6sITh?jpI_yyyR_D8Yar*jK@W=LTJLg^-I@PlDV0UYe*>5^2 zBuJsk@qrlP`Anq7B2to)VA$r8x(p@=jp2?-9FA5CpsGq)sWZ5XamY}iBV4eLJ1Z(< znt`uf#m_P1M}e#{m<(zj=@%FU&^M8ra6o6E41kH9TYTY#7WhY;Dc%U+>778F1#Ll* zQm|cSw$UDF8Vnd6FAm(9+(wu$O_Q5UymtqP8yEjgW6*mT>~<`!4#broVB=79OReEH zvCPBVtC|3W&v0#Tu^G*0)_~2X5q4>W6{3ku4v061>KaSqDmcP&k>#_-nQ0WZ^OT;plUBp;qBALr1 z6|bz)Xrc{+fQxEP;C@Udwx#gaSX#si6J<4Cr@`ol{>Sd-YJ^ts*VaJPEUNSd42|c_ zh;0FNqctw%NKjE~-W`@AGHTv!3SH?ZygW0@eNW{>mNp2`4B<_yDO_lES*ETOR>_4X zm0Uzk1?BhqC~6sZ`>f|z@ARi zD|NaceQ;L(`$x{NxatBEHcmd{j7FXKtB+0omm@FcBuFXujLYhaIwcXTb7$q|PyRe# zZ*k{26)~(GTeR{?>>=aS#|IzB+~eGPKyS3*X72Bz0Mtvcg0_kfg2o`{T!6G7E9OML zHfPF-9v5xR5SiD>uj-|N+|W87vLL59I7BEyXH9cs#AH!t@zH*W?)=aK1HM5xuM{Jq z80ADuSkNwqScRIph2h|7f zPhj*wZ*PU$hU2q3*JfN*GTExd`KHC4s1M97gnmLr-s)nN6N}_( zHTl|v%dJ+D@5{lna;48wRb}z5FA9*BU{PUc;^SZ;7k1!3LD!iANZrZ5Dy!;hoYqKt zNr_Dsl>5Er@*10*t(8J~IVxc6x=$_V4l^bbgRPgV2f;tBmMhdBI~8iR4cx1sqdfF& zrAS5J1pT{AuuE_=_#s{be;MTE>%eCT!Uw7CxsXpK5-#8nfDXxtHmEScD`q)C!?-}Z zfr?Y$n}T<=3HVLg9MK_Jh0aE*KCIiJ6KE;{B9~Pmml+9wDM(Uf%t!%DI50Pi2#gN+ zU334zKHbKd~&AmGGD635^JX_*Ax+PnpkoT0#!@Eqg1NGs2Ww{C?Aaohj z3ksuE3a4d3|C}y->VZzPX+_&eY0Bbg!iDM5R$MMMF66$Q+$|0v4Xgg1!B&*h_qzsU<4wP?ZJNBB@?HEWYY-amZGxs_7 ziQU#33E6w^${viFEw!=5AW@(*5o z?9t!+6haCPV{=xmQl7nImOi7imXx(DuBkb`yeuojT3~*Yf)(6m(Hw|Bi$k8p2B--Q zy$am`7<*9?%}5kHg*pvFTlmhEz?|lFVZb|r&dsF38IX^8(9F%@Ao2YUeUExo0Yibf zsvJc#=6W>e$Wuc{^GYU|c5ome=cjibig`mU0IDJ;^vn@VzdWO%)VNu0wkQimf6txf z{(R220?@Zrgho3n9I=$2`qT#C>#Qk$u7&K~USA#Y+-Tk3cL%rEr>`rw#;mq*b=|#1 zwYzqBz&YiaFVxh=Tylth213Kl1p#?{ku6VVmI;?DMUV`oaA;XW-2JGsD4yv(!hOSy zwD!%ZEM29ts9hI{QLOaEMw!7wB@IE7$YiZp(BxvY5Y$JKb#?7`b9<(q?1=jvA&tM> z%ncL-o#Z35*^=1AsubnV-ql3YN;axeT2eBHn007IE?O$_q+AFP*0hqW-MKwN7!)>; z_8QC>)oY-Nb!MiX#FzH0$=tZOCaq5LxF(dpec~`GQMUEVzj_m`G6x{{vpQ7P@p&< zO9V{|KQe66)-hX7P7oEiZiTzqf zb4D&X*50;m&6#ZWnGlr0^?A(Z)CXLdL5lqjH)8L(hF5UUJ^a9RFBMfRJ4M%yujiKk zVe*M+PN z&TX5!ySkvdnI-7YX20N^Mj3VqFU2moKH?sD=G@(HS5~fX>6l#6ySuf;)p2y#X=1@c z1$GdD$H|f2U2QF)Q1h%S@?#}!&bfho5!CRU9n;%clg)8eDaCk5=)c!9Xi(D zF^5}W9xK>gUzBIvacpF$sbOfKz~wX<<2423O{tc8y8Sdad9oV2%3M}<=_``1uisSO zSL+fIa+Sv8tbHIJ_2DEeQg7<2DAVf=4&TVb;TX%leKKfMtCXomm7!g~uV1gvsuSbm z^);c;vCX#eWCcOmbsK}S@kAvK<>OgB0-GYRPr0v{cj*@a|E~`GpHQI{L6!34;sr~E zfx$upte%!F$aa@tI6A`5rbpK;}3hFf>G2NE+$%EIN;1p0rWrwdFsq^Uf;g z4)m|-QU;x+;RsC}XS`&e(c&!;$xD1iHfb{Mk=0%u0pk&_& zh;?a4I+Ap)USw*y<+&wuSGEQYxS#Rp} z*8~(s!;-JJRyF0}^0wgT1_eeE3@IWdc%ETN;j8Lv)+AAsU zSbt%e&ub-ww5W`m#6>N|iKxp?(I#am(s=doSv}dOw*@Q~Y~Flzop_rwzh~jgSDhD< zgoIWp9rj9Wtw-ZggcCY>Uk}u5(vcI(30Bp$Y!>$invfaWaSIlIG+k^n^bD<9Msz%v z@VCa2Ve<$q84`Fc`Dxbcnp1t<^*bUDVpKffa)#Yjw;@wFaBk;$%~V=pv${@SX{H$(M-&kZVFoiG{=Bm#v+Q(sZ6x@YSkwo0XxrnsX|uZyMfgB!0o z32t~sFwXr$)K0$*84#mj=^O`St)Bw6h=9jwM=Xq2yQ3KBxTtSYO>IQ2$m0s>CUhxKrJ-SH0TlKO zK+E!b;3|BpXdOJah3@OSbKJ0(w-$1@%io^@<1eB^j2FoxhT_{NUm;${i7EB4M`cyDE3Zkofoi7}*5|q7+*DA% zocWLIaID>>Rx^8E|7y^y$DSB+-Z(2SY&T^K7Oz;^(Z0CQVu8v9og601-#YTsUngu< zJuQ{7zSKK0QE;iRD3F_SDM8$u;gWdmW|AIxgSIYInw6K15@#i0J zd}hm0%Bc;>8F@_Sz@=;+`2bU4l8Gb|2Wtq|N+MeGUo7?-#;r22!I+%(vF3F;#;GRB z5X5#9Vzu1@cAi#j)Yu4(Z0ZwSWHW~HSqW5BgS-TG3*LfR%!^f@2_A9|aoxl;@N@S)f@BoB*P1a`qoz5}qdqeA@0pbC}BI z+U2MNELmWTGcTYU0uDt7=i2h3#(*%>YTnkQ0Bsck7D1xkGz;NXNszKgWrr|R6ltoS zR%t+go&G_e3#&#=f>#6`N|7^1<#J;9^K-Ys=Lt?Xf=+DX!{s?m%!AfWOBTPK^9g@P4?iztGSmp-7rTFHC8mnykwoPWH8c`X;HH#tJQLZ`|C(et=$qX&W@91 z*h7##N9w^Pqc*4uOqTSXSjV_d5YO58C)rwd) z@k4AJcVa)rAfQpmM%;3dhQ0Z{*SM>=tzQ_zZYe}a>J0{4DlD@qM8dtd9>Y?DClBrp zNwH1T+|sGd6ryI4(i~S>&R$vo^Kw~Tebcj{pN7~FIqg)L<_Bz2$fMIy|G&ahA2%Z!COz;|1DtL#F z8v2XiOTm8$Ccw%SW8ed&ynMDY$O9GfKT))vcew$T^Tdr&Voc@L(h%vX6CkY;`93w| z?cQHQxH~uJ{AI@e_8@ZjiU(k1SA{6IFP3ic(d{by2 zYBu*XWGnD1B-8tR_#t|WJEr~!bkESms`;YA5Z3jEL&?ejT>1FLeQ&)>KSIYNv%9D6 z0f`*2OyZE}8L|-{OSn4jZzh|~6v^1`$WJs`J&EO%TMjNz&y;|wGtw_LcrTqcg=e*F zmJsKy2aVjRgOman9WFcsIGI9*Jj9(lq>>*}2M^i~s<_(@5$1z0*bmvrS9TbcyH6bO z&|pT$v+5vs{-8#G!10R%F3AC-`+%7}ND-SH#%+oh3$H4A{(#QCPnoyR z>^^W{pDwVUd+316vY+D)nB4m;)bUMu?#VL@l#eFa6^s z!XT$G87?=SChXil-hTZ-3DI~`ablIy)F6zg7?nrCc)e+4<}_P5v+&VHc;=JJ{A1bzu|RSjW!oR7V$T%9UzEty8ToDN+xG)f?5#4eI7R zwQ7Kca!1t}^_&WI6~cEd;(jPP$Q*#Yn=Zg4+7EN?X2HFJw*-F&u;X$hS=gLzlMjUK ztw@19=P@8x9L>|MJSo0Tk?$a|4k&62g&qy#)|hcm)%1l<@>q6Vby9xhg=~ zfB^@(D{2`zA~R_uq);(wQ0UQA#UKe7U_zlJA53qEOk&k~91^MERHW7G7@W8L&<@^q z^YCkJyjvv0!V5JAhw;|~I5xK*-atZ9P)Aae&=Vk~&;|wThu~zUP>hKi?9v?g0n*~Y zT7*z)4OB15<)SNc*UOolE^vOqt%DyQT?3(Aq%-P_s9&cfNrScFmdr4>PP(M=r1P5V z*Iu#P2y6i-!RTN$GC+&U8uF6C&eD0Zj@o+@I0?xGspK(i);HLVd-ZeMP98P7=*gp3 z)0GyT=I#y=tHh0fdk|7cFpzczzeIZcJh%Dn)q}PIISqvnZo@{CMvn`^80`4l#TmC4 zlj$TPr$tT7FGz=D)?P0Nfp8!jWf124I88PXQp_qO*5eYKm0)eSg!|C+XnT)=&v2ORl3qFQ;3fw*tSR zEA;CkSPym%i`{lhZ<8-i8&b*w^*u)@nx+i;%z7$gv4zc|w#JAxV7=eaKK^T@OKkI7>3f;K8Y$6K+cLPUUO{20`myM5 z2hF>DRS%g=tb-I=i;dkB)I7uriZC-+h9bdh+||ObnKfXWtO4BL=Rqg@Nbt4bTTF^< zM4pTxFo^ei%)oJg_l2DXFw*m$Dt?l~Y|9;<#t1YGd5MYwgU~CNMZ}Xh2pVV(nIF6$ z;}VpB%V?V0P2I6#Gu`2VZQVG(Y%9=DB%VX28;0VP^N1R`P(xfn!#(Gg-J5n`P#!Lt&^>*iP70SFH;gmbIx{)}*}+;0zZ zBiwu5GLv@R;^9}G-nOf|r~miQXEwDq-HSE=m+!_nuOhVgZGj zVHGMiDHTImE3?$?uZ`OnXGWVJ$xm4!ympf=kRMHH6b`xQ63PA7Bc)vf!xw+B?YevF z&xE!<_}qi%-oSzviJJ=*lDqn=04fe=<1tF64*50K$a_xKCQ++}TI|lVZwrNW76{c` z11zi_;0(#Bmoc-Xz$>jD@c8s95vQqH6z~<*4|NkJmxL^&Ts#AbEEoTE^zY(|Etc}W@<=!` z+wbpa?`f%Vxm<@@w%s4cp2RKjgkGkwhkCP_3 zaG}+a@N!x?sTh)DN5ox$#QJv*y*N1Q#nz$aW7x#I;Emas6(8bh)ir}vAr`>z6;QfT z$8fWCVC<0b2M=}d9M5Kgg~dfd9i!Ej1&bn+pX&^&yB4y;tBQ)uOeEAIKDDvCCLCVV z)-YFmEz7Bn>KhNS6=z159X7H4^@m5W5hkD9>e1DqcPm}6)B;AQXu*@OO2OQCExQGTD|0Zj)Ci0C;V5>Gtz~p@4FMwDhj|bk0Nd*dyN(7U-G1Y z3JQx7)|TYLhtPebH&Ghwdfsd+GK; z@<-rrA%H?m-)~0&MD&pG2*LLVd7SS5=E(cQ2P`+Zjjw|<7XTyrjMMnK$@Sg$ zcV!n&QKKfe+w|RaveW4O6h>c#bg^%j$c3}L_TWR=DIQa_(96Ll)&cQG*TSu(VGEqe zgIprE0gp_JEXL>{|51^zE-~#zK_-;~uq7kSLt-maT7)0P4|NafiNI9GwBrqFJX zi5_)CdJ)abxmc7LZ(Z7i9&M!bHAwmUV9iau_P_^mx1=T{_pivpxKZkqM;@Z8F!t_@VN z(NY2hY<8MViA6KBUZ-1jr81P=qASrr?cD0d+DH+Kgo84%bg+wI&l7#3u`Oc?`GUi_ z?oGS?gzetiu?oAvWW-}C4`*2wRBLrgg?#4W>cU{8sf(nn0i$aZZ!bA0YO@UI?RPcr zyg@8pCwJOeYBvwkx~F|xEKnT{v9eIPb-_zTBQpKL5|S_&x8scO2T_JLUuGKZ zA>r=Po^s0fK}x~%D8Ct~2~OrUN{K)b`2kMEtv|i~hM!(yy6m0mRLH6`r4qxx(%(^f z=S!%0?(Cax7Dsz0Hueu}*oeQcR2O;6TiV61uIa3(kGyjAz0|R}BjQt!{^K$GeW$x? zDg!1*Vf*v^HOZB8=VG;w{p7|Iqa!a)^!9JuFr$BC?hlD<=A0wD_g$l5OziGs5+B0O zKV2@bq;5q>FR)H%3O#xF6%hYVxsc>VmUgr%@}b120nX%YnNx8_6npCQ9ujY_tG{jd znZ3m3k;(H%#V?;3m0|I^zJt-pn^lY*lEm?+=jZB*&+BhW5OZg|eE?EC;j-su-(FYW zj+1+diTQBZ(+3Ws%P#7#k51mGvRfP=LZ6zKt0`{o-;XZae!*`b_NL%`aY9i^uYyQi z$UXyHZA2t!xl8LDk&Co!0m})t35XLEBkcyF9pDV~1#a>G^61Q^`GYfqojLfwH9kC0 z2Z^7i98Q<`hA$TPez(-`#_sSXQ?jpLGn0(MMxDGspLPMdETg*iI=;fPl4ezU#dz;J zxt3w&>+0Unr~n7*jrNstExfPnSg+84S9)#r8#JTU$zN|CheEx2<%*_t3bmF~t}cH~ zY2lTx){V<;I>lK1T9pdUt}cBIdUJ|bt5?9NI^~MW4HT>46zh^EN~r-B%8Dnbmp#$A z7pwKVzI)wYp7x1lLHWSD7Kc(Ns2tSELURo%*K2=#E6-b#hII;Ftx~P+oRD)+x_e{w zZDvx z>oh9$@*22GrBSXfc@ui8m2XrmmquM)xd!^FRI3w&T&9(AAP+X5RzO{uH^DFa^Ma2- z3kD5X3Wk-40c2@@dzKW?Mp7aM*mr(U3_qlWGjj}aS^rx)0l32dvDfs;Gri6n z2}c?n#J(iSq%~)RvauP!!GL9o9GXZ9~)|ADJ0I&hCC;dgy&NCJ@Y3Kf(^{i{-a z_o5M8RT*>poG0I|Ylz$BoR*^;QM(E#g>*!F;4@2hM;r>BhJ(*GCClh2TeO?zwJg;g zvq8I#v_`EehmNwxy5u@I-4(McARLjjq3$q@E!L?(?_E(F&8wl>WYnT!G(2UEcBw2p z)e*IT*;PkEGjwN3ORPf)qjiY?K=K|yA@QoXs}G*hclVVxS4 zlB%;Ld>+He5nolLN+CX*3Q=FlxEwEbiAz--N(J>bDJWy^kQ%-^z%dg?o4CzPj8ZGH_k3nZ@c@EPiJuZXzyr(Ks zBX3HDuRn?H4pUHhZGqk zS|G#*YHgz(60qjHWdq^yz`U38K_F^)<;eh4N7y+*tTDVY0pRA6aU=i+cTjhbiXxqn zlpL^Kq|ku*n3Mbl3!RlGa2YSRsR5frt*bD&f1LZ(j=>tvZeh)Go2-6#WKC)dPEmH- zMExAB=aZ)oG(@wRR9Hz4Ucc_*q1hItCZecwVCz&x!kkw3u9|ssYi0p_&XBpt-`2X} zy(MDqIJW*;g*Tci0So&&|GxspQ(s^`%iGDoA~3_f^-<>_WfY21t&g;WTbmqmy7|Ti z_w)M#X{TCUcg#ZTEKE>SLQOpWteBe+KT?o(XKJ{!b(O)rygB7Dw5?cRR6l|3^och- z_ezjej_xh&b2k&)HjNgS>26jP@s6VVO7OBtteWEjt-g7BV#B|+8iv;uyHu?*4<)x7T zl4dF8luTFo28h6e&+zm!`OmP;1@!_fI+%B>I6#4h+nS<TAE4hD0032fK{^2apQWwScPZ~rAD94d>>WKi=Z znMAlqO?&hL5jN9(4tK05uAIpIEQP6(qJhH%q9RBpL2MIlvD`t z(1vJvkh966vX1U!cPUf$l&i>MR;yWK?mi=LDA|8~?%p<~Pe}y@n@mh9d4HfRP_9}T z>+=f5Htzy!?WXdTEot7XGa5`r@fR-@3kHDYnmgm5L9h4wni*Lr5IeP|KCYC@o+r~~ z>15=}^*F}J)G`_;pdwL;QpJ#RtACN&=}8;agem|&rUiVwxQ->1m_31QVHP#oaDpnV zKB!;P;vsbX_(ApJhT?gimnvJI6TeA}$Wm)JZWouI%W?)bP<+gxr=3M5+Z2M%zae&4 z2bDDjVBaBFb~*JzGG(bOv{I}J>Il{>HL|Q$)map*MOp-_S31l2*Fi@}ZFGT**_9(v&B%-4!peatGQ2zQp=K2tx4qX@aP7+BteDN(kJ1|K@?=A^afki0ng zp`_IaH;^BBYIP#hGpsq-ZWDC%A6jh{{jIa&eU-LiyESD|%T+u9mLFZZDa%9NeO0ht zt1`qYyF+`$qbUFb_SGKfvo5Zg^=cFL%TueGFI{x$jHHg$Ql3@)i-zrht>W7zzV|9N zeBID(mpxnV79U`0XqV-K!#c&F@3KE(zlx`#%83!Oh;{ICC>=qm)U-UE=$ju3Dg=UL>~)LV#KTl^Ld4^7_}g90UZYo6 zmZ|G77{cAdA3lpwM}Kytwo*?qY=x5J6qXPZKRhC%g2_3>*NDy4{m#8VdS8s(U6!pB zw#$A!^vK4$XD0QEwr`*L+b8Xezb@fANBr>RwR4AVy!Zv!V07UBP*GY~4UY%peG1#|#4kf;$#r%0qeox5YehTp=U zu5B*z@Wbz1xcza3i&AP8T^EUWJ-$1}c?DyM^I`Ft6%WWs!7O`kjwz}!F8S?#Rs5bi zuoK0(ueemFjASXIto0YW7mQTRfCOQ^$x!m%qoOB?eGsygI}69hucbu2gkvtyUvY zq)AS%8^_A-JMZE}kN~9WrN-6W>aMR?oBFEUhewI~dept*Kf5*Er|eNX@#v1Z-e4~T zD&j|tvY9=a?gx9d-IFUd>#@p9p=h()=dsvaxvyZBW!UD^H^{rF*|3Z503YyHh!qS% zBwlGcK;URTC2<3@8PEbmgbIT#DZE0MgsO;U9Jm8gdSHgpobu^vNM=uhLX4x#B#0%1 z+yGQoUdk8%Hx7hy$pA?skBD4>xscl?Wd!dkC5Mnuxyz$5*Jvopbwyj--gR@nIa<1Y zd|`J+<%0a5a6CNV!(C7^&$O#l*W^^3oQ-38!AwC^2f#F71}h@~YLEh_upwTHcW4Ei z(W!ISXnEo!;Z4IVeJ(yL9)~I_!NSou0couHvr@TC396ZF#|lp(bQn|M8>_tRe1(jV zlQM_}v?mw0d?JpDwQKhkhfOMQJ93rQN)EfWB3P(Y`qVS-6EDLq3KfM_vcjJaiBH$x zhnHLesS4UlNVSeXb%%+EAX)GY)dZT{9tg7q=u56C1%AIvPk*NcKFm_$oAAty621mng((-B6=b(8ML2G# z2@Lrdz`21$kX9qe2H0rH@{4Y2$-y<04(0@fo8$!sK#2*UvHmyx^1K4k&D40HN~2*R$s96_;AcylDx{zNV9;uC zH%Op^`J0~pBBMd!(Lkb2Sgt4x-S@yAaewVA+oJ>NOhutyRVa5G%Yg`$L5ItPX$U>X z>l`<}jOm_priv}aje%z|?!}uOI-cin{L}?1g5TeKmya!(Zx-jNSOb5{br+3udWIQTc@$rwzUSzQAq`_-$B$fh3vUqH zOg61=bm8z_D;b_q?l|1j(SrLcX0F-3Th0i~%DZMST@Jlq%;u`pg~TJK}MlmZA)0V@lq>AGGq)ABVzWQ@l=K4MMs2{`$)=#LtmgIfJUA9K5M! zS)@XiiO5VWuPC=$eVp|<+^W+nTe7e*6^LLn-WVhd8djNYQR-RS6SPmKHCxO$StfVr zu>hx&>ns6G?~s>~xY=rwsW=b)3Ta^kWmQ%#X!RHerg+S4kY}q@de%%gM0idp}tYz z?32kOHI2lg9I0-)`zOb)NQFs`@aO~upFH``?ZoEwr+zX)oVT$*R97j^510R&#-j&i zK~h+c-SGUlj`u2)<^AH$4ao{aOvBLqg1*RK`hYml>SXutyX~XacvZS^N!FVvo8>F5 z=gUg##_#@ly*>hvSD0W=>YG9)!30WDVuuqdOjWg!g~_I&OMY5bg73s1QP|Of8Kxt)&HuW%u)K+!-P`2G}k5-hx94iW@=QvYP2hq&!kRi7MqW1PdM3Xej zXYcO+$4N$8d}&_6ikUBZodL&1(C;M3An>d2Cz6pSae5~GMly*08T}F&K>inE-tdCt zEX3uY6{)@;3#Ih&Ae!Wf^JdQhCxhjGoMT7-x*=@qmd;FdeSC7MtfBSy?;b2G%$>7> zfatr94U?Cx6n}EoJQ~&iF_Glh+Q}cSk_FdHUbOmAV$7q|sZE?&?NkTl*S(&#)~1D0 z?9SEicf_l_X2N7Vy-obIS?y%gg)2(DD+hwfaz`fngQ?a!e1Hg;pXzY7V^)*+!Mrk) zO?CwXMRNiHQpSjH58NCImCm?x@c7wtX>aoX$7H@b zD_1L{_KK3At3i-)Y^Sf4$9np+kmm^~L2ndjrL|lRYq?&U=|0HUn*+Y6MFqd&Jl2V?Rx6?UcF zjkNC1CJ6{x$pn)|65jpNKg0oO6ix;@E~rCiPN0@x#t606&`D@Ni*$f45Et-C90!du z-8ln6Yrzb32dx;cnR-W`QG^?r$+H-#J2av;+K8wui1vZ#JMzAQDW38@r5#-{7)dFV z4BsBlj$QuQ33-Ao5<;#>v2~Vc*}NC{iO!-V1H;^SA&MO?Khv-wBsD>l7Ym4XzG8c21nnuT4k`qR32m7Wg= zfNh<+qD|vuOM~meo>bY8KM8n114YHd8y{Ffx|L=H2M)K|Kx8iK@DW<)z&tOlvxYMg zA&*p;Y-G76UQm_!~C6oN5?ed>h*dZ9{PMO{n_SvuJZSmLG$c>ZeY!TFe7H3VdhLTESJMo96!MC znPHfr$$uV1qx$p_4NZh*2m@YIk!8phH-{4{nj}&Ul%HE{uS^B~eh*@S?Li)EoL7#( zY!n5p;!?#9x(}q=N|0?=fxQ6qONiBUA={=T<$&72J0`)-AnH5o1@g`V@(zhOl&mUA zI>fv3Ez&zOBuu>|!xj`+qVtg`jIsYG}nA*he^8@Fp}jL z8rozCdcUMo<~s&KLq;!jGtzH^+bQ@O^ISVG7Qx9>Wl_*wZf-G|eG8S@%;~Q`=?}C; zN^AXX*ef7&HwYnvVwPzRy}}o?TMR7k0N4Ox%{tD?U@5nt9+TZ zyhXtbKxWX1$+w9BiANhfrI)KXpT`P*&t0XhWbc|cX2mMqu0)skyYJ4GQ8b~}$*e;= zPCbrm{oy$StzER2i-pDG%We(J4J@V0;9vN7zbV9}Rky$WbeE4H7PBsV*A|TU+k!u0 z4{xlfOvkI5qwhWcSsUvTN8&i|(p~nfsZG75gY{`!agbb#upx{bSMUUVu(tfMv4$$f z&0&Rswmnz>e7LxrRI1G;C$5n+FTM+fcd8b8e`7;81t>3r}2EW(X?P zw85SX&GJUMdpoUMZ=1f^WZ~g4MEp@xZTC`#mV{E3B_>1S!Jo|$tmQT{J(uaX8o^et zm0=1})xaqs>(%w8u(?+pE-{Ce6CKUzKDGXzm_A)8zV0YbLNSjpZ|`lg%NUb3RbJFj zbJhxR%x2A68eOqjgx!kCySDo%PD3)qMU$V(s zwbiB8CJTF#?%J|)9`Ea^&y^Z5twBA0gi9-ivs$aRtQb~ov|T*;SSJx#5}jAXGbuaE z;;nNk8s&1<7Aa4LLW0o@D8R_?d87D+!cC8WuNEN?p%o-)iXh_=0p^cs2nRtc1ypW{ z+@^KQ>7KAd1EnCJnGeJWdu4KmQ_qGn9U{_IOn!-lFzw4P z9XZ|x?&WP87dd>j(Xh{7*o@upcEwIT603E&qq3H0J#|S-#8e%P95}asa87%u_u6Z& z79SSh5`X{3OKVqEmQU=w_Rc?l_{*2x|K&!{#`0}Sf0s;9JN zgeIT2Y2yazaiE73fcP=VA}=k*DKYDZX9lrec{T!HSB$|zhBRAvM3O$1KY`Zm6yHLo z2Y@C;=1Pe@V371oq5I3*nUIAaS<>Zyv?^>&(AjdV2$#h?SGR9?zCtBFwk@f${X*^P zwzp{XDs6F$nO9WD{pq3$J=&LNe^Has(GWXm)&J~64=QL)D#>p@;$oFH49K72SQS^9 zI>7f?%|@)}6226-E38UEsUlSaI$y^Xm$ZN#1i%iV1fRiGOYGPhvq0QBqhj5)-Ftgl zeM1CBYUCcXLZQ@@ENRETh*FitU9+=JQo$?1`<9+@Sw+B#H7!anR|2q!+N4=MH{ym0 zLXMWB{dWqq`ihbB0l`saat3P=tnK?miOOwo=dZ+UgPAfsE}=vfx8 zgBqiJ?p2;PX+sffO>IfX>sBp*Hk&F&m9X583|jS5?nkpH`IFq zT@FER26|EzEERvEm`AS$#EOc77T9$?U+`+dJFq<}#wxJ|NG?e$1VwC29{{c87ZM~W z=k;eKgOH3U1t^8QKTV1n3PLy}k{yUR^H3;g6g2BV51_Eah~KOH$g=}xa7iTOEh*&G zSknZJ2rdw;A$?%ULjCeS9iS#J+y(<28p%Q_r4iZF0iz}9mnwz_^O6qj;evqFKvNKx z1i|El+b9^Bnp2(KNHa`gpxsmBYfj@FVz3c4>hKsqx1**k)Yp6nQCCG2c>Xo z{OO@#WF*ieAu2sWxI*^twY3_3WoJO>(V5r%YfdE~a+jn|^tRQ^6rD4T(Eu10^m3V= zw+8*Pvcga_3-O3eLs$INX|)C2cGu*c4W9bmjH-%1cOQfW%487xD!y?2MDOyaG?$c? zG|bVfJk;XeA*&)=vT@|g-G{|jFK$fQT}26(Bg)$iI+x1;{#%T&SdM-4H%$3rp@G#Z z34)0UCXHI~9=hPe$^8db>wFcg1|M1CG8pU)o83LySFztz;)~ohxg*W^Z<^&=@s>~e zStG#srPHaj+3StXjY0IMR_V5>_10ivNF`Vpx3Z9MWHo|4ZeTt&nuNDmj|p5-X$NdX z?2MXs%UO%ds9<90s=6ZZ<%QiYGj@?}PqW!e=zJ{|58DTCE)ao~&0fOPAt_i)XOVd+P6%I%q~zkbGy1)= zyP~+mRaV;EbxEZ)Xm@ygR$Go?D%yujR2BTTqcIy}Hd?-uIgNT#i=bhjUo?8>=NZN- zzHsr05Tnv_oPo>Q&83i}G`M8-`1_*^TDuP3v^d$7v^l}BuCu#Bic|z5ZPoHrnNCgm zgL)&QrZE7tSL@}ux5b-Qty#NT6t65AlU;$Y>?q3JuEo<1s12hMpLnZN*$m<6;MV74 zsAvuE6#Rk-g348ZSOB5cB+by6i*O1$vv@0xQlJ?-;DJy)Dc4#AKV<)77Qki#uoS`m zSXWXZFEnkMr5jNb2Pul@fvFhu2DH0{szPw9Ry{;5!V-u0(8~ZPsjDC*#WzW+rGrQ% zC6D+Nx(W z=+p-bE(X2&rh>a53-IZJS0FFy1E_WXw}O8cr)DGJ0^qHy8rN9FvyDv%)MDgJn zsR0T=AY<@ZE$EYEsGaVV=Wo-Oof(G&-i3xNNqMBN3W9f4;=YK>y1ze}?=)Q+6nLfd zy`^cR^qp`^)Aup;x%BJ?>0+q`?gIE#3OV7?QF3Y&5`B687T~Y+{bxR*Ggt}Yct{}t zy-NnH5J`Ngg`D~@ecpd2c3n^T^Zk*30{W5&xo2uyBCr3hrg`P^cIxT&72}%#>*?f{ zSiRd-OrBp{d$O~d;54dSJ`?r#lM^(=>J8vN#3z>ZNvV@>VfETO9U zlb?ZO5=OeS+^%J|TjA&k{M%`_S{dzO$X?uGW3+ZPdj!U{Gi$Ys-6r)s`LFuwy1&*{ z)&I2~hWu-NO)dH``R6TJwqh_o&w;YfGS`c(K>*_DtSqh0qS8V{R9A zm0oAD^$fdAYW3-YEh8S+K)^@7Ki+!kvX14;J7i<69@eComm@TT-5KB`jB4pnyAt1!T1IB`ef)*2!{qCU0TZCz88ZZ_Nc})PRBhxxHT8fAt zo_X56ln6;F$Vk;VVU2+j6U_esS86G!3mK%0 z!03oepsxmWbvhV8YmJ^Rgac>cR%xVEBSfn2RTbz3`VQjcQnp8IN_)!()BfS7 z5-v>FU}PahcL>=+UxsW7pq!QZ;f~=mTn~w5 z2&QD}Kx&drpLG4l0d$f*{A=v|iv!V^X~}G}F)o;G4K1Adb+=BX3sv+#CtmVnQt5P* zSR$NQ3B823Jcfij)xtAAw2rL z!6d(0iDLrb&TrTptYrfp?DxB}zL1fLX37(~WQ1E8>;!-rL2t2VOB@ZX!J-s@Y4Jpp zx|supaFKDO&Qq94q^kRL?2^SzJnM`>`M;3A$Q^pJy2xvAnr)8#Rwpc3@O(JpcDn)a z(Rr=*c-ms3)U?%Dm>pXhO_2ZAw^Vk|xKy0TEiL!?6u1H`?IwWrGDXa!5A)$)uGyMf z=Qo%`u}&xds?TUDjCHx#m;DA)FxutdbNwt+G{f&Li8*a7)J`R2dZofu5?*kH*M>2j zu}~n<`IoL(VIbc1r>Yo;i(XRKvHsAtrb{v?&0F) zOA9@|&@q=|?dN+xUDEH7&UN_to27Jy%Q?Yr1aGs{DH$8 z7V8~Oe(F!99{3Lpi9ff>)3gm@^y?shbR{5G?*vm+EbS+PHK{Q|kggD!wWn6+gJ9bHPh* zIJ$c-*!KX2-&$%1$%e5fI_9gywj7W+O_#)eG!&RMJT#1r29n8uFO?ESg1Y7(_s_a| zUrPfCP-}Wk1PU9Gir%*K4?gkix%J|9T=!CA)4BKW7QY@Y#eQsAY#}4se?{z3kN3$X z<>fopUrwtmf=0WpAovvi#{89PdninPrmxzb58&_X(@R-AyEx#+}^OuxBk;Ric6@`Q0t;=t?`bAHm zzAd@TxM2UY_g`|wqU8dFpy6*o9KtJ?56!}ti1+lhU=_k3t}N$IIdPlGV>HASx^(km zvrv?X*bE+?yK3%2m~Oy)+<$tJqMBL?)}|!|=YjTlKST}WW575hM4)2hl(2w_N6#H5 zKfjYie*wBznlr>WVZWN+d**Gks2xLIFiE1E*?z-CVDv`7yAp&}rc@F=XXX_m$UyX< zF9u8rAQZIolz2U@lf;)721MskCn*gB&P(4!qVFLoJtfv&v~J5GeRP$hWxxUg^_;`6)gvEg`34$=^Zsb#dmXtw+r9c;@m=3=2n*D0LX_4AIsxi7?7rB1hC zC}Zlh{{Dj(AH8@qlU+u*t@tMK8Ao(@P3bIMe>9TKJhSfl4L&Gy`gG6=NOC8M*(>kS za?E2_vsw%j*uY^dtz`hm5ZHu_(3mU{w{8t7Czpy@sNnpZ@dT;funoKN(;erWygAy{ z9?q1nTzv@_gupvMtkrXF$lKvmRoU45kAAY3(KA{F4iP#Gre3M_DWmGSwae`#*rm@0 zn_9a2ODoEh5v3(FcVuqYj-NdKj`;SU^e(~_7;HF@0_@cBtFOKF(FbmO;n7*MORmu* z(+wS^$uUa12Xfiy35q?0D75WpqipF*IQ0-a&%fgcB?ctMb; zkSPPRh+b&AQJ5j34ZVSYwGR1NFwx*jD0L$;%3D%kg85P&$VVbM-~~W*Q&yDe%kwJ3 z6n8;{mqOo0jsPbGG*rmD;ZsWToWkhjuQJ$oSp1_}WiD#+0**h~rTAFv6@pgaa--&~IXRK?d0o|IY2XR6f;Yv_a zJ>Wr@VL-lDU~Zl?fQ?L=vkWTqh+a`lfPCJm1iG+PNb%-O_W~S7$XBv?g#^TPE2Ktx|eL)v>6*3EC%E%P%f0< zY&Th5u2fl5#_n==B!se>=7ih^Aj1(CZNO}t9cOW)QT$L${`E7N4l2*lhD4?uM6TJ$ zC!zFgIa|`|DPrAi!#n^_;9ue)yf=66cmMLz8XoJtq}d~9BiOH80t?X7jMX{c>V||E zmA#ESgwqN(2*LBX!mkg~CmgFS7qxkpC)_d{6xn`BSI2@asRXPiJ_8R0esvt6Wd+#Zt0o(5yI1^;q1D0)hvqj+a zcCsj5X~1L(oMnHFWCv03=IH|Ym()8zCkw$BK20T%eH--C$Tj907|k!3R1vTx@O#8i90W|Q42D4oG3ZqdOcmxINCFZkK&}MSP_jwdVdP;arYQmF z0ErDCFK`y#3WdbK#O}xL7e6OD){8^+*a6Ne6jt>p`n)<)>+0UVJb^`3R;S(&C`yIG zY0%7DON8>O#?L8FU|fY7gXplfGglitWY*AW|>zU>ChLR^yGW{^@Ey zNyT_KPs_PfA#d^9;%hFtVooR^2Ej%~;yi6xtkAi*u4e)zdLHHxSLo(c+no@N%rRuy zh=EiP-ai9R|6Du@wYxlEkII0)x4qzsg2%CWFqiPSfiELNc|Jr5vG#NZ<;0>OOL)Fh z2H|KPdM>{XrR+yogj2i$O)^ZSfy`UdVMfp>`H^AL^E806Cy=8SO&_8UFW~Lxzfy|d zoDwNWuE3~}BMtbO5uJ<7gzb!9-=2cqmtoT(TwTdw4i-KqdiA>9o*FOAZ~l zyaod+Hv~SyRY63eu*D?=BRG>Y1pGxWD8>Ng7|=lZa4bMpmfB-f5W1u@LGT;}f)cr+ zU`Eh@5Us)s4Dm9FUZuN~xg1_+TigA!hL89EV(Df8B*mFxcc{3nBN145*kG2!rVD>u zJYbxqizu9YZAX7(sd%BzRpvHn{jRXxXtrnDyW5BH(t|2et(4!gClRO_P4>x)L-&_<*UQwXRd%YtocqExT9%`z&!4 z_AYR;%*wUfWJWLut616)sdpJHGTA^jupkS@coR^%ZPri~p_PFmP%k%BK#;j!uE1!V zi#uj`6Be7B;7JDjPqZ*o4cK}+ZE()*7B>@?r&)&(3|QMamy2&1xGwJZ80{{^Lz~kO z@CZYyWDsd^`ymRySiz7Dz3!l@l>VvCW@+1w&A>dHFo&6OSmN%uu|o6kjtrra;{e%z zEz8^3z~Ib9>uw)%$u@LDl z3J?2Pjg!wdRF$fnWeP}`cvgI?kV-ac0Qn6zd>ZH44YLUytpa|k!L8t^!anb76ah4o zv>PI-hzh$jNVSp{Ij>^nCCuI8QFBwVE~9Vmo>}pBnW@?}m-hH&P#O&YWIS?%po%F< zMUz@fsSjH4;s#rbQlnHatn6;>h|Rdls8g-|@Q+Z;O--4>#jXTqKoK-}y2s;2ha=5v z=vqG)R3~~|`rQ10$>@r1TM)#Qq>RN$yc?Tc&>$Zp&nwVCgcDS0 z!bl+gG}KO^Xg^fBK^Pwek^%+mJijV~(1hyWC5)8%(x=REj^_|F3efBEi#^GZtkXJ?x>j_upGq9Ln1N9A!u9=Yn0 zCr3vw*}iglS>@tN;=60=%kG~%U2t!v>FUWI?6URqFy+r*+jri91Mdx0l-2d`d1bE? zX7$Fhy4ourefUR5MuxFFDvM)P)pOy;k=XF*zsSevj|)uT5$J$AmV@y7V37ka0*E4j z0zxYjj5nwWMUzM`$x4-1LG!CPym2>TLE}sD^G1G>acJ8{{g55Y5!E*n+)%MPUrnXbg69$>=>5fa7yf z4J+0W2fqCW%}#Ee+)Ql@q-+kYg=EQJtR3pGSwqz`7k%>!OEk8wn1f~6DL&KT1h5)# zmnopjj?PXS*j4%LlIQBpT0P}pCvV1{K6UEU&xrfPYV4WGp8Q-7pMG6FCf^5gS_}Eq z1ykA_)UriC27U?rPwoOi`A?{V4T4hSaxW1Fi37Q3#0QB(=)UCp@&Ze|cT%juo}Lu5 zlNX%%3aTJ?nwGyv^%T@X%LY)YdX8inFfdJA(AhczP!GdW3s1#mM;0Ku|L10KMJIz<;i{(KtkQ35YRWff% zWD5ApNEAt;W_l#)0}>+A90Q3+LJn;kkoEw21lpN^Z4ps`G?KioJf!1HRf|u&dH8zq zJMp^}{&OOx<+at2;fKiugS@zCA*O8YxH#wop`hcST3q{bzX#xo)J}093FaThk~(M4msulw_}JBIwBuu0)m$pgz4Zo2j3ET3#}RI|X0q8n_^ z6qwQ0oMRRQqya*ei(nk;F=PL@b>_Uta8sKXsv7}XD~9(CnriC?UlBj<<_||(1`CTY z#r8U@bALlfYqC^gJ9a!ZjNv?AQPy_p&tHaZhoZ>c7Ur0)V0K=ct~u=hV4D_=khW=K zDo!X)jklG8+w{rJ8!h(ExY0mRijW=LoF>i<)!tl5JEKB$O+p^gOOQwO1=OoJR&Yfj8__T9gaDe8R)maQCA?qp(&90bP?8(y~d5>6JXf{KYQA1e60z@`|q-I_zjuLj+ zKrnk~->HW!{Mzw3{rB!E0hdzT%t4e1-GwP#b>YtLJMX%|%PUM=*Pem-24x2O=Pffw zBCj;)A(ADjiAF$lHwlKK!kI0jxBM>4N#v~GwyqvXSw<=OmUB!-!3>p<5IM&nV0A%N zBe4Uh)ssqA7DFyTC3fDS?s?&8Rnu&<;hdu;LCHD;{{%?_|bFE{P>QFe>ZQq_3l-bn}+6&7L#}%&aOD& zk;y5D&Rm%B>tx}TiB>=Ui#l&S&SO(Gfv!y2u4>~W|(Ix^OFxpB;hN*luJ$km%L#ENB zE$Q)wD76Z=4EH<4G3?2uhc_gzSJc^Dd(RQ?VqafI6w9=h zFyu~f&3E3p+BkDYwJGf_jFm1y{7_!-lDJ7eN$&-nXE8*ge^BrzOasvZjgl;u{DDCP zI50(jkme;xL@9PoqCt>(Mgf(Tm5jQ;Mxl~yAecrzF+`cjh6~Qiy#3uD05OSPkTnHX z7(iVGSxiZ64%ufAwWlQ+DqV{Llh9~VyChJ7&q9PO!d5~Q1%5}#=oG_G?EE<$^M0D}&z<2kF%d$Rd(P1Cg+Z0O!(}&yMs80F8?d&^ zmrPWMlMmr|(OiAe+O^`n^X6KC8R7EOq0!3nu6AcQY}2-m(JQF@(Sq)L=IeGEXQqF)8jAfiPKX{m-3PJRf#Vz6E9`WUj7T zbMw|EJ1fEhqm4S;*+m!F+SI221tg(*(2uh=mg zGvJ*G65k1#>y#V{Ni{l64o0nSJ+;wOR;q-g#5rECMy)k!nma6g*)0=^>e{%GB z+e2oLT0!WohFCOR!+W#~cI)e%c1mM_?Y+Yr zEsw!2wbtt5!8qqH<@%g7W5B`jrd8o;O>ts!U%R8$rq}s7*us}_9xrFpwguAy4|O$k z;$ry&^fAfD)&hQ)odq{Tw9os1d(1&7ZUR&r5ZRCq4~9&L`3s;>zbV~A(n1m3asGwa zl^A zhrfJjUNH>{upt~Oj#Q`&Ty1Mr|M&}7{3&dFfyZFa-H)w(U;MN9kKew1%}_(V{l}0~ z*M|?@6%;JSlaDFGO*5?Qg7dvrK{qzeu&#)K^Eu5Xv-Rcj-Pb(ciFxkU@Z^PS|M-WW zZ3uH}wHyo7`ipi$7IK^CGE9C&q@t*Dfst1PJ1eqoA3+bg?Ustmh&gJuI5hj5icnCM zG8(Ix8c*c6$rNkI)zg8#>T+|yYg%dG8P3sJeq@Va5laaRqh|chLc!p)mDiR7T7e#- z4IIR(4 z0OdSDN!31C)77d9a*URCG$%H!zb&M$ve}Y++rq7s2jWJdKAbthT4>s3j%8FlXA|2s zHe4ptGXPi4ssw>&)Gh-+T`7592WRh!W=&S3%FJ5gF{{~ZQW`*!aC+;?%UTrzV;pU4 z@H!M8!7jdhT|}rOZ{CdLstUhcypfL3jRkCh3-Z}(!J;q<8P>Zb@7KK`UH>!g4kBcL ze@%toOVRfzQ5|gH;Iu&KDiDqT|M6#P-{hlB3l}vK%?*o_iP=GWZrm0O+VD&5!Q4X} zdjRE{A7FUQ18$PXvzOL5ryrvpT_A&V* zRA=u@+t+XcKBBw&Z;lGo1tF-bc@@kjQ{aT!XQhzgHxn!u69xMLDf}_P0LxwZkQrz z+O>S{iL=`O5BkuJ3!1;Zt9b!T?~JB}pG?+Cv->l+r5rtFY`RbULM)k@RhY8>=IE>G zX@r@cn$Yi$_^DwdNcVeR^0Up5FhBNsu0?QLMAdJ3{MKY-ZU zlRud6U;ss_;>ccY4QIc?AeE?o?7C!*?0NBXW+~WIBz&hXqbOb(FKveDxuhM&0UhNtF@VC_#nef>?3KX&sCr*5_A#bUkHs>gn*w~)18 z1K^+GCp&NZ(e9n?-7>Nd(~b_PXqkA`k6t-??#}iOjLdzZQ1UaD^_C#g@70`-K(sH{SHb=qT3w_+wbx{LvY?`RE7W*TdgQ@3*yX zYxzU{B-YWsbN>Z5?Ge9{*QDGwZ1DtY+OhlS%e^vPXK}Q1aLt0tZ|lttML3VnnoVbR zJ{>h|s9$>f%CJ(aRfbKbv))Z%)1zUd@jw56B%;u26+irAj2Hn~47krH;*Ij(0Ur{e zZbmtv1}uQQ;=K@qb7R2+1?60UHDge}*USs!iWpc`^_q2d~D6g%!cncBB%CR7Y1Lk%-IOxiPCBA6T}anP_ZW^oB9_@%L=+htiJYkk|rA zhFBvvCE<`n^hkmXaY@w0Gu1=tHYMxMl85OTWMV<{h+4Eiw0YCtANg`LVQi)p<$=s}fEv26PbMpd_-G%(E{|&$V zo`+6xPKjwse>@-#r2{Db^3DH-aoWJP5~NO$TcGw|A?#D~@jfe{mdi$n`ax(-dkc>L zm)!S90IBt9$iI3SP&xre3@gC{K9>x!Q3r5QUnvK8FKE*(gXmov476SZ{Z0qLtN;mj zUJuYVq@)8UMcZ_Vu#Ex)b-@Kj16a4bE(yNgAXR{ILuN2^OMy9<1gDkPuM4Dg24fo1 zOBJ?1YYvY2j~RHs1v$? zIsy0??}*Qc@4UCSa_soMuaDh;6}`KAax<;*ySRI?#Qn#`vZweVj$cWi?jq7nZ1 zefMxE?QiTQYa8f&Jst=ZzyggL73AbK#YkfECaBMJ+sIXa`RV?(xg+K-yd3g&HY=%x z>%?n&a_0q9_+r(Fi`NM1P*qjc%tJbxT&plbzzh^=fZ7ODh0n%w^-MXAl|z8Mxd{FP zph@UjRmCE*PJmbHm#43n|BKQUn4xA+6g2EQ$cZUHS~U%i1T3EhU?ISjFfbuO$Vb49 zs3YGBVifFnSTNPT)qb==~^0A1ykm}{pihP`6N0|dXr zU0m$m0cByL-+lSiQ`oyt60w~wg9*C0qfxPJhbv|@Id`~Bh8U&uTekZHxmR;$S1jhj z|AeRA5ruM@#UFE>jJRSZgNyu?D<;N2`|PvNq14PN5p|Q{uBdob)SX-GgmO(#lId!9 z6vbKHbXo?0Vn35GCgwqvBxEVhJDmJp2J=G=6HqYVg?iSyRvRLw|r%z0bZMs_g{IZFCd&gJAQ$Km+cXyq*e0cT_Y`-?;__J;D zYmwi3a~1o*lQGdTjmbWi>SzSysJt`IebC)dI9MUQxYl(VAsHdieYq?e)>3;aOux zUw#JY>NT*3eoNN__v(io8>&MEVT^tho&(FYotU7W6s^=XozXdW9(=|0#O)Wnj4d3_R$Z{D zr>^GkbH~L0i@EOrjH255&z+f_+1=URlWecq^lVQLNl4G8P?C_)TLeNvkruiLiijct zN)c3SpnwW0h~=r+K1JWNV0-#3&;GD0B|H4jo!uz<>gQj1A7R_<%HLna}=!ZrO?A<9kx$IsRkDae_nO5Hrpw1mb`~ z(Llb%Pw#~f&1`s?Tc@f%kRr`0DjHR2c-0%o44+80m@~5q3$qmZedYSk7xpuaJ>lG8 z`H-z8pvz5=)Lanb@?9n=7g6*6jVb%pi*T~~hj!Hlsg6-jF48l%T) zzwWXZcXeGhbbKI7pYy{QtKDuLW3|~V<1C4Hca!fo_N3CG0;FaNM?vteVsGwY!I0L^R|Fg1m;8AwjG%8Hx@dzV_B?XilA9LcW9!3Z&Y{B?c4Tpx7G z7HY&Jri|H|S2Fy0Pj0eREMdh^YRu?0uEufj`*y3<(PiT{*sSBMR;z7{4a=on=c+_b z#s?mb%}KkVMn9epu2c|^cn2j+ac^QAi5(Lvgd4iR+y;&8a$_eRa0AF6o1XX4L#49K z$@?974h!2rAH%+Yzzl#gGLq4U{gB#e#$D_w4<>Cq^j?Z|HYg~7FZ@0=zarw96%17{ zU*letI0dl)gb83hkDd(2uFUHmGh-Up%-#6SGlGf~t(-mmSUR(_vdp{+3Ms4h=jPRR zd$|6M-R&iW!k^)+oryBOXmPqt`dsLbaC)&?$ZF+H6{nE(D@(>jrQFSrb!U*7#h`9+lPNTx50#uwky(!@85^7Uz67CY0-|qt6 z4a9a7dehR<3kuWIylLp^1^B}}c)zUL*>nTi0?uDcQ4t{S>=mZUH3S!uWU9s9j@DZ` zAq>k(9073f+EWV}^aiz11#Vu4K?^*bB_bJ#yhtL3M6Fa^7@S|waFSt}p-^=zLFP;o zVoBk~qH=eAq0?ZJ%Zvsm)x5(MDBbo(z_r5(C=D8K+Pt*%^t5?ixU9rG?DrCatv5o{ zELa9PBgUj`@RO84lx=tt&JN@YH8F3(dV$x$xI!M-74qh6@FfI)Z~z`JT7ZM0m>AF+ zm~5oBg;Zf6zQBe#6i8hN`kYA!M`(hFCk7V1!e>wAL_BV{C&K(O;_-OWPQT-sdU@GU z16oB^#pWfH=vr%b7V5hXii@?95%am&rJD_DXHvPv?Vd>;qvxtMp1jJMENDBcv*lJ< zoj#jjna7=f_Pu=_PQ1|=+Y9;~9mWdY%2ivli4jP=yrXu0>;)G} z`lPM@-pl7bxv=f??p|`Kpfb-_DJ1Bs+#I`;f*jb^b6exSvPt(BdH2pyGBw z-gF{+75nJ%R0V+rX*XevC4;{-L;GQT*LE7XhruW}5W~_6rj=7VRyMWirOEZpvxaip z(ejjQlV_GTZ<$4FI?YhC$cn^h?%9JIXH0F#<@(V$Lon>)a>qO9IG;Qv3`KKoKA@^dt=@mD~|^97nB)~pkg%S z?D{pY&%bBUL%xEw5%m%75$+M3XWV)&pZ-ix1pb>+JjSkH{2qiM>9H?%IF|J>@=79Lo1v^WPY_WC_C zSJT62C@OmR`Sn90dWTadvxp616rHmAgG*mWnmfPx>dyV&e0_bPdlZ++k1Nt}Hwh0w z?yUywUcAarw3K&|jN4&N!Zn-N=%6W>8ft+$tiuIXNo0^gKTMvCMm@D_{kOzz`LDn6 z17x$8u3Rf7=m)1vB!25108D(BxX1tOU3WfN%AM5{D?Xmjo&Mm9 zuggd3pWMIyX)vU8v85l+Tebo{g{X4evm5Bm-N;-k_!Riw1J~upt1)bZ;u3&(UX9v@ z>$5=TIFl-Ns6jh4!vR&LS?@caolc!R5iqbx&%_Cb<6eDFW>h{st|R=z7cGX zo_xMU!x6F12n~@#=FSZsiHTz`lDUhsIy$0%J6@(nF+!V^B*r+3)Ca&@49q+uT#Fy# z{G|}xZiCDUSYP5wa|l1<@KM~FP1J3|C6RI40$-hHu;>g(F9^UPJ{SKCvF*X*Lg$?$ zgzGyse&U62C_lj6TWL_H)#yXSQ+{Jvp1Ew>uD{&4bM~AaoxQa+y|Zc?E{ff9>#gMH zyLJuS;85!7T}pio@l=&TZ7$bq?A&TN2X#$zbA5-Q+Nsc2wudW>xrN*vz1z0+&fa-L zUv2N~+UlNZ%^`n5f!|-ieX4R*>6B^JGDD?9W2kaIvTGO61CPT*>KJtbJVs{7)5ctY zQ3FN;g3i47IKb`Wp};OisF=t6033id=Xs^9cue4iv3->o6P_CciD4`u!N>)VkzIqg zzzJcu^M=Kxh2!w~ah@dcpwA-BQK?0U`$Q<6B+FvxKC#R~T#}_;WRt7sU$bLI&-U#- zGq*L(Y^t9+=AG@cQrQH{jGXyuxorV=lFya05S?b*R)w-ER8M`cFZ?eQ;agqd|8-ZX>KgM(jo`DMMB!KdbgXJsz;KK)x zE%jIKK&&WGPb`I&7s|)cMs&J0Ew+xT<&F|hWHrPVlN2|RTMp^J^5z_38PEjImy}9O zqxYIb!kFEfz`^pgQ2)V z@$kcFHTr8_>S(7vt*X&2u@@7?86~+PQqRriuAr92);&IV$ig(esB`{ZOGlf$1$z*6a#;Z2UKmyc?A`#06x_Ni-PqAoJ;`!mXKjyKS4?>UI78g zd4Xvr3t=pvt1}#gH<4HyL&b_-g>7uSzVQ&?1ZQ+g1)~QLR2MJq^&y3De^-~!@Aq|e z&B!mBcjk@iWji&jt7Lp(aY0iw^jEK!ktnssZDko5ETggd%)5rjTMXynL}+jJ?#Dkz+@+sb9uP=>>r z2W1fgX`#(tI5{ml%`CuYa4_{p}8`%q&O?v zY(6`-bmXwIQl-e6TkUNwZfokfh+F9q3mB2wYgcI*LhSISP1gzl2ScYJX^kp5-+AVb zQfT$3P{^fTuL2T|u?~Ne>lS{(tVvp*v=w^M;(TnZr19vf_>@R&9VNyGj}iVd{)cyo zuhsG30JJ+FIH3u=7bL+CdNg2$@<|5qs@3>TP+Ed_0{0@|-eSQ8%aC{m1YRwg5L6Pv zNB9|9?NRZlOqf6doE8S>B0`u7=v%pQ@#5nTUA1wiicPk7vR0J0bd|YU$3kYMPHC&i z&rvdZE3CEC1qM?}!}!%VK6m4aldF;?VwocS&D)k;>NHEDIu?FTw&+HcqEa0$tI|TZ z7e*#Sv-%kMf}v_a`D1BDO6Nr7@((m%>>G3zv0{t`G8DzM0HH@mL-C#*+<;1ph(^Qn z`x@@=?U_9fJ%U#KdDz6_s+QSPmRvdPlC3T6ogLj(r5BH=a{xr1$?OT32yKdE@|3;QB?*d5$aOA_U;x(SX>Is7`3zk2jg?{xIpXWYGS-+%a}-G}|YEY!3IIquxQ;hH;! zkG$rZyY_Cl7N#bVv;?lZ3a;A&vJ_@2s7-#ci)Skjtq}&e96Uv^K#UvvPzI0jH4?dI zy#EcBKX4D^t%vgf3mh)}$k?nDxD?Zo6G-*?0}ssTqXZw$-g5QMHxC_tLvRC>6>hk8 z@1AQnjA$o_VIwze+>4kahltUKQ&PBgQ~Ky5_}DC;|M2c0O)f@I4SiiY-#F0ao=Y&bexi;bV%zm&Sw4i}X0IPUDtmtond%{;A z#`mRDDcQwDyru~8a)4$4*Y9YZ&uLUuUb&`X z#Fi(@&C#}TTXSux7IxsG@*&fDmOgvw6=rXN$(T-_%ru$`GKk|;o>U_rI##32qRh(9 z{#A92A|sWpRp(|^XKS;CVvX}m=au6pS5!g@b-Bk>YxZTA=a_V6rM;uWJGAP|d$z)m zH!WmMB~A3_Bm!irefyGQ9%7Ag){We5yyjXCyGPb0zr)&rkTzbW^ zSV2atKHXx5JUZe~M!~=`s!nCpwEnpzSX@>tM(>H_^HL-;*0@UJxT1B2Qg1ly zHRZ6POF-veb1o?I(a$BN0EZ2QifpKU5h(elgt$f$Q;!#+N{EUuT0I#E@hTl8CQxKB zO%~G^$b~)3iKV<7nx*noFag9}qSz0UP0zf)<$aMQEGpCnTm@|y#A}{%Qn$=vC9y70M#Wt^Fb4=b)$XjYyhxv9GcadlovpOjivO1t=U|hTKv3q=v5QqW+ z=YXJ(G6~-wo{O{{T|?e{%YkG2_Z@p|-`!6>vH#8|hjBAset9|_Ufe#axOmY)?jmyc z@F|ng@TVU`?UScYn#ApS`raG4o|j*~i2DP5_rXQQWo@Gt0l!g13-=l`hkhR{^fKTz zuoH2~B93z5DUL58!54AvFbm`Q4>%D!E5Ua^sQPJvTL6&{Y{2u3$}28+1BT<1hE4JX-s7GL5m6)*1socAsf?vtvNPsf)H~F=Up2G7c2Y*R8%h^5 zb6Kksd2bOJY-xD}^4c33ym`Uw46>uxmnT~^e#s>(%E~(0ZrJ+t!r7DNcXXw?@|p$Z z)|#yH9KTySLtz;)acpE%*B0b2Lga@t!{f$$Sa{%SiLWR*MMoR5yu(%1S-zaQ%0jn% zq@yt4j#QbF&E`Cd(${$Vz{<@~O|~ z<=xi5r))1vY7EAxcifAx9toCYW`Wulpz2z#-)nZ;!$sAMzQM$5yM}F^zwYhPwZ6RS z%5|5l=D0}bkbG~Z16>v|**4XdR*Mm!2FuBBiQ2_~oZXE!ZXCO&Crx2ZF(@_pdF}gl zft@SzW^^9r4y@R#9#SznyMGxpp3kqUeX9Q8U$SZ&hZVi^*?d`ZD7;tM<#I%P5?vh$ zZOT&8yZvK^G>o)b^CFc)8fyx;vqL=DCQGKyz_p1SsfE3T;X*pC7o4nsLI?DSaNi2o zF+q?@0m!W4*QgME;>#KE;)mw~>^;CE4}%KH<2I|y37XbEDE_gDjML3|)d2LsY2Db` zj%yDXSST0|;E+rl@RH{+(6{(&o=f7UxNu#^81CzJ2e1C?I^(?BNtHvjRVk@f$RY-O zPyz)|8KCH`KV$D^Ytm9O#TqJ^`+){uzJfMGxQWU0(u7dzDDnuz1hmX{O`dkmwy~2^ zQ$s7dk+HY?kq18b# zdnv)BX;%#`ugFW?ckzZRS1+%v9n-vM(@q#)5v*ljq_+wtgD;>BX8a78^SdDS{xrnh zlU%&4!FCC#fRGzj@}P}jq(KoR;jR+c*o`kqTyZx&pAFBeT=w+`nW<|kllW}alR^-WT0uU>U*vP$886BD`HtOZ7 zWGkC8FkEn~?@S?S$*A*?xv8b;A3}k#4w`#tSzpa4>oM-qydIbx&@N!p#=TNPAsW(? zmS>Ync71ntru$XY#yV0}atHU8ii;et&C4g|jYQACKIDxDkG_enS2X9RWK~J*7teV2 z6MJj(FkPlsI~w(@zc_oy3Ugi0lop#@GhQh?RL^y$*JP$j#d<3vuB`qO@mWWfS(FQC z11ajtybNI~V^|tqF_L@AZ=WDl2E7@KSqFVs4PrC-h`XfNl>&|211DQV9bjPp(;o#4I{eomhRJl(M%OEDAv^oJKwZb;_-QJwMMIoz1o{LF#b zbH4c(kLG~g9Ix2GtP9oi0K^zP8PEfWsky;17%ujV5r93nwsI;K4HR zwoHdQFNiJwlt-VK{dj)Ew2mtk{ux`%Fl2F*8yGYYhzXs8d5cFa0B*!4G#;s+%m&=| z6F$0N=yZAzU~a6v@EC@{TLUX5ypgW&D2oI`>3OBqiV2D32kjZFKvfAzRMJCROaj{D-n$$6V z>ZjeEtD?j94?m?W_VtXo@7AMZ7JX6I6x&cRA}djx^vr>R2{RWy zKC(oiREUs-Nz1&vK47qD3+mHyGmmG9R%3u)+ zL(8w?@W2azYP_of&t@I<1NZ*NpDbCv@{*4~1K=3t8*eRI47HO(xzqb^-!n(uK5o$^ zmmfy?9Ua%s-d(zUZQsSmo*B4>I?(#|vdxHYtQJr$O_#3QHE{DzqG(B5`z`Y>>FU}` z-*L(6zkbMl#C?DK#aXlF&wu@OaMmmS@-BDktx&LQcu!|;VE?uqcW*@crpuRb_dNdH z6Hi?pxjc8rG{B~IPp%C!zRg4=lAY2f& zYlYnAUhrS_!`LM9ma*p^W*4@CEznpkKFi`(5`4nh4luFs-Gg%wmIlynIRk1@g4jI_ zA0Zp37!(P-1U)3+bTI(sgHux=MFj`+pdCSc373Hcj_{A~h0_N{4O~mkKz9fX)wUv+ zyS}J0hoVb~>NyKrTUuHd&Tb+K&b)Y{VoG)H_q#SPz1ApP!;|7}mZZ$E3@LW-<`6;6eU{)M7^uXPQ zZHxFpZZA2F*g;Mo*c6*cet^6M=|sLnj0QYQwryRyct^B}xTjbAA}Qpj#ES&eD;+pi z?)5|~E217Rd8H;fS))oxp>_e;H^8m0gj?@JSD$`VV)lB?67CNo5!!Iwf<>FJpFcMm zW$_pc6~JAK#i)dPNFatW;AVO~#YL^HMa3R(2AnN9MXA9!^MEIRE+E{*SYbqRAPQ9l zQSh0(#7}V4;BpKE2j4r=ALlB#H7rwrj+oza5R=5;Egm6P0$B9C!TS4o5g#hva^h`Y zKD0i#Oa#$|Mv=FYGX}05$RV0~+CqWotbor_%TNxoeB_8ui@j@@S#9yUlVSDy9*+pp9bqf}5*|KoKb=yAO zR^I?!r5Yf)>~T~9_~0-FQ8A1(i_Wp!^mK1=i5Kz?N=tC|K}jio#_zFQr_qP!s+hOw zH(|VS6fz%>vRi<|AY=|f$iaEW3upm2c5QYjS}lZ3L4KY=hR`5`74u7I;3*~yG6~ji z4i5%!PK+Q7Ao(5o3%V+{45rMr2rb#ZWAT#4=nifc%cV*r``KQ}0hX+KPa^4MyK5uC zo_mN6b4HrEi{QdTydIBt2uweZmncF$vS(mp?9_D&=3n1f4^K0?ShkDhrotUxKbz%} zSoY>%q^1t!cVHK@{`?c}%Qb7ztDptMpMQo_+{sT*qD9^L zHS<2!!VAM{y{CiaNKDv6=Y;I-a?aP+l-Z0~V^;g|L@R6K*kCnEUgRB_| zUhiX5N=yAdn>F@vtInAw8;RUi`Qd7ZBNBApGCN(Z^Ayp?*R1Be+*k0spK@QVz7(B+ zb+HV+wtCI!H@k-z=N+Cs3tjaAa(+HRZzYv$U;g;XC*OxDHfq@1WjF0!vbcWSrgaAo zU2)w>QYy`p{6Qj$eI&b22LI8PasbYEI6{$YhGnOR>)T@AENW;hDs-p0%V%qf-Fg#0 z_mW=c{wn;8{sCfzPM`?R%%6zo9$vV{{banC)D4C(%sk$C%HV_-$ajGRK@j|~m&4}r zsj#a7TD7P^+2Zj}Xar0TaH|46T)Yp8!5Jgi=M4qN{imMiv9B3Fh6i_VHtEkaIRh!z zvuYXRKfQ(#+$|KIX(GS6?bxx~ZasD^c25PQjrS@PL)F}K5=9sBZ84eVRDni+s~!1!JG1Bgrbgik{9mI^;Q z|JYQqVO0qu%gb0$oN>L%%TyF0@AwqS+xy!KOUs9SCFiaqDA9H?={(^e+3j-jBq81; zCchvEvLn^yO6?#A9w=E%iUp%h85yS00wO%n_KDCoF1=-v-`6}L%m^BY@#}X?@9v&* z)B5SCf_R+!Tn-VY^_}hew@#AFM>lk4XVcpT+Q>Tw{@mL#K0i_)&Ci#|mdg}?ZZLDE zNWu{PLSgJu0MhV8(kT0b8bJ>9*P+g~!Vv)EPbS;PMO$)n@(^_uTRVBu_MH%XZ(ma^w(plY~37 z$mMc57rUKKa!q*1kZ=gHBdzH3fi~ig>{fAc(}JyA7c>=%x3U8{jH%gCnVyl6QPJdM zs2ZaAl6ChVTEDV`EGMoBVa)k(&~7cKw+^(Ew-4OI8f;tM+hRi`%f|F9F*b@ zn%9enRl*_ntXaFiQMi1c4Ig92Snog=<~+Kj!RoLQkle3@Y6+ezz^R4Tc`(CyD5SVd zaM<`IAeiB>RSPhPkRNG_mw71}=u!mu1{MS*J(v_OsGsH+F<8{|HacF3%aH||uAP78 zxW5u;3`Pg|$ui)aJPGl6!(j7cHiJ{z{6S0@M2W`^wWk`dTMNyYzXgT;-o&w81RCBl zZso;cq9*o=n0uRLBhaNz__dgdh^aRQ+F~*?kUg}pdd{xm(A4WDS411E0$F7=K)3u4}FSRODZECfeqE!qusx~~jP^pb=V`Cd75~7D?KVjFf zAMtOg;(<19etLP=+__y-i*lN3aO%eeqPVZfBC|)WOEoHe=OC_gS_OxWF_{?zN z>vm!lo6>i%uO>g}Z@zEg#h=`J&&Ms3BRkLRYHnInP?)=3G=cj>k(*anJ1#FbdW53b z?=^Wj^>w*#=&wxJt_mX>Y*CN&VbnQ7uyoU8Zbc z2?T+c>!IT-KQnB=iuey!Ie(|nAd1aEi{PIYaX3>3@XN72g!K@k#f!egd&oloit{oR zI(YFb@j;mhped9SWZy>O8uE@<&%mFyv!v@4Cz5QJqmu&BCNc3PccgR)v6K5sD*bBY z(!!4Z*E@_(&}0DWItG?Jrm-Y>4o%yz^Mya|*wjTd2$;e#El}{?nx5;kFaqj+;u_%M znX#E9pp;)Jo-so#r{XF~AVc>b8R(G{%VaZK>LZZ}O|#Hux5?-sR&XCuV4-A@1Gk9U zpWc4`vo+!k6qz$_dv2amm5eADHv+xI?P5L_;?D077vueh{9MOk5Bp~Dnh4VPA@c*T z6S4B(!S~=BJQ#6Hh*v|Hz3|R3pX1-bXeHK)o&e?m@YckOTVMbohz6Y?u=_jll~zM~ z1lF>O7F(X|_Uu%7I#h&~-Fffb2mcg_?3OuwhPrIO$&nYKMJWPVz0^Vi<0 zh;1xs3VH)gnJ!^gAUJPyMlL~(8GlvF=9Y=Q5vfG4l(FBQ($_q!y1}KB+o17q?a+_zdhF=oHU?11dhXS+V-KrDb-6)r zn#&n!Z5tl)6GSM`(%R4(3UOsIrF_qLlYtC&wG9hK29DQf?SK&bu*s!ij}y;L#W{uW zApH!)rDj631eZx+zZmavkJ<^60Ub+3c$;&6+$IMWd+F z%BN9OQEQZz;Yf6rkA{LsW4S}#QcDRn> zW=tKMGQ_19-Ban6iNYgl(n*MfQZ(&!7AOm>Iwc4FD<+5p#!N>Bm7<}Ev-Z04A_An1>@m4@b@5=!P0^~egqT2y6I{|pO7{IiKnuM-UW=_rDpgh3Ld`r6(`F1q4Eqa03<2oZ_=VJHFv8*F6aIt=kC{#H*k70x0Nyp zw-UlLGCg`iHhjDMjPN5o7 zCpVat!m_RkTI8;V^j^7D>yy@}=>#sQ7|Ml?07y`mr4;3=2c|xQLPr`<(hFy~7r4*E z$qMcD26h4~hG0NdTCQfllD$}=l9Qv*gBlf*OUZG}8M&^vqMh1F(x%vV(4U3t(vrpW zcA*L#)v0Jf;RvAsS*7UiXCnU-TVNV?|J)mdl-=lk`6M^(N;GmU0NFC+w94j4p3SiW z4kuEh`QZ#*s=H#9QqgGAy9@Jlgb>Lny}n`@#4f7FSPGH5BRIT%4!3X)SK?q)tPK%f zzrurt=>(LIF*>+E*euDZ+_z2^$8-dcqxgmJ6Z%`|)K&y@ycJfne5TZ3DOp@hKnE9I zJjV4HUm%DR1VD?$yGP>GoA??DI)KIB!D8yi559ndPYbYtCLKKw@J622rL1QLq8k1Bepqneed)!vM7b3y*YTnjt; zk4Lv&w`s$jqpe0-MM_P6qvlkyNJw05E(zG7eGw~>+3cTS2y<(ul{;+J8B;Bp_Sm@RWQDT}o-j1ETJd3!em_1V~VNCea1RJclv78O0G$#ZAr zcKa;30QDnQ6hUILv{7B5K9jCqC6v@z*Z?uT$!cCv^2XYlXXFNSOR6WE8DQ?N&&;bS z+^@EPEoRf}WtY>Gpz|5@5rnf!2xPDY+^YGld3rz_6N#Z2ut}{p$+c3U-Z#Ca@Y0BR z$mH^(ifg%UeI8+V=c1E2{+ZSQ>+u!liCLvSn4cf;=o?BK%kY@Ap4&;42--ld)WDe7 zU^o;mNHE0-s$l6r?j5Kd{@!2`5Q&s(ekB(Qli#7UjVeV~>g(Ux=P>~A0b?$H6YNya3AhiS`r&s{#J&EQ& z%dJAUezUWKdu=viku#$OEf}ew0WVH$kT?X}Nv|xGq*O*)NvWZfPe};_nMf$NY2=j1 zC?s@pI})?7H;(Cx6boQqi9n6g04Y}?R#Ia2QSR$^kmz-(7pnQBgis8bi4_v!hvR}m56VEa;i8t#>c=G`AvM_l)?(fwRi@k8s$~7n6xDmCYJFmHt6*`QX=-ngxSNAV` z?%B^zzVQ6XRSS(zrrUCf*D9JKW3%L}Sfo?fWO6X+N4~Ig_bm_B)^P8we~Fa-;qoasX=%1qak&FP<)N)u_Ph?S+ZvlBCao#X zj-hI3UIsZvf}E1l9#*1CCRkD?SE($tOspq`z*8b*<_-#PWfYKGkO_XhAY@NhfYMW!M|+MxXh{~#gU^kbL}I=SHgETTh% z-Im2d3bCBk>uj;Nxi1YF*?R7)*q;IafQ1e!U$TI5;6QSHc81~I8@9)EJ5kYnKm35c zJ$?Er zG#W0{v{! zQHo;&*#X}Wiz$~N!YxfHWdLYB;2g|KywbGG2tJ7sL!|Pct%I3d7&tioX93HT&mv8{ zB+wS|&m~kSZj=J}2EcvbS{F{G35BM_>(9v^dvJpnGN06Q?U^;z6TRRWuo_JYd51Pr zqfb5B>7V9r>(0nB>Qn}urW1|Q&ncR?-sWiwYCs{{67Ew4`S%lp-xh$(PmFU$U)pT#ZJ{vRk=5 ze~L7%AHRR+L%S!NG;$FuOh&!y8jKKPV^kj7eKX$S9ckjsnK0 zs0BzydrFSS4f3AW-*dz3nYN*|83S&$Dk~EpJfVy_H6z!KfFDVS2fYaKpm!l2EcV zjyp6U*60rz-HBV&dS6J1?Pj5MJ<*jyzgwPl>UsW5{;cxeQ_o{aH^vXompz-fXWMhR zcsj+_abMjoq9A=NZjH5vv$gpKA~ z^a?(jMtrpIroAiH)HN<$_VS6ZAG&Mb%B7X1%a)_PR0?_eUO<;(mghDzW zunYzylLR9ihBJPLP4G;r?aTqklazQ!*4gB|Z0cQ4?b&m+mdpWetdXNj=Isb5$R8 z&6$M}S{#X-{=QK#tM}~8DEWQgz$cBwl0I%?6rooRzYV2$5i}ptQFkO9cUmCct8_&Bh53FHxAR{ge@~RYa3aY_h*aS7h zZIE3s7FK6dA!D%@(B|eRu)NkJU6FJZSch8x8*wM#&)t@^7dk53n{+>PgM1|E@ua7c z{s+33zm#<1ACD7ciF=r^9{=}1oe2Nl1+N0w@Q+@9xeZ+1;9l{7#{(Yc9fP<3-FJ8& zPuK#>9sB@dB#wjE#I~Pp|K)yzpTqI}_4pP3>wltRvMf$T2|&b#LcvR;q3D;*p{8(i zbJJJw9t}i;QLeW+8bxB*#F0&*W>VZ3jK(GoZbPG*nxX?gz!#JTjvQ!jYHofAe>tkT zsR_P}M$hhO2{a3=@a5UYX#C3uVJH4O)CGH;xib_D(v`tL;LQA%VDr(YCOAWL6iEip zfXbVLO=qVx1^MmxdnASv^P2}|CpO1-FKY}%V@u%D@m^oztG^sRd=1C14hBPSkn2=> z9iDIUfmsSevSMH^#D#*P(4|emrd9BWM4OsY67N?xH8tG;kMll9cfilW{YI1F%$L9e z_K9zZKR0zJwqFXP1@{<#48DT_hJT^2;QYV%7lcjR4{+?@>EJa8f9G$De}-|!r-N&1 z=Dvdu_|2E0Kmc+f!7p)|eu8=k5CpU!^-RF?m^ZSqnf*(C_o*FW$P)tJo=p!k%%+zU zAmboqNbhH;7&;1J(Mnb>QF22etLH)1ncSYWujyzL=ZT^Rn_>&SZsMprBd3{bXhttJ z9co%W99ngtBT9)>7C%;`f@7;#GLm&?Q`3s(=4D=&%bVBSydoN121ykuaIL2j*Qx`( zWroZ`H(0vapu0klg;K)fgw=um!mI32kbyPXzykZ?7q0*`2-|Hz zy-Vv5Y0o})_Bi=nv9I?*Xb!NZua5}#_QoW=z2x0}eP=iH^$9Zj`py`7d+A&9PQ7Js zq%S``U$A*Xc!tI-H1Kz#+{OoP`+2K;2qKsG*U0wd6%>tmW-Ga~AoRb7p?>d)7pP{}1*g;B}QQIYU{ZV;#UhJFlqbXaBZLS z({KW2NY^<7{i)z)ScTxY0*)F0CFIDaOnktu0Nmk0X~RpC#0MQ@*4vcWkpM1lc+VfF z1hf z;Yfw@Nx6IzD!56hRN>>EPyll7P27{4lSo#fWu%q?TZfPA+C;sejQX*EF`#8!*E{fCpAuXurbXZ7mUAFRIWnv*}Y%Pm&1 zAr|di+0n6*sOebQ*}0ON!G9XET`Nl6b2HkN)jekBm?_z47kAJo)b7Y`4s9M0JQ$W(E^1iu3Kr5{Vojd|8 z>+xV$_dqpXQW7v9WPkq1j7e4}d<2#R&P1R&87M;bID#IKSYf?G8O9L-J&kL77&nHW z(8FTS4Qp-a!>DIGK^OGu@jx)-{O^DM9#pi0coBLYr=3`~>;(53;H$re-ysE>i;52) zhQ5{SxW^A4CW>~lX=@8ep~&aU9x)=jiW}pxI4w3p3(ub9fs-XlZJ~-vE>WrqwP&YR zAykE^zu{+ec00e3$}3bUOOyjEJSjGdlNf1%5_Jo=U0}Bh)Mi=)$K9wQy4SuPs!5iZ3OFh@bdVd}5VXtxi+JJMI|2 z6~2bw{v&@Oa131PF#bw0-uwCV$x0wb4TTvx4EjTjg>gz2 zY2z(as!EjHiC<5g--0%JCI|)mK}XOZr;Y!D(T3FS+4DoRrUp~yhuB^J16OhpYu!xMDfCq=UoA@pce4uj0R86MbL@nU&}L0o1b*eAZ5kbXhnn4L7r}(+-5@EK$gf!;{M-A&HO^oxWFonQ>GI9Y=e{m1h#*v zXOytC=Ec~B)Ba}6BkjQ4+vM$fY>Htc>^C9`%=w?w<=5F@fLG)Qo<|rZSi)ce3od}vs`NBQ zAJSt(jHk?_yv0d`FQ9!)G*@J`XY{0DODt}Lp)YwWH|zg|eGDBjunDI1gaJesYkSuP zqm3EtpC7;u`>#>PoUj0~5jNrf5KUl}h|Mp?15jTVnkHa+ML)oDS!7^(Wwfut z^0Wt=V80ba-^K)I32CC+047;KkeYhb~@vCaMseK2hxP@@l*2!j5wE{v=6 zE-d%(7D1CcGY^SKnk0;b!H}97n|MKqH1O4)J##vaNDh&ytlb*6)6f!%nUeYcOQ&C9 zx9RDB?4(K91)zrXyy*sw^?q|1_tHOi)Wq#J-e!9wDhbD|zYBRP{+T}@VYl%n+aqI@ zlCb1ICCzVXQ~x{KfMpP;&F{cL|CToIOR)78EzrcY7nU}+#BH|XOl-fk6v^vz|1Z%7 zY_x>g1~xSVmfMBq8!*_g_W41AEjUPUy|Bc27tFP|-BzB7ZMdSE|CBiY%r^MVWm??j zhE3|;n_)~8_5gkO=c@yi%a+_tWSsB<$!oyP#i*ffYbL(cKPjBoxu zjTpU$Ovtkm8Voj1+|l#D$#wem1iICoS&M0uio^s%P{^2*$w5ZTuSs|M)fCD+A^}uG zKagn}Ls%J$){|}CFUkE?B!ZmC@kuj969u~<^Xw|fC`{Be@mY8>sLRc!`250n;UVPT zK_zeEFHuI1%MHzd8wrJnB{W}kJy?D13ju}+#-fU+^!@Y-Rf#16d>lRsUhuK}C(*>* zIZLh>)48Z=ScZj=GE%7!YNu)FNys?eW}8c^v|7!sa;GFCuk`BvE7n#G^GD0ud%ZSR zFW0fjg1XUd{Y0k7DL3gP1yd$h)lccp$!Z&3Ry;nIIwm96I3~kW(~zB(*EupPP*#(f zEt6EG1XHYHl~ZnaYvd&oTNMEHSd&vcBa+VLrcb^0=BuvwdWVgWGh&Jm5I}OqZnh-r zqa)2VEnRP{-8MJBFuRIX*je0sNls>EAq6RcZuNjEm+o-ZlkT-8Qb#hIVQ{-OT8Bcf z=}T|RD@o2VngSuSsrhz{J^e8^i+PK=jjyn&!`)Y)2dW2h9Qi+-Z|fl-Eg6@o(hTWP zV89N(926@3p@s_THGR;33YWU`L#Wq5ZbsOzb}-PIUeDk$=8+)=ORJf;^6C0$Nkvv= zy4O?_DJt^F6;g>3$@2;;Q}h~*HM8^@?g^x>%Z^0HKqJ_LR4B)tkybZc!xdH0#Zpyf zmTZD-Qu)PBnN;D=YnD%;xF*)GQ-igOGiC`MG(r#gwD>QG&jT-z zo(iuncyb5;G63*@+zuX%1J7lh7T4eApahOb{18Cqg=TrUsulpVam_6h>GIvh@YVR? zm!OH83$Wb5N(P>um?TNDjAkzHt<p z&Ow)9v@czc#X%Tc1xSRpnl1PaU#Z z0(Yb}k}4G|keQA10+kth`*n7mOr{WvH8Pg&aSDT+sTCoE znIQElO$zO!Oa=80;6<5Sse(?1I#*7vfK;Sd8;5QqzN7ev=g^TlJ4mxa)crg zG-i{Dlc2U^5?3S|$0R2yz_TuR)ugUWFFuIGdKpohDn5=v%#P&jaP7k6o&ut zNe4SR;&TzFO5+Z%fHw~twHO2jPhUKT<0ta#@U+1trg%r3{T)yK<}=3=NL6w19RD7( z0vya&j}QJB{)|rxod)B(4odR)A^3*?Z3U(^?ynLTP8i4?bH|`m0%&(U?c+c$ao&Nu zfnG%*)!-~3?*LYE@N^|axP*w`eF=r{UVssj_&o=C6~E%&13IiR>@hVc}sX0DlK&n_6XcfqTxN zG3J!1eKIIzmdX@5xy)&)FqTxMLIow!&pkCkP9jL|FQNRfKgQW!~14-X14d;+1^_=$!4=P zz4rnMkPy-cy%*^U(m4?o8!9Sd$5Rpe$=SP}f_L7Xo_bc$^Un6aqIU|};rqSW1VTWJ zcV8BEXLe`Hd%xaEMl988G%5wOv6B?UZ7!)&E)&){t!ouJJx#GDgF&ZN`m9PN2_vC} zDy>rnO}d4&$)FNRL`JuiVFzE1=0E&C_@gqN3-Nm} zuJa!RT^)G3&CF27Wa7ZIfhhvtFjbJ4=EFq54XqF1C44;rk35NFC?|6*FN9(#77MJ5 zgc_x3~)r5C0CTKAayEdlScenr&Ga76mom* zz8?w=T3Xt%>+<{7tackcMo&}2+BKK9UUHRKl;sFQ({EZLR!c0#8y9vGa-ob=sYUrA zJu6aJeKqpzzWSoX+H#wtrKlobY!K@tjW)S~&C6n|CZqyBi?g7#MOUQ0-cSL(hy1zb z2@%$MnXx!4G;7s84^`AOPW2cQ3*%E~n{7I`?aQLns`EBoecj)S4o)gO9<@PF9krE& zp7bO^j#sq_e_L7NwzJ;fJkc}DVpY??EP6Iv;moTegvsAq#2PT#;l*1dcki3jpWajkX<)RNQ! zrm6@()QUih4vhiIxsp&i0uOKoPYxHzc!vsRSQix1ILlyAI27Tl{Q+o6N;7I#jAj^O z`)5%0aR>LpXWO@b1{D~+sPr@M>+r;E?vB@AhtnHSZ+cPR*1o>2#1j7D)#LA7{w;ET zd->pF6D;Vw&L(t6QzsHGvP?j``M1Ldo%%@P;K)yU{dMk9{82;yUcTbn%P;>n=ar6S z+(Bs;OgjH6ONttn!F-lcYtM#^8eE^=0(rCe)pM*J#o}RvM@Ges}Bu z!!x(Se`B&HX(V=xJnR48cBX#(&gs*4j*m=lY@8k$as1hj?UJ0wj~##?F6d3r2oaMR zkjJuKuvu`C;8MXAf}3!ELa4X`ZZU)_z#WE%4dLbu-W2eYB%T!jf*d0bo^%ry0%u}; zqqc4IHiAY=V?7~|^d<1rAvp1~xRfaX;vL59L&vM+)=57n(GMZw>jp;aR^^c)HklU;?yQX;3C(w41!3AXiQX z2iop^;Q&wtkJblXI-s8x%`Lg=u4kUSv~3VinS2=a0%qTFcUOZIbf(-7fp%UMn)DO0E-y-FL^vCJkH3EY4`dy@xo>NKZ%q}ky05ybudk}6SJQBiTX(SG5c*1(9>1|E5NO&s z{_0MSyYj%W8gc-gm+rWFR?)4u6wFRd&NmwKC;#1K=}5~CXS9;TXyK7W@+kLD&?Mjk zZ>jFZ-@)}ZA2`r_82VaG;5IV^ErC7@4#+Po#rhIb!wB({I}}hO*dO4QCv_$Wnhm$U zgMdK51*mcAiPZ3}pwK&~w&5La-(}nzmkG_oOCAzagVAl-r9em@40W|@$}uN>q`SW92;x8yX)$5bkpY zHad0;{$FOXz#s5>N9u`rpe3G@Yd}h*o`OYEJlHeK1}z{1_pxY%E8>9bdK>#3cVkZ# zY<^XBHxWCzy0J)sPrCN@-P zvF2Gf;rQz5USxl_plHQqBHd%}43QXC{9pfwiCasw)9s&gyFY(PxTr1m2@SsY*>fGiW2wohk9FRhj-CN)pMVIimHA@SxRp%kLQf5f=wBP<72=J z%A->tu#j;-2NVU{XVf|QbMQSqJEQMswg48-YyX+E$v+D(E;vKI&uE9~A^aDfM$6Su zDR>4(jI{I^Ou-70fqQT)!yV@1APpe?!Vl^N_ruRw=Zxk&h0!c^5c-LoUcEoRC}C_( z)qxGG*GG({j5bj1w9VQt{8=mhd$^v_ik(F5K!K;ZxvAj#ZQA@mrM*F1n(R;375^dq zhhc&kxpqDDGb%cB?W7C$EYadd&lyn`PsK7W58MfvcXOO`!LyI&%m<(B3RGvhvT2xY zH(jlmyl=)edhsnYAF0)x8=mCeYwx|6OYga7SQ6c{=Q0_4`HZefbGCXk>F!%8QeWH3cbgg`0jz{ zT&oWhE9esj;|Y@^)sKt@no&jA(~K67dJw5FjCuWO=g}P3Q9^g5Tzn+X31(E(^!Ha) zPbbX%wH4F*tLmnHmt7_#%5xVlN;+9+^mY7iW80DD&jYR_yFMvb97()YJ`HqP_}H4> zfr_gBp6U6mOC;3lNrB}n&DpiaxlP=6utjI!0q(MR&b|35nKkx3IETC%yq8!%77X}N zNp)~8j666U$FXlRa_+T__C9C>5F#BT>lo>N97v`uanV>7aGI-;yRVDu90xJy)8s4W z%P^%M)e3B@jejg@ZbSRj`jnD!COA%Cm=jz{{sucx)bKY z6ppLFF^-_%mBSg*XIL?R4}P62;6mL1>@J?}7bUm-T0{&2?nfu5S`sYC+lI^qpE z<9w#RN1G$1T+vG=y{&e8KqBky?H|*o+_Ng?y|w$+zN+#W(<^Fv`u2`79=+1wN!Db`n`C~Yt4f$c=FRGPKI(UzrL%g4OQ zHJ0Ua?ZfdUkQ?7G$k>((7Vw7GsI|GlJA@-k=Y%v2hy(B7Y0eT-AEU9k0dp((^?_9I zk4+C=liJ5bFpbS2k)`T}7s*e`m@SLA@{ixIFHe?p$SK$aum z_{=EnlV|-nr4bADWC|P8kb!q9Hg(eNH`)s0I*yG0H2vApB>O4KAE?I8x|%-1+W(9G z-W|PzI~$&S=CK#uuC9NsxL|NBfIT|y2=}|ANzDgeR`vAO)OAm-tnTZpuI=gJ0u2v5 z;Lh${wi1>;Dqeu~7#tlg#$6-N$+d>GnbGvBO@TX*oOu!)H=h;*Sa7gXLRy^=zJ|(fU3o9{RIb9qFs8 z7}&NgG5Bi3P46zcV}afK*55XKH$KYjAl zfg(-P>698&ti&{yo$1>~5#gm(1Jf##)z%|LMMw0~WI5iN%~l4!;lld+?+-fuz-_9Z zF{4Bp(nB_b$S`W3@}O3r8!8CTjU67)8zX5GI=Xd{PMGh4k^k9Ssk>`uwlL?C-uFlSgX@gw48d?aEo%wYTr) zZZ5z1fd}$!uK~!R%k~7W6JkJ4kO@nn!gq~eonRwmMO+J$3qC{^SS;^S2Lb_Ez>l2b zCw$`BRwr{MG!P%eu6Im0u_!oMiIZ6p1g<9qzYOo2!O2;t9cM#27wiGf{^dyvCw8&q z5bMQ8Ja+Vv80|Ee=2#7k!2{$1BNB4J{6qlI4$p<*y+K2>ZQ3b4v;W7K^a4sF_R`=UB%@oermnbw-@7h?$Ylko&2ftx{PFigK-N$kJ0>V>f0c zo@n!VC$cfK);duvGcmJPpe-MtO8NMhTfcIlX}(=sFV>+i-kFD5pBYa0c!qm;-aF=& zdZmlLy&T5FJtC1x>Pke6O*TWa)L5-7QW_sJsqD{ImbH+deB5;OXw%UqZuWfm8*FpA z(XUAu%K0~rTdcLdq4M}dO72CAz71(2K20#an25JWUBy;0=`fn|i+m=3StRO~xSSG` z-4VCuAyOi>PmBjkl%?I@#3tC~-n^v4Zd4Vho%y-WdYVy+wPfiem0Be+_r}^(uJ+DK zWeKK@(Rz~ydK8xk>fn`g*gI$#eNS`F4QCW&@OBJ{_iw!P`cvM_q%Dd%i@W zF9#nXcfZDQ+=;WT5`D=%_u+4llKaPRK1Ah12@cPiP zKu5d%@nlpu{1|uZobdmrFpCVFLahL#TSs(`h{~fXYVItHXtip0#I4q9BW0b$(;HLNkKdTod}2(UyLvJKLoQ7t7nT`m@kK2_h{f{zDL) z0#4iI#bJdjyPF8wjGP?(Dm%#CM10M485HOOsDt^1!hn8Bt2qd0)JVApY1GR|_1x>U z9ECL+?)P#UB}5VKuqzvNo6X$5Y!`}2xs7-cL;v1g3V-RnLkKgHPO!z4nSV4U9xzNM z!(8yEAmu#;s9_#(eA&2<8d3ac)2Hd1hmYPL)ApW?6Fdu&r1OKOkJCRi9j$Nrxb=g< zL&Ib-iXTKEU#JzTW_zI$@C-UQlOK!{Z+@b6&xs{{kgl{OHY{-G~-=N4vkWOZVsx=}j!Tl9kqA%_r^QuRSia+(PS`mhf zvbx^e`fu(%FI|*b+{m1ACod^5{^O}ZXYreyfgPhoA+S2kHh~kmpf-*I)_HERI7(ui zE*8^((K9=n(%(ZWIk9kpW$?j#P!c}E3>dPTQyPKGDbQlP2V+p^ zgAgW6E6&VN(SZKX=UagK&Z`cA7@h~73+g=1G0a8730EhzcbJC@w1XA>lUs-s)R1bQ zdC?!RQ`BkO`T{9GrH3ouYw&kRyU^1}iwx+Q$+^9OM!hZWtvGfu;c9KMk{7&&^eBQ1 zubod`-sn}TvRhJ@4{Ih@q)>BIEk|#1Ux-7`KhNWwCkd`evrYfP;2vp#Q|m3Npsx4m z3Ugf*C4(LwG{-+8J{$m-Ep?Ktfn;YnM*SWec99M zrvB#N-=ZG3bY(bu@4hLwci$2XEqkM2mRB1#>3VdYo1{7uS2_~d$R)`$!*8peR2np7LG$h#imy!^@`#NIhTNo2T0cpDek5i-g7W%m ztEceEEJmK^ph=-JLRg&r$N0h|p=Fd5&CS~~dE%x`ogJIUvMc1#ai4H+9*t|?|DvX= zr@F4Ym)P3dyR~1D-*_G+UDOs_a$a?{X*%ha+EfPa>CR1?Cr;k71@BkJma7APHc7CZ zulm>{_$AC_6i{H`^FiB_oXm#!s%Se5Xre)rjR$bOC!R9Q$FQ-h3vM=)(Q!e)1qT7X z@l~G+p$)2sFw2UEnE<%L_+&H8{bErea6gY5*R3-O+KPr%q>&rUyCa4+8>u{QHD7=o zr5`OSwwg|{G_A2QWa``>Q~XQg+8F=U z#wiuGE~R>QU6ZL-G5yj#<7>0!`dSM+UPey|yjIxJnlCsZ@1E+MTy)uum$yl}{Piiz z+-K}lrqkI{pWLanS(G7vMOO8SImFe7d1mR8+!HSl+#3;vrCwsw$@TaSmkS{@%GqEgnrLIDe}IBzP-GwBB>m$tbW4g*|*& z9Dzv!mF>Ln0lY{?4MK1h>0(a)p67SqEE-#uL;B{8-ILd??d@7m*fu<{e(kT;rSI#n ztL^Hot?naieRVb6eZS~WuSt{?5Iw~(+HvcFZQBlvg;KZ+r(C#Ua?jfJU0v(fclE4Y z+XJDI9liY!A?dBD?(aW;A^fGkJFt24kGZ%OSK;~z`fH#lN1#|3&o@F6Vz~wK6 zb36n0ePwAZI*2Lo) z_gt@9eW~0}CX=LJ-YfMgCaUmYXVrAI*V_&qGp7Ct&tV_tSNeKN_RolM#)l z=O+Xp*7p<9TohpNlwCFjGT%4iIMZna6LRvbh&MXCnV#Ix+}2Q6*U;A7P)kh14?`zw zw@#k8W%K?mXG4`U6q&ahnw!Tpwe$DQji-(|-Q>+%CQjapX?0}&uLZ30*qQV=66&Kk z8K1C&weztpYf&Gh0}j+y^%2J2>iQ`?a5ScctgGo6D6i@5ud3?nsjry=RX8wd@>Cq! zD6j%)V;@{DpHq7lyAcI4mIOqQGAbE46cM1nC8Y*$k(zSB=sp*HcK71((r@$89Y_Pg zh1=rab5|Z6_i6gtaYtLfMV0TP3RL&*@t6LHV&sOwO$pNYD0kMXT(t2!Bt=uXUvfX3 z5D>eLv>rX$dbEL?F%$lNPjaulk7_CIr4LZ#ZSJWBcytiNQ+iH_#PjHf1YHnKxt#Z| z-6^MU|=bAsuPZZN=1g16kJ~quV%gluA=mCAq=nO zdsZ+$-aD7Ew!mcd;G$LV^Z6<4%EOwA+5m~ZmeD} zQyI*wnd7^VL1hyWxrw6Y9EnEFuBpoQR{0$Y3auh3q1+WHX`a(2V$~{Hynb#>YF4v@ zPv?VlF_`5FJ(o4H+LsmK9tk_|yv(%hwC;7CZ^_!+!^}!#@)IMey|yKIK7Y9~`DS4W9s7r!WeXO5C$@2%+e+ zVH9>%rMyFiJH|t(Sw4kRJXT@6!n!aYjpOy;b72v~vrhb!+IAv51}-}wVF{DmDUHn6@I&#LMus%P&k7{t+OVI3~G%m zRyQw$dhgOYMpGQmO1PXCW|^qP^6aoyu9T3b&>FYLXgRJ(Sqv_{+CXkpTMYgpE)i_E zrno=Y^RjI%+~*x}*?1z5EOq;rpyye?lQx^jv9ud{cr2X0_kqt=t?ZleM?lJbogH6& ze%svx=UEIYH*Ib-IB7?~(inD$ZEAz-&Q*&G3yRmF5;F_oL%CciDY;j!f(9i1Y>J>| z259dgmgt;5pVW}$a>!*0IjzqzkHF0$Lw4TWzKTdRFSiN2Kh*e+O1H+KtqKnU221V&lOKxb!5%z zWy>B^D$zBoR)2Q;-B;ek>eWh?V2iV?v@2kVm-zwadWl-O>6N@(=tr~kSs&6vBMf)^ ztIdBF`udz5DlL>zbL`Gkmm&^;UZR5UK zKX3mN&)vIW$Ce$<6(#q_w$e)0bqy`Q(-nTuY<&QLhzh2awISi1cV2q&{rk6G()ec# z#AjT`-Vp|Zi2|=rW{d@M*xk4L{Hfe3VKu>+a$C#FJpWfDF(R=02^Cu)^VNHJ9`A(VJV0*`{(RyfCZoWzARh5-hJr8#u%p6TfB_8Sg}XL5A)URdy0eZ4a7hGxt4jp@{$PpU zTU!+kv4vNU2W27EX!d){!#<z*|J z!s)ZB`YNmJ`&I%;x;D!%b%l4?w3pe8YAPh`b>E9Be|^(s5A8?JaffAo^FecZH)_z& zZz-5En1s@`iIMTKB>9k4uQQQOf6`^uMe6rGdd=lVhlbHoMxAd$-3{A}{{TCb_I6u^ zPK|*be3$rY#_T60k{72<|MlbC6(1c_=|LsXEi}_kzoo^QBerR^a%7dhS{ZQKZON9dU&@lHx{e2avNy9mDQL$SsIDQU@M;2Ab0333^ebN7$(3xc%EO1 zd44${xKMC|;Q3*G3CS&I$nlYsh~Y3&l0&HlZkVUz^RMt;@?sfN3V-AGH$&ox1_3-m zDNOPFkmsTxig^mfFdHJeOjD%HC0KF;;hv;btU+Q05`fApllUj$Bhl^G&B6l$(tcHT9`^SVGjU%qNZJ!Y?o;4d*OZx+e`m=}u10bw%Dx!X4U_O(y1*niih zm$Z%dxIz{ZNOQL6*wf98b`MBWIUyCZ@$8NQiBYY0xx!BJM%q+RT2)(AXr%ONqeRMR z!$sXOc-b&`NYpu{)#!7@av?=ct?*j|an`8H%U*70(c2bazV@kR%zLeK`hW4#r>j>@ z?$}qQR94;IHF?$QzudmBeW?*ZPP3{`xGKQ5gw2>Zjdv|yTw3C^*Vp%TZwL6535zsv`H>exv3^Ct1`MgTIG5L9dWqa&M>7^v0AxA>4ldDml29_MdNH9SIli! zD$HslsjM@~OloMcm~Wz8Dwf9!A>hSfupg#DXV~qhc=Rbk%^U8DHG)Gk^eAFAK&v^- zs2Rv^JcShA)G)_Sq0^}q6Kh7G0%V5_h#@`CPKgT`CCd{ih|RlhV1zPruy*>D+&?=@ zjLW4}OD^r4THV0jzLHVtc`9X9%r1rdG7G_K9-Mcm|H@0Q-gWN*WFPk~fc2nBoBqY= zWIArXFw7_{64kQxx9w8M^;W}uPnD*orG#2qMhag6Ug(gxdM&gADD?aH7F6{;ap7Cs zB(X@lY|9<5{gJ!kgCEoewTsd&G)b*6F4vq>26U=1q&Btt>=uXXx>?l*jagQhpFpL% zLxCYWomFp5ACahxOz||4MQ>Ivm+EbVgcOV9Jbm_@FoPXe1|51Y1ikydv%vvGCFH?* z+|Y9uwk%`1olQ~>fg;mV2ty^q^^!d2#N-aVr{fPS6CpE}fG2#8gjVgM5l$nS6&Rl?n2hk4@pcXBT+*#Bz~kyTZnuf`&B z8>KROuB1daIgLu@Hnn39GzV149;&~1`@Q$=u@rN$A+TiuQ`EHj@%`4!JVqogb50Kmm3VBB=sW%RI>K%n2sc z?*k}pQpYr2HnP81-_ePJw;lQm$i`;BdsW-y-*B^cY}Ogo4%$%Xv|*(f+42fwq+YHz zprXFUMz`B(zitNXp<1pd!Ky`DfbYvJHkF2!YDAQbRom*K2ERik3)qU)tWFlUsf-Fr zBxZDT%tr1@quVL8*b>S5;w*o0t_?effaZEmI04pnfb}}iTtP3wjVDJ5$01nrN((?6 zK!RBy&-x(pIiwo#Vv?sf%%^#{pGA8`P!~pn?LDmD@UUbJm|+7nslW)OhiA_jwj3Zw z(IsD3F^nX6NVMezB- zhbWkKncL&EH#f~HB@Akt7|ISFHnzB$EozBQtp}3?IMd~{Q|cH__Nt6 zHzops^p=plv8*zbr8hv5Uu06Mb^@isa96{8`w-)!9)ccV2L!(oJSTWra9Hp*Sk_+& zzDE*>3fqwng-`*4Y5^*SAr43Z6o`Aou((|_01T)XKa1%41~oA^ySeSc=<>L&KaDTu4E$G{DeA8I|duld=oxn}3m0 zfA_$+ELoPQjub*mL^R=5oyw6%m9a^}%Ke(Vmb;ESXv{ZReBxZ!qV1IuI%Jms4x#b& zGj5J;5u?kiD=O(6z1J$YerpuRqtOZ7%`*GyyRI~%i4W(e3MJH{vQ^!Aso2Hmi&AW! z#Ub^oovcJx;yYXa9eV=8gc!1U+Sw@O4hsK)v$Ez@Zv+!R(!YotOH(i6gLt;8mj$)xFh zpRG+6X(?gqr8}(T%yDf8513>YolEJXUR_mWibQPY;~fTzSYlQYU#2W#Wx7MoPSeIz zRDm{Zbdm{S)q-gSCXp>_uX#H=cV?BbidBHGs2>qIE|bw`5NedQYN2P32hBm1+~eHt zfsN{rMXMz3S-zBkEcDS5Mj@0oX!A;^G;Dw2ATi5tQ;pDISn#3Gs^KxQiDkX!G*2)ZOoa#Hj>u|%}%T9g9~2LF${Z%^&y zMGMr0ZS@luaKC@!joEYO&fcgNYgJ|)t+Nb~!ZMM7v{OEpctK)yqy)=62QN61A# zp<-mz4T5cuU2?bJA;III7rzF*ML!gLj(uG?Rtq#n@Qjy%KD-$J2_QE^f)CUJl4|*u zxj<+c(a7>nOFbr4z++58YswL{4jHC9{s+OED4yVOb~z?Icuav{XFPEzmxUF;F_i$p zjVWKp05LKiI5jXX{442$+R8sXwQzBJhp){uX~N>=Py8<7X^7-c_uTqwQv|k@{lC^p~xM_ML}U?cpx{)i3ChkWT8d=SR$xa!PxJSg*0DoKla_ zlA06ub|X>QW%{s)V$;D&LL`*PwDQ?%B-;GR#tk2CdT>*P&sj^&NMEG-LvDLNYMMvEk0M7+-7BU5|dtUqe5C% z7gSfgH?gw*g74XtWHuZeU2O4{Ke&$f3exJL2zQcmrZf;718nuJ@v75efM>Cc63eb z>{zXoNg0L_QxaMxn-Y{tNukA>(rC0nJ^9@|Q?ZPY0ZwkCuccmth@1vu7Cz|TP!9bg zw*q#4Bp5^*&=q(nL;W+(p5QysLPKY$9su6YLf1#Y2Vm`fDokU{GWc`~is9X%Dqk23 zZXw1kz)H{-umU$^xEc7CxG14=In_FhvlwlG$%aYL{fD_ejvYYO6zy?htkpnc7dUp~ zm-R!R1X#`Uak$Fh^CYzf_%Lvgf!>O*0s({{cxjgT;sidYeK9Q6z!!u++a1sY#u{SK zM%@w1oE?KsY9fIrtL)jI6@|&!j+5B6{4`YxiOob%k5n_e$@g~)f6%9 zzrZe$PLY;IRk>c{RtNMdR~T%H$^?4DbC2-D{5EcRpS39@Q#7O~T|id=&5^?}@obUN zo2`nLx~h~STS-~^HvP^EHAW_p-I*n(bF6x!i89E+YcC?ug9DpX1i3|C?xGBr?SK}_ z)aHiPRWB6&@fCUG+q{BrbV!%GVpqOe_781D8KM95tG%L_CC}>A2{jMgDAYP_dA5AX zZ)keq((H=yos) zF-;I&f^6HtZIhWqq)+V5vTxiaIFbDILlepAVneaWM+r-zjU6dg%hx=J6q~r4C%OyF zSrW=B)v81)MC;^9A?0Ip%v2=O&?Qk$QRJ8iA`9A8lQKpol1eC5v5=yLj090Zu=U27 zMcow8fl%<;iRVSfsPCbw4#yup0K5n99y8=-03^@gE`A)k1t3WV3I=g-D|^Ubbponm z3KdG)XXpi#+ingQmzISl=d`t!=T4Xu zYDhSp?)+l2p_ZQM^vh$3N%HJzGcUbjFL(FL({p5QxyaGj6_CS z6=j8qJ?0c6U5vvP0d;ohM!uJE;E%Hb8C`mi{jZ-U2+!cx-Xe8EiiG>x7ATs%7i4uk^uHaLnV<6gcBCK;zN67%xF zzy^kX%MfCtk3$-X-e3^R=q!uA$XtOu67%k>=HEH^^n0xvSIk}eR@=h*#@z;)T`uue zx~;4UCM%fqI*~}m%4)O9yL}41MtESn+dZZq+ z32?|CG8oW%&33EN-_#Ot6`H)PSnomzY{KsPN#*_{_piDZxd)7ff~&7-ZCSSeFThU9 z^MbC13bn=vOf0L+lh@GXQ9~YHwqa9#Y>BtHCS2+tSL<~Lg|z{r>75TgI&5-yl67X^ zwV`NnZOXYMW{rn$zIT&76fqT9o9hf+wH^mX-is#N%M0>txhYp*{Q=@7yQ9-#FYYcb z=_)Dd`qp9efE!#HN4demY?D1dRG1S2ekDeWPyAZcNgadi6pA#oIAwmb<2X64Vje2q!A5nqQJ1DMWX!-%wgWQCD4+MkU45mKRkqXklGxcCtcO zmxyE+R+}p-i#@ry-6HM!de@4q=0ay6o*yl2MNK84++w>UJIi6mM=Vi< z_9X9%wdS@R$aAWSK+DO`C#7ZAtOk8U{qUm^MUn8s_@(u9)}$PzF*`>kq8sYMs>&+H zSelh`dY3I@QZcI`yXKm_P;qc6QMma(-OC4hBK?siAM6^Kmt7VxNQm>t4=lOk%AR=o zJ7%IQfsBO>=sa;ljm{pg52ip0ANt-`u>&8`uZc{mc{T0!P`IhR z{yGIsA-Pr_b7)ARU8Z6}&d(fKt@SzMMA|IiY2dHo-l86&z7c$b2qcGsa68IHMW_a~ zpbpfBW}$g#5n6@Tqa9c~14c50Oea+`UjJukR_l=vfsFSmz@rWr3=BpM(Ck5t8e(r) zEy9)qq-JI=(m}*tkSGCvREoqB5t|PR1{>m7L}JT;pCpyh(HJZ)6a2^H&tnY?3ApQl z4jP!_V%+3!Wzb(AUWL(V8B7Q32q;1cjidPSHSi+Lt-=}Dm=ohO=(rCG9sg~a&xP;g z9Rn#h{(d-wYheaZ5-Lxy0*c*JJbMOL73>KG)(>2Q)djtd@VY~;k2%K_| z@dSDT|AqX$Ugz`ZW3E`jLxH;!!8hRp{EZCWos4aU5<-PtD$J+sDvM4BO&pvmF;tp( zh>!zSCbe>t)>tFfhNTFBlQM6eD^I4>&`KkL>cf^ijoR8;*&#&RxnoB^;JyQ*rtQkG zTv%Py#dyRzsZu3UP)d=G(aF6CMWB92E;CxiYvKx*IE0FoE(%rA$x09aI%8HA>n8Oo z7pWC%bPA%t;8g16vfq}C`gFcO7%yw4c1 z>LX3U^}o?h5({;NRw5Itget32W-8)-n42ebn$*X4L*^lY`u7!^6F1#zGFDsl2D4Ew zPf8Rj>EDP_NbJ%W4%?c8;^4dv?bkvu?S%8vUvnQL|L6W_+!|8lYD?89S6;PN>QKOJ zBROM~`((;)4Xf3#kBQ|StK<%#!6a<0DqC1jQt$dBprbwQGxVI+eRyPZ~$q(^FQ zzFI02l|;m>xZR>l=b;_kviCVCRnS6)rKQ9h>n`6?UthVszOuS@j$YrXmT4H)p>i;K z;&zXJK8QHwYG`*2bzK4({SqaEyjWZ-GDolkazQpgCGh3Y^WjF2WjNBM1?t9=bFhj8 zTmYMG_=X8dt%DAKSP=$U1e}4^t8f+o)>r~5gIdLa^a0H~O!9$dLnikWOB^OiVfPr2 ztRK$K@R0GI2FMNvKN)22q$u7i2InyY_Ks05;568ZE9L1F=CWYcq^55%5`@@Vys#<9 zV!W_s*-hLJ8{#n8y&=y(RbS*R@#y8{GZKhKP9#77y5(=|oRFnCmi3>yb&oITxN${i z&ewy-zDWNzWcN1k#<$$u-k7vN z`m9XGJp(x!YVJi49WWVZ!ik;q_tZ_0)t{M}Fj+7ay1vW@_+J1ueOEw?^G=9@2v}Ut zf@KG=XfN-5qOrcI_NXxnh8s9O1N;CJp$S3mDFi?P79bz&P|(Ah*_eMCU~oE4ECo;- zSU;80K{pkip}P3TI0ZS^E)XAjn6Sh%XZT9YxjoP<5JD?SE!J%U*muV3w{YUe0&Q3? za(M{+nn6E7D12&{6N#Y|)D0}_`bP^Wl0f3Dr;t=HtL47u4s!pg<=!KWmmOX6xAcj> z)Ld}TO6BPrvdF3&r|GyM8~JS671B6&h?q8QS|@t3XG%Z!iHSC%xpJ{#wi`($OaXTt zv>GM}W#}>}t1*i7!U~heZL+#mevYsj+#<0sRI1V{)RtwaTgmEG+g|YPnvG=t;Y3p= z>nd!2yN$aBwK)t*W!WQDz>@BJ>#h3|+&b=$Xy1cKcm4Mtz5T+{;0*h<=|^2;5Nl(hHvT-GY07!g-4sf<3Ik6)h7&?Nb0? z2foH3qZ)az`HTU}i#7~NC$?b}P~C*BBYfkHX$9$lggcBc0OxFkTik$xnKEc_Ov%Ob z0c=m%VTx8pmxXWUWj9t50=%=*;Nn}#;E^}r&P2-|`KrjKG}4Y_0u{9MPfvxlf4=_c zw_F(Y%)94ea;qr|Mn;sYom`<}}2(+QJFX zU2L7x>unQOQIPa`>s-U;R~l-#mUvT+Ni0%pU`m`!0@GCqN~CGIr(2s&TCI6vf5<9h zal}f@n9w@yBoU#a6%x6evF9?bC4QYFChl;#D3vqSR(LtGG=FiJTg1u(^YHT{$0_U;*LkF|VqrOIoTsIK{- zn&ZxIUt*7S_E&c#H1KVvpr_DXA*HlgX^%@zBosD8Ftt@O3SN`b44H66!5h7pn=bBT za2|anOcL&eP7ZqnzZQH7njZ!MrqnRZt<9)NxHK0W)O;Nq&<*HYkZXy-02hM_14bnO z6ag@T*fa(WR_O4BTHJbpr##5fh0nw{1%*3)@)7~R7j7^+E^`AI`vBhf0mn#AeGcz? z!Co5p0Dc@O{t)~gq{Y7jKTCiWtt7E054YaQ{3N&nzf7=eDm-=-w1^=gMOQ8|!$&SkofAiUDp~sR+#}huU#cVNq{buvm zv6fiU1E&;owMwa%2D~t-mLUi*O?;M|xLH%W%Brztv0kTMBhwpY3givN>_&U=_)|n) z&~FBxw%22`qRX^;y~@fOWZsY`&zDSLcQ&d;|8DJhIbofr!_ zodkiZf7v>tyFcr$M-Sfp?DA4VN&d-~u$X;*li6(LIDahe^(8IlKW$g4^b#+g$_!3i zp*F51We}pFC?!oWB58>$+aK~O&CGRLv#*5kC#)vF&jgD~Kg*i+DxI3m^;mO#xp^Y^ z01AGwUM^LS;}FtI|I>^SB0S_&&e_p7%hZL@eqc zAlXo_3;5I+w~{HSK>z^)cW?>_0@ux$UyX z*PW4odhl_LE64E&wlcJa@Pa#D-&S*vn=?{Uq2DG~Dj-vE!;|x#{0+KE0(3^!5p|3(Y%q^RQt-4skMJLprB;Fp-$2?jH#4uV0qA{SK5tyd* zFtR<7a`77hO<2@87?n9mI>A+yIrQ>-#z%0d2jAozy7x(YBBdh5#LcbA138iw@(VAN z;hBUBM4Ob4uw;r_G5(g|^~bO519xb^n?iK7B^CGjQ7JgmQb5(juRfaV5pwS~*Tq#8 zD&$%}VCVkAn8UQkkmq3M6jQ>ljgOfO`f*F1K*!Vj`wD!)qT+Fw9~2Kg2pHrSOcL#- zVla&+4^})LG?ay)oxn^Q__Z$hjCjsu(7Sl$LJ!FlNwDO=QQ-#dFpfvC8i2L@ ztaF4n1;>9eD&g;e6O3kXCfa-N-N&Q%-fPpJUtTe5`X*w|=4pM~iM#Z+W4kQ6Jvyru z?kwm&{(*l2^;quN8VIcvw(K81}`r187bIt!@!=Q>KSnu!3yu zYOT^IJ`=q{oq$@-3ZTiEK#Lm$JHT6YFZk85cOc;7xj8t#`I2OyJ|*}Q_-S{^A?BW8 z;2`UP01-$G15O#uP&3|Q@K*9$J~YM?KSK;X!}#Pm@Nqm)*9{Pg@yAT&Fv=nU z#3S)90a@U3Vn;hDb0atbg*~087=!4QEbis&womKmpZXE^w^@eVSZ95XC^c)>519;P!Dl*KOH4rQNT-Z69(V<1N=-<0e{v zXfs>9MtjO>au5?uMwixXagWQhxyk)yVcVhURe3rV=6qMADks!Tte(wuZED)S^Hua8 z&7AS$1AdWVL)C-9kS1V<*}6z6&C?Y}i*9kn7%M3n3NH|QF86Aig z`rI9U5e><2bG1ex6|S(;guMlXgC}96O(kYxbNYAOQM;`m)_m*a?&kU%Jw!EkPuT4Z zxw4x>o1CD|OI?oeL_f~8_?N&adXstuYJ5we&pGaVGZnn#Db`c!d%|K(0Bi3j4}5S5U<}Xj zL9rP1DqvQIyrCe75%L(q{}}#f022BD56h6S+Oo5Mpy9gSj@$r66c_bYOka8h7*%nU zO(0oCk+{yZb5hsbj+s-IlC03f2J?%8;4FH8d!xFg;LqqiH_HabeN}8JnS#KZu z!yl1-@t(rA6tz4WzaY?5Gqdf2Me`R%TspR*^nvNV&8Y}epj}i@3WD6CuxXScv8sAD zp}WYe?Uk=x=MO%#ubcaPd;R8CEg_y(wmcV>umLj^$Tj$Xu zD&Lm0bKi#>!V$MCKdbBC0e?d>>Q*{KSq4KYxhSjH=qwZHp&Qy(22l?SbfES7L3&^a zj}uG=dw(kAF3bTqUn01UxAz`{44cDzlubPpa0N!ogB^=$9~RJ=1_#ARt%Y(+1iogE z3!cP=odKKiz%8Sx%wxu#3{L>_9Fi|l3W_#C8Yd_)+VKsyb)?jwKVt3*T4oHIYr3>> zkFf#p1GugltpAuRip@V4ydUbpqkw9evy1>6@kPD_m>u|yG03$51Cl?4cg3K2WGn$Q z%YBcZUsx*Ugp#7So2Qt?W`g7v$g*;b%7@l=N6}nvH@PB5&Mi?*@Al2 zcku|hGop3HBbPWKb8+r*BeD{^koCA2%_G{-yko1Ve;!j9 z_dhfPnS>3(&5<5Qu+6q(Mj^3F*BNN(PwF2@DA^Goglr z&QOLn^b%@-;Q~V&CO~5A_*?tP4q@*1|M%YK|DNypElcM}IyySqd+m4iwNTtNRO}%5 zrKHy@LTlyZl_Dd*kkZnOS&G&whSmlW-pU%{l4@h1rgG>(m3X~ey+uMb%J<0Bo7F=< z*oW+BJUOeZw8XC$OT;dt)i0l*9{Rn#n~Dq$b&&TCRggv5Jefx>BM%pPUGkJi z8;K^|nrI~D(ng~iH#`O=!{6=vHgpNTXIC{h&*Q&RTjZovqLNsZ{2??2-!&$9DkbGM z1~~$IRK_hv;|5kQA;~?)@#bL2QdU+UHdb&ADn*e)Br!_Eaz)f3`guuL*AnOfT{IjJ zUCr!;4D|%m+U_bVP&*x1M%?ZEH7szf9yqrWo-o%-`>(=w_P-2IF_x&uQPrf_&^Lr-| zo86qfux~p%ptsrd{r&iHK(u`-v1evu!_IPFAaP65=lA=Px1@Z&Y#4l|qyNBeVFbqV zH!|CqJfWgstxzXvFId!W0h`KEh+%sx?~}YQ^L~K1(mZ5A35>7MJI|Bj!2H=$i5^xd%I9(tuVI|80s||-C zDUli<0iBoy%}~-0cW?Vo=f#L@p@%2R1s`hxy~w^vFrMku9ANz6YZO{yyl&jmaXXoMNAVJLv&b zz~zK#{5xR&q0BH;fxt>AUekay%=QOP4t@OWqe#R!IaWzg5;>>Sc|Tk$S82m&CmV&( zt<3n9Q_ZwQOn^sIPE%6a96(-?fq#;bCSGp( zNk))FwhWEq7c1p7{|yN#z;=nMNT*WjE>X}XH2HPX>k%IpdyVLB{tJ=LD$g4hdk1%v zR#cSkDyyn0BYQ8dDA`+9US7uU-2<$_7$uN$ha!y56rgOH{0HkJRWB>EJ%BCfWl}BY zZ~Wm09@^XMBkjFDO`ya@_SwQMZO9V}n;26i5}B)uWo{=ibZ>r%A`l$g>r=}0h$$>( zJp2=1ewl5&npCn~JQuFs1QK8q% zzpZB&4N6#H@7+W?0rZ(jr<18vGM(W6A_=KQPyk;-vl>;!qD9E1eb&g@Vyc)`qTrAQ z5RkIhTk-m$(ShNlD8iaxrNy8I>v-Jp6>8iB1ZxKdeFVe~8Uh;86F}aCUX7jaXm(lDe{`8b5%KtgL_JV`k z2V7A%dczGO-@vvTh7JURCB*zpC=du`vcD@01f~Z}U?=c{wcH7?}Nlnj6ID^E7J&)ej~&?tN}Uy3dkwD9gydNyqELd z1CR7Kd8Z*-kpj^boB%oO$vNWw9eY3-7Z|o)VDSGH1_2I?KoA(i{~Hhll_yhxZ2#Xd z2wNNfuVT;$1hpQ0eCXqQ9{O?=ffR-j1k#0W;GZEL<)69bR~%x*BRE7${xc2*wC)@R zN&ia-;-4oXw)|SD++uPsGJ5s@eH2nheuF}8$^S_dYJBarkA8zfu2B>^GG@$?b4Voh z01|z7J`&MCj3Cj_H!itYq^E5FLTd#OD$IeuLFg?bq5*`41rU+}2o3)y5PJ9DK!|XTf{;ZjfRK(H!5|!;zMhfLi}Mr^ z3v9?U3w4t6p+-_A)Rck_ls>^u;S(cT03noykP2Mp=)C)AF&2mu0|p4VWysYahrM5= zXe=|+$I7(XK_udz=U+l{o-&o9m+rdlw(R?Fy@iVY`d8$9`f23&=%ehVA*(rm=OYDX zOE{E4?*}cW@YWNR=5T%GV32<3Lt>G-=u?FF;ZKXW>~-Y6J$v^2>BA4-$A3I&&CfU2 z_!5N$fF@Pe`~p)=O+$gDs(#$KJOYtOd-Vbj+?_B-iMS1&&1q+h(1t zSghbOq~R=Qw}rx`rQwj>MqVAV*-OWjmJ$ubN6QwjnK?9Ra(#pG=%GU|`IgL1rxzJI z(E!@#kH`J|GA}mvqUZP*ttGN@iOq~(5AxsV4Rdar?#)8AJ=+hbg!7i#ZDlrlQ2370 zJfM!T{N2ny=q%`7aj?$ks%OoG`udmTZ34|}A4Cn^C~z;3)3CaQRV^X>8`zkEi{n~O z3D9SNO@fjOBZ{LAL9R0B)q!*455OA(S=xoLG8Tf086K=#VX28tx*(CkBcM2hf^$Ay zE|LL~14njpu?+yB=Uy5mQ^5x(NaFDr^N(tEZ_{9H%~VxQkunUfZQ?x(dC>BnN)(o; zB4_S!E9U5^XKL#`$uX|Mm}`uKrU#h87!@9T3;mMaXCZbI&sfCSYl!b0XWeE*G#U)b z?DLE<`zU2FWbdvhfvCc3YTz+Q^q185j3)0@B^4DVXMeci2Kv$)Zr~;I_r&s7HTCp^ z@)mJ^KHH`^+oWt1sfjhTOh$UvtR@2{X04hKH=;snliDP;1@!vCH9wO}xImB_y23$j zyC=I4Dtr`VU$hckgSQsZjt~_wEHn6g@Gz#Vq}peK2fwkb%;@)7O3ErNRaI5pDoz2O zB$ous9Z)wA9%z~ZuW1$3SH$al0+u}>qKwuHHj;DkGO&j2L>UMgf^}PoXJ*uh0o)Yy zT3GVH0Fx*VdNj!9aEGU`9fblo=v)QBSn47wnU${(6ozZf5^!n~#(bYqDY|HU?<#^u z&#-I8cdw;Ri9^N8!Mn*ve>gk-E&e`qByV^aB7q1fE82hNOcqV4ub4ffwtf;hc?Oj6 zo4U1+rl!4;o;Q6@%I{O!!<13$XF>o|Q&wFzQKe%|ww_h1yQwG<6caDY14z`zNBN(S zg#QJANVxMC)lccKteHBc7OFx)J8N8Rk|t;IvzS@zdhjjB!PZcVYvc=lKKR8DKsFM8 zjlmA$|FMvU&A50Ega)tzM_x&kng!m}p{NzcV_HDVnzOE$u9uz^0GT9%{sqkf2T!xGUo0t7W`)T#l#Yiz!NU%&}QROla%ydaa{f>gp)t0`7H;`6{n04gpBmV&K| zeV*s(eN$%aqO+evuh1F&yC|8X)KY)*&&abiEJ|W zfa?$sCaee{iWc|-<_(~YVwoIUe!*;`gO-7C2kWp0TZpl12-Hi6jf^3ITjF&zVxtF^ zgZIe?kl*HHc3rN}sQG(;GAKWiaHLj6KJ|gpa9X0$F*zFXejNX9S654C zzfw~W4i*IboW6U^u7di8X?;5hJ8Y(J;~z=ns}+!E(X;ECOnRb9TQzvV#l07TIMhsu z-GW}{D)qCt3WK47o29ShvYQ(R<}@|W86XegoyIu>)SLE3`>U_2<&6r}t^i~%%jOUU z2p>{BGKbOX$$&!2>@=LszjXD-sQIenq(;-)dDLX8wc9*SZ*xt{`j*y7Ee$*S;9(mf zA&^GlvK*?98=ZdNfwE$S2DS3va894IZ+uBcLjP?hTnAjuOe4Oc?B+SmO>+hsn+EU} zUsj$z?~nY?Vm*5Xq?8O`SS9eIdO)#Ou=rxH@qF;GEXiA*w-I>K&EOljKkspY(lK?r zV5SouthBp<7&xGImdtrz@QmghFu;@qXiFm!OFLz=rtW=k@JZ_w{ZARZta@MvP)0*lQ8J&(_UOe>tk)Keo{Z5|zxgBk3JHnHv+tB8A z*#6W(tp2Huzvrj+!QcUvWW8KLYKX_zOVn3zYAH*8cjRaO>`xsic=)HmrlUHWO?Omh zwewq@#&`9W0OjRwH9Cnfy1(VlRVxnPd2#ka^vaSkolBN>bPXQ5ydUPJpW57vw?HkI z@NdmBxfp<)x?|Xl z1P>qazi>{gjztpA;mqy zm~>^!xN%+HVAGUtn@y`3)7HLi#>_3m)7xiE*?q?^tunJEUfL7TA&tyY8(eZ|;-RlL zY@AeBqYhn=u?*dab~X0a_P$-qnODnN+gmPh8YH*KtLtS<@%J&LA9@HwxG6&0qd zF1xsq5f_BJI_7nxi%Zke>D#u=n7(}%YO3Lk29u0(BfGwML43DIS5$OK%`JY3HDmr= zb!=;4iBg?>z8dxUeYcmytDo0ERg9sNm<|SZ&h2l8O+#ZMhHHWYleExBAqu4=uN|zu z{eT%5F)-Hvc@-xrfG-|PwlsE9D=ZfkAz?{EN-d*c( z){xPvpf#lZrJJuvFNqbE7#wODYhjA?)~H9_Qr$vE8@#@jrP-4YOYh@1qjKHFuYUW> zL5Q&s8PL$!_GG%XBN6YU$i@`ji?vd3?za?2ZI=%%M|rEYf8AJOEz*c224lQ3?%nHg z7B_s{R7&r+7ALKjZ*i5SoZAVtSgbAj&JqZ4$+6yL%-4zL##ExCGny8*paM$rjtrj> zo9Oq2_{wR3t~f{F_uzLu47Qk@RP@_LkN^n@?f|g>v^c_Y^rizYDJ%uRSYa(du#5{c zMOY0WED1a`Brs1baS8@4GLZBHlIb|7XFcE<2OF>wd2orRxC80gbO4^g+xQ5u1L30} zjK>on`Gk*+)1y2VE)lD+qkt+>Di`n3>s+?F+LBa!>6`P9Xym32qe64#TVvZ+g#FuN zcAZwMKhU^s#-x@;;wgcB@sIJ>%rVN_GsOdq#eLZ#{(I1DuIY5k#ebpdDe44G*VBKc zBy|umO`y{@(@6sT%wt_>F~SJf%eu}p@a8P-2d zWG1cjxnu=JgbC6o*!=R!f?(~?8!~%^w|RlwB-Yzix=?wd<1sY28J55fx z=no2hlj5}!A4DP&cEqb!u8em!Q^l7y$D(7J=}p1FeJ9^uw6LaT!Ls`LNaW;}`VXyQ zwXPM)Ez4<$FcR}G*QED3ic`MrSIV@-Rql0Tkt3zD>0*~R*H>AkD!voqmk36AQ%RYF zfn-%Rq{~o)Xx}(Wj7Lc_a);tdOHRIK@RrKK>J(d&Sx0G^$*Jf7n#fO_W^3Pg*L@-9sD=^#RHtS{nVU{)194E&wm@c zu&ue%DHCPSw)A73Fo$YunJrKll67}pWVy88LrekfHbk#1-_$nC0&k4NV@1dJ6p!>249gyG0D%@5Nry8nQSJB>+ zT1S;{C~q4VPqw3tsMxMHqq1&JFENFjB8dA_*wg_oq1$Tdv$F**mlGx_0 zOBkfr?+=v5-PaNv0}dULiFKh}DiKMm*0^e$R4RuSE{t_nm-Exs)t9AucC2eCjrYRB z$922^Jp7edOFt>t2K~Sv8$iyU4!u)g^<(y!?LRqF^|6jEk;WhVMCY2v&aKpg){ff+keH}fh(^dH~nq@l>>9H7~E25 zcRC#fA$YKpy#;pIOtw2<|AYRqKadVX0|W+*pSx|xoPq6|7f@GaKL_Qt4c&jA+2qT9 z?K4?Y9zyT2n6ruf^A_y8a$wF?SNAX2w}0Nit4@3#yE|Oqa60XU`3|Sul@I$k?(JZn zQXHf=<%K}=Zp6|C_UeGK07ix-p|&6%9y{m-U?oA(mz46~M#>mbz_4@sqYZV$6Wbr%j@(A4^XxND<9j-*pYj=R5Ldb)vYQA$y3= zvtQ9Pnl!$X|BeEosV2%Am12=4R?`?|q!I?Q=v0a7x?+`qCcuPM-CmyRt4z>N0q@+$ZZ6!_V3SxV-kK= z0PFy^N5Ctr9%pR9$AHMI5D77$NjyG!&<`Nj5-$SmItC;Xut!ieAaexEmiUI>kK^?O z%Lx_5I;4 zXqmK~yw0oJC(~+_XdCA-1)xx@S}jvhx(SdK#pnr*yh`CiVzopskyt4@>eh1n7qUiH zByskXtC{8^@c?y71N9}7Nr|zj&^%v^C^>Y_P}?ZEM+^~bo`bIff|Ly6oNFe5K9u}Gz~3vLZXxJGjauQ3LZqrfIj*2#`lOaEb_Ojg z(ygJW4PZyh=afnrVl0__4${J;a$(qqA;&zi? z!M^~lp0bVPy|sfC?|g4}oSsr~x}x{%l;)>w<1}<~w(vX4n14~yJQDn|T%HBAWshJb zPLk(r_P{6srO?0q;<3yvx7Bik%PkctC3T-VIcPa`3RS%G4vN42Ix715Yf3t0%Fso` zdR;VT%x+Vr;>3z?a(}t;9o_?tbV!gl?IZTeBKTg=z>u97`T0=LW5maRE02Lo0S3S~ zau)_-A#-GS0W)7mtkJv5uI+@Zlp05NKg?haE3Y6dRo_)zU;1O}`qX#H315Zv-wE-| z!}HimdL2~J2?=%o^N24HMosOZ%1J^blVv^P zh*K(&JvlXdhfGY)r)YkPtpcL(AJmqYYx!QDI&%h1`Rp^)_T`sU%WD>|@5Q(`NTs>k zGJ&rU%{N!uvq!CU=OBl?s+0%`UpL)=%0AVm-!3|Ic8Waoo0}Q7K=g8$C4IXg^0N4me3NPjp z_zXn|LSzIWg$F=SFnx`JUJBY^0{Q{ZqlFg*F^axh7LGWkJ59z|gtK(T>la6(O}<*l z_LSRGvwUh%v%l47Q%heXGMTPwKfny~PA}SlUSvp>+*TASn8lKiM#hMWQ=X#Y$s$vI zWm9v3RJC?dH>6LixPVtydgBMJ{#2pMqs&(+2(33N#6qH*qi%0ev=NCt(P(3Fln%&5 z5v9#SS^Cm-h51@JLn*^r6$*PjS{?c#opd@ZQV1yX1_yUlXk50;#Dv>T%UUfU0%eR) zZw3ksi51CLO(wnn#vYYSgit8*nogGqSB!0lCY<9PcCD5;g}<~2VllhxqtW`96Yt`e z1e=7BJxohs{r7@Zd%h4iJ}PO#5JLYr9DfRlCBI=o!V}C81RevqZ8#8Bm}=~G%kd3? z*C|LAh8@gJX`dD(EuURbD&Sa%kt8`x7ns99DTX99F4fc;kF_@u%bMNwVkswgP{s+B zO;wX7xt&LAY~8>xtO=i{)H-=eZTlP7Bpd}5iWi=cDjyE`QsxiZ@9a&;lJ<}aO=Lqu zSD;4a0sfw`e7s~g|E=Y{>fo5puKKaWNBkDeTgH{Cc*wMVDVhueF{Fxbu9sM1w2jTbTOmA4`6pTOY2;J+k z2tdTs2B`dw4aFb}0Q?AzxoMw&Bujy#=yRMJ7K7IZY&kdb9F=pbc)=*bGN26S>S2KH z1?vY_(Gu!q;DRl=diNYywG zyUac{5^7=`MyFV-)seOv?MlB1YL}_R)}UAm4PI$VY~hM$&h9=EwUi{iZdEi8bTgsG z3?qhOWRM(g(=9hz)e48zHgudoG$pb?Cjybot2N3H3AJ>fn2uO1HCpqlJ;vrQf0o8kQDCEH}!ia;I4XGr8k|)^u z;b?(@S9VdpOP>FPxxFZ%{)u+ri=zU?r%K9#CU2+2|F3m4s z69t8)Dt~Zl6@HR&1^iXM&{TeHb}{y=633yi1juMSPkck)D#%V2;LcI-6hU+yxPSyr z6h|6>V^c8j=9CVBaS5uc(C8McBC(VpYvr6U#5X2o_BM`#0y5ddM0NIYLbHG7oZVaI z&%WYXM>1um%9NV&o3EHXuzkyGyDtaTard0r`~JbK;>^^U0}RKkICGp%&b)l*oJHIB z{Unhn@`KryS(opbJAdmAzJ1RAJuhEzCFt5{?C@C8a%ML8w(3C691l5XeGsRDtGV8K? zbmpP&(7SwqRF7`WI^sf|dE&%M(4-3;PFGtYj?*kGaDr0JFZv|=HK8B9^FQ&YLBs(Y z#ka$0(OXOwe84Wqw5k*kVmVYu%FCI;Z~|v486W}A5iTDdOCuOUAu*GM7dYAgt5*oT zqy<6%#LyYikQxGItdPq|fEVUB5*)-u2^mB?@NXc$O18OK*E|tE_Nc5t!A<~APw#y+ATgFlB&Pigel;ICZRWkG!D?hJ^8RmcB zzvmgB(c>{vR~bFtp)QS>{FY(9m9bK^_*;h6NLl%}O!jTcG587d^GzbPT*41B@Q4oS z_$K&b2GLTLTyzto%dV7K2s7bOijk7h|M;VxfoeZ$nHHHTbCyM4pojQ+-sa)>F(&Bt zg8s~T7NfUx%-57eM12F=6{5dpbbJ`BSMXHC$N0a%m?QMrFvEV#JOt4Mu(DtT@UVh} zfrBGP#6?VW7(hXs6!>Xw3}Y!`!`{=yFGi~?)_mI;ZLL--RT0|QTRXFF^4=f*5t=B9 zxSWxQ(-pakY*}QLn=bDwyRxx|qBVqw3;O!5CzTM7R#@ozzD2r+J`ASQ!B9HQ-y_=c^J@07p%3|;!V94wM3Ux#jy%kY z9$@|iI+q=~dF3G?8UQB%Hh<^yUowB%vFH7d`7HnQsZ;!!yx~tj z1C@^c`)7#ZuNXXY;@f zNjes7t!%n>s9Iw*smaH6Mk6Xo^&99u!LB$ib*{)N! z)TNT|ZhH1xhV}xVV4BGfZu~}Q z73dY}2?4Lpm1cke6rKs(T^K?k_y@!`5HoUP2z|<+(w>S1dvPia(zuW;0<@A&<*8LZ zB$zRYqzZ>n3SL9#6q)lfLv;Z?j4*gjg!%ED8}{0nWrfy6iQ5;5+ZiU~^SE0rW9rIZ z-*+`dY~1pjLRl7*$h5Sm^E7h^@$`}Pp$GlF*twk!7(|2%71t2u_rzz)cm_@vssOPLdTU_Bd2>G^=XZ%sLV$( zMpL=Z1f>V)$4LUjyTZm$alogQv0^nCRZ@DboFL{byzRDWGd(h?2wJ-uwE>OEPqVZ{ ztxaph%BGB`4r=0vpjb9RP$IX*VKVdI6kJxiY7_s)e^3WjMlYFV+J8Bp;d%bs@4x5& zv12D(qaknj^x*P4mMldZKSt`4Ce13f#jIJSHQqz(NRs6S%svVd24zw|tO+~t`8%1V z^ryh*T@cMy4;jTXfLqQ3FXd9m{96US%Jop$HrF3F*X8@ByxX7_<6U`wf~xorL5;J= zffmk_14yW08*u3|bPto9NeVg`zqz-GwU<+8{|=Wm6G3ADoaj|dd5ZN#qv@$ z9c!LHzoB(@fA$7y(o=^_y1fO~15FCeP?VUOJxJbb`2`_K(8XC8jdjEH9Z=1fp~s~= znix=hTN9>&h)$!a>zo|mpVw+7erD)#vYPR?^ydDe6LNpik>|z#wjF&R_i`L=U>>I* z1pZ-z9+bsEPu+qXaRKzH0~#TOnwkuu*J*OS3N>QP1cXk=>}VEWN?-?2slemJJ*izI zMIY=!!x@aw0_^|}L%BxiD=Spx#1I6a3`B#`m&Fmqq!z*mMm&0)7Ql#keCtR2E4SUk zzxu(}%^w2l-v7XxKl9fO$?sh8BogiYenXq*7%KrFSYs z%2kX%$l&Ht$FVvFAdkJyAiLO58VCIda4{?~b3gy1 zj5|ClWfakhUg~lgxF`8bU4`SfOwc!oj;twJTYCX z9~A>;t7WwO+s5*W3=h zy~1s!8;Q*ADF2;x>)zqty!|A<`@Qw=paSA8et@fk9+#*C8do^YObW zMxKGvu7Y_BPbh#FUO5=0=*%Uup(FRKA5oOziq(qb~Zd`{(NeF93ySQC7sjbaq~ zRIJKv(<^129p<1htT)R|p(#`E2TL?U^HARScBt)0b1Jz^>M@z^w)W}G{4?nK!-(x! zYFL$3u~xUiY3gs7dVI^aV<$E@H`q!Z^h90~Z zEdGb}Nrvd+e}^(l=UuI)RW{D)?%zLc0CLk4*I!X$bT9}?B%qfGdhPalgJHX)y$$eUQORvS!WrTv-li>Hk z1b{(Kpc`nQn%0aU90AS#;1&lL2?tS(FuSl&;WSY54No){fOD!F5EgKx6YEd%ukiQq zubf=J@qH9UohbVL#v#$?$Ns(-N&d3(HonqnuWEqo$u8UY6hnHZX-NYVU5D1Ti|k`2 ztiEWfQKNPJ{=n?|`pF1^RX*U!A1{aZ)O?s-ba>QYs00`yWQbAMnG| z9yqvVTJkMqG0K(cF|)4%m;F_>a@Aj@G$A#KRFET4tsuPVSBm)4bd=7lnmFm=OU5M| zBqbax5;LKYs3_`Ir)JPmhUhtjvwQI|KD+yaf1=l0 z=Jd?5YP7TMQ+$xejy#+uq_m<Be)7p<5yer+Js&oYq^z+fVtgqHlgyPc z!xczIARz#a4lpVBi5xtD(jm+{#7~_k%AU)-fKPdUopp#p9H~V?ZXTP+bhekKx-#>g zG^z_5Cd7P!irO(EcAUG+!9w}`kD&3a&050$sM3`A%q!#C#HNjXGd6uPZPO;$ z!+Z+c^j>DX^i?41hlKh;IB(@QvOA<zW0N(EL< zwH7SMjfEknW1?B_$v4Z3Rjg7PRoOxKk;K&+t;(aeNKDfwU3b;IXbKS?U&7e#+}hr- zyD-fVX&VF_P*Q4Xhf|+eTjRIcq!bASg{3A(Wo?;WZH`zCN^i#J%S`xv)ryp(3R2h8 zCH;K~r#DnGvB&09l+=`3%)#0U4d<_Pt2&G_ouUL9LQ5Hw&8CvcRFHNL1i?06DlkS9D{jz;|KhU{9*p34>xZ5 z5GBx9l=yHH|NW5f*w>Gv?iYssk#0_>A>;od^1b)@vwQi|Ppu#yloXjG_MpvS64%(E z(j?UkT?Ez57wfB$dP%7kt^RYRl5tDyHB}4gu*RWfHFYzk&7gVT=FcE??Wd3MWm*UP|iRLojD5m zudiXhq`k#HQXbVP8Z7>U{6fD(yU0G{g7UedYHK{8F8aZ&@cS2xE3t-sqMW?S-$~y@ zzXCYGL7nmwPys&=a;tK}I*2p$dHY!00U1`PJApNKSQI%&HdeQU8}!Nm*$M+F2V5Fr zdf-9Juq4zVgF)8%0~#3j(a%(#3j-7cVL__JJeI?FEZl&DV*V^d48b{p7lW@a0QEod zyI63BH0d-06$i027b9OO=^0m+nJ_VXd9tHBk!o!v561SVRbbq;lBuRx$-LxvrCiE+ zR3^edQACThiZ%l(k+{TGzqMGRARR&Hc0{+5y;o`TA8(o6%y^}X6sF}0h>W51ztd{i zfYzlm0CUh9m7*XfNCCZcn5VyWAsLZym`RV(t2Gq^~wB*~PF95Et@ zhhgbggGehvQc)Ev%H9OU|D;gEMXI5WjxR0i>CKe%e%O{wbdO1uH1UJaIb8fuN^T1q zptjmxkLkp;TlP|wbFSrSv2_2Xx6W;TuADBoTjOECUL+$8CM3C8WFgpBkdf~PSLPFE zUm)cadPc^g(h9rG;is%qBo@Z2adH+}u)8}TX(LDxTdXpdG=R=0QfQ^hRqL!oEu!U; z@^BLq*GEiF13Q6$E>K`{y6vwNlKP!$$qfGUdZjAxMB6|Zbbq#((wP;K7v>NPjK zu+yZ9BtsMGE@-JN28zN}7?n_7T_MwG!{DxkKIwJq=FMhQlvD!gNus{F>*{<2tu2r! zM665!z$dek*}pkC2naNCC>C)#Bd%p?xz6X07WsWzxyF_sM$e23I_&euFSzo+!WB`y z*r^+M;Ob|ezwYjNS`bGq!Ld8vzq5C)-5wg(=CHO@nq)frl>W@TT5V->%lKGKl}OAO z*NbFnhjm3&OHZVC+>CUw<%lV=&e1j5nQX34=wwE_XM7>~sDPXRp1#yXMhg{x;m@GZ zGGNB1h$Z}$?07Z_*?jlrJ(Bkt@ITChasw(XxDj3ka5&;^A7z4qq6rVsZ7}x<7|j$+ z1}xB=&;;CVbW(E@n6tNx){YxtdbzpA(>XfXc=iO2dG3gjImZRz8T>8KcNVinz#_Nb zJF-nC*ioq)4mn3Z^ihipx(u>nu}EfXGg}pUuTG}(nbaCR7h0KyY;5Qy5LXsEG-|)A zsKjkn(5l+RoItTYfJkcE)N2k-n$A#EzCPxklc=Rwj#SeF)wNSqoVk#bE6c&xk&4?@ zP+qps5)E+fRx<;obq&^7q9EiBLfi!OA(p5$5(yzE>skvE5OWl?T7x!31?|8S>H;aP zjL|5JoJz&YwKnUMIx*DfNT#9JfyN9?&I~@iHBj!cgjeMkMpErt9XcC5a2*S3plZoVE!EofRY80wG)`4gl_~w z9l1fT3y3zzeFU=RM=4f793UT{EeHe|xt*iKQQ-M4rREM34gyoPfKHqNt~B?RIkW>N zH40IX|0*-NEf%+lx6)FHL|-TtJ8UpMA%AU69|MV6l;NVI8#hduxI&-LkW(wGCsfD% zm0}6a1td}_B~$rCP|~Pm;iPfERY{3hsnQV8lJ4FGB`%SO^@_xFk0q*8DM*E!^(JBk z&V*TApwdZO%QE9=Xpc-$sqln0jhjU6tsB?1k3ob}-7>x)O%N<4g?hRT@v6y&%2>ix z7%ldz^>US-BW|mCLTlHB7xd4rgj56wA(U&UUv=5x@#D5$ zF}GbgV15a8Xxt%ihgGb2YNmc)|$Z9iNQl~3p9(NeZyYFr_=IcT5)#{+_tXN*4z%mt@$k&P%LB9KD zutePgyACl?sDmLBEDz_n ztN`F}`m}(h|Gt>;mkK>CAmlUmwWC=9xf+W(BP}dTa+F~T{BlGl8#Qp?b3@ZX1G9)K zNGyDE<=B=?T|uZe+{zrfeD(VMkN2uHW?SX*%JM%qcv{>AG&iHI%T;pG;sup4S<+&0 zl{Zu*9TW{wUd@a9?NWtq>bhNvtqQp=N-8bNq>H4;`}t$HJnzkK?c9L;V`9Vtmu%*tzS^d;s4C-j+NkS4 z+5WGlmM&$$TwT_2(X#a)-)e&{ERJS(XH#vWc}*s+Hrj0+T^$p~=PyWB&#`N*c2Cgh zT-G@wtdPo}&0T&WO;KQE<7$h?EUn1bsFiAq#yU{5a8g%yPeWTiaW^D9I32w%hr?0n zfUt^@XZ+8c+HNouSs@Y0W@Cpwx%}uO*Gwt%sWpumu;4v3+%A$aTOl_x4`EZf8blc! zO@T=Og5LxF(uC0#8B%#)}j*iB%aLkeZs;}0lim&(gxIyjSm>CA+{EL zyAaTU(4qQNK3&NYEHXwR|Kk5iOGB8SYMa4x(Wl*i&+Bhueo53WTyf=rWBv&G0iXlA`W+>;yKvJ0}?3Jt%GZexNQU;F0hm6f{`r8LE+<=XLI;X;T7CU3O%oZ3{*9QKI@1jlFG}GdgL7#xc$l*NeuM6oA53R-m$6 zFm)_w`?X88cD=Yus&Vuwf{I08`+ID-SWGj21TSDS*ixQ>%5Ma$ zP+$%t=5FYYn3K~yfJDE_Ke<}Vx#`84!nvaajUHa-pyfB5<$rg?d8a{uW|#^vg#mSe zGB;|V$C9BED;SvcaPnG6H8n8JOP?PJBKmQszW8NOFe$ zx1%@wvqnt67&_sLlL06>0T;qRF0x+anOdY$L72K$9w;z3N>l-v&Xt`;ftgJ&azvx> zrV8FPX3ES~x6`EIP?uQ>+8n$CVOL(A);89fk|=}lDYS>mUtd-1arQw*vuIJW%%-#2 z{Cb&K(m!)fC|y=LZ~m!IYOk#|nxGuwl-^}q?vJPIj`cw>ufm|MS>P8bH2Ka@O{}(| z&3emL@$)B9?{_tvUMw<0)W#zK+|17|GIN2~k>eVx0u)u#6c;S6U#W*R11 z&4CV$)S0TRU)mH^890T-7-(uEh;o-_Jz4IQTWpn;P?qSAmvxUB>twetE|6Kx=}E4Y zQH@8c%y$J-@l?4R7|y4pTxPdI-Y*vlKUA6ugmos0?jCbsdNgE`tL1hVfE&5%x>(q$ zgXXm9h=#IPPXoCNFzzSz6hna*a3N%7T%C6lya*wxn5u!;exvB-L@yyERhWJtIjBD_ zP#!cX5y(ZzPz9MtNI1dX!ciUtG$xSqh+c!knp4;g0kP9L;v*UGkV6@4tX@OSGd-Lf zlNb;m_#}PcJ%pmBnEZ%YG~1DNJ<9;5L(8{d*Bn7nx?lVE#Q0;)I~{$Lpk(Gb$*G(rKsI|ZE2+r zzFVxbV4o_dXULVc}+gBwmyn)o-Qu0cPRmbj?dlg!f4Qfqej zwzTJ$uqo^fxCv+anTx)>4D z{a5kV@t?g{XtEckUtP4OjK7e-iEQwtL@TGf_~LvV+9~{=PZ$&R3P?q`M|eI&PdC8t z;ao{Qq^!cP7zIoakASzuxTY;yyu_44x>}qvuUY>Xo^3 z4_AXesjTZshRlDCTlloS_+H{ETa+EBZQxJ!93iFrORFqShav2q>_i;@Cv+-%>jGVI zA-53!HWAF#W{4@71^Ihc$p6Syiys4Vf#84lL--A3GDFTSrv4OIm9Sujbr7{yFfhlV za?`KB8J9=QM^HH&W)#Yx#lhaI_kd>>iqv7*4JC!;2{kJ4JPV6f=yHLdLV)GS175`X zxEd0s;ZAN06*)Q`>N*NBMx(<7Z8YPRS4|SPS`Ownis-Gpe||U~=hl!bljfBxIkm)= zWg|YRcVmwf{4HXZCU0@tP1WTFW{jc6@6o7TP^LQ=s^P|P6`j%^uA)iPscLFf7m3(! z?jla#MRUdGR)U=#8~OvWk)&c~zpgPYBeENb%>kdvRYsS1`J}nB1$}8wWYPcN8GX>+QgQW4lO%V~^zgk4Pbmbv5-5x=V=5b?1d4AGii0 z+UJ1020s@U7xM`tjfFN$Jea)-!WYyI!6TlILtqY!Hx{3S*>`MK6= ztJocuT|oRxZJOv`t_)0$^+zEx~r5^y>6l9X(a*3Rpg}hO8_^vE}*InQPqz?OL&GHTQ zdS=anL!l-e9M4_|G^_`@g+4I>4`dT_+VemAmxATa7Xn9Xdq&Q|3M4 z;$}FX3f5R23GOQhK}ljJ1%4HVMdx4Ug=2SY>s`4ek~H3~PZn=LN6wu-xn*;T+f`as z=&!5Tb++!eUqT9Fu!Qx&nCU@7$kUF9f2teEX#}83Mwl zB#@-7Aj)=}`Q$fO0ha(PD3934+z0CkOqx*GSbzRELbr@Rp!MfYx?{(Go@YCJekYrT zik@Z|F%K4NM}7gMF`RetTjz-n?%sKaWS(SZf3K$nnMTgarZ?@_ds%&z+;ry1Z!ZpL zn6DLR*aBCkhPsH@7yye=533qGp*_j8I)JbE@Ll&d*Gwx&)|9_8uJvt9-Ez=*S3M}u)t^x z2kWstd`>=8+mf!M4qi5UgWWK5ZTPy-Vr$`oWlc-O`h&AWI~Ke?@`{6ImnM&#yl4UJ zUIzN(w{!TbT`%|K=jH<^K8h{!+w}0>)`nRt=n|7(deO24V*RjWW@z@{2Z!qnhfir- z1XkCSZ>9Vh_zBun^AjADZhme{w#c~aM|t>z_EuZfwuJWRKfZ5i*X}zib&{M3=iqGD z|EPPnEHvGef--;Xtp*Ojo(ry2y1lhNy4tlhTL5iJEvOp1)AsZC3r=k=pIV$ z@Vuk3H!I+`&dV!-->}cdANf6e%oYXQAP>K9@`xRFbSCf7f8~~0KfTK+=ahcac7t`TJX2uzJxJaMGu0>*@-vF0Yr|)q@5A9$#04 zz|P~Y1rNAKgn+FXgO*16} zVei(iL-&8Ta^$dn7mHiEUd-QGF?{ICmA`!jPf}0e_b>QxUeJD*hg3s17QT2I1V@hV zPz_4OC8&lE|K*j}e);j$H-FyD&pr9n3(oKQh{AFuVs~wX4;#Pj+DM=yc;P3XKl${h zzz8S@e8xwEd?DC)_}CkcObTK#Hgp|1|ExX3{Vw7QyWY%q_`_>H+Wa&;rr&{4d-gJv z13Z}>$Lwfks=UM9w&E7T^)p=;dL$)NZaMa~N4~vp{(|)fbe=ReH0j)~9J}@$`SD?Q zEIsSWD`6Ey+q^wzTft)2v&Wo+c`xi*!~e#M@Z~UgS>2Ohy?Mi)zJZ#7)v#>>RGeOL zP47Q_{g*Es@x_8Ui>_`yZ1tlX&Nz)++;z+g4_y2eDJP>hkW2b)bK^@Wc1{afhhId`bTQv^`xq8&yI0mW$jz@$gLjm9iJLR^`5&G1X zuWp({9*ytZzv5zc*QSYwcAY{B$I+&P=Dzh>*QG8mkAbpp%^O|540q+qW2qfLLk))g z)7fwv%I!+rPRIQHr!KNx*H0hkmhMO!Ht!PL?~(3MJzclj1J#a`A{wA)w4%j_=6gHHl*K=K05&8ZTUu_^kvh#026}Tal z2#5E+boG@tb=SvLd@Rr;-THv>1rp$6HwD<%n=ihNy>`sHU*89hI0fa~MVD_oSDuJF zv@*;+!wq<#*TlO&UX%^Dl(1OV4(hM8Sdpf6d7wWeV4H9~RiW}BG{{E-0jv7(E^6lrp`{tDomz0uk{y)n2b9ZNntouJow*)&;zqb6(Wz#;ddrAcGu-oq){6Djg{@Cpy zpZnJ(>v5oe<^Ollpg9bK(J10J3-~t)z6-@Tfqud>CQiZc`O3tZr-s0+w|<&?DoM%2 zg=aF^Y~s>0l(w39KaZftn|Qfr6n)IZD?PO=YT^StyRyfiWe^Vi2X|)z6DOdj-Tu6L zor3(mW#Y`Ur{_l#=bo*|0VXay%g9kCEyg(_rQm7}=&vZ~5ck}aI`}TK z4%#%vd@veP1ADLM;C~y;%Q=vWLOc&SxW8_mX^3UrJpy9swsbMQ!fB~#Nfwhe&AE={ z`E*;VShI6rKIPE9nI@5tqo#dIzUFVBD+9mvN$wIvHDzsBM0 zmK=PmmWEp$PIh)OTZp&k7C~|rJl6(mJ2UWP9+FO5DU*bV56V!d|4)K=7;=h&B>Z{4 znfuI})IASw_@8w9r=1acw>?_|$z@a5?qpzp%4 z!*LY!Qylh4odPrc4RET%K0yC8pnV4HI=e5l$=NVoG8Zal9_)f~0Lak-_+IKDSQXL; zU;ZayRlp^%hV2+wD}0vc6PQsw6;3B|&jPuWFwcpE!)ZmUJ>SAf!Kc8tG{?ibk+^Tj@W+RBnV{qE#)1D{bRN1HC#LHILG4vVFv+(6X zo97!?gYuH+1vqUs<@p>=q&q=tq{Yx2GazgiLY*!F0dpIA2}EuwNcLx7dscvUT?s2# z4uSm#E`l}ahk1^G6HC4T>vIR}wIX3msUI8}4d-2Zx}fV&K`O}r&+o)Tsz@~%2p>}p zB7?~gGL#I1-5y7fkz^}4e{&Ss+VivL7x+YMTT(-|BcsXoWC!?4c_%W4>`ZncyTU}) zI5OVztLJ6-kaq%n)#roxsQ`Q;V!^p>K~hgbuxr>PGTHN<=Y5!++#R-9-;;z%ghb&> z=QwQiF@@|!8pz&cAJ{qJdNP$vBh$$YG84XyokeDoIb^QqH_s-|2c8efeqJeQLtBu@&Y zNJ?ZW=_Jd@atRkn8)5#fRH93>4A!m`Z$y&0GoI}nf>&bcKd~yM~kX%GA zCYO*)$z|knas|1PTt%)X*N_e5ALLr{PjVd`&w2y7k=#UXCby7V$!+9zatFDS+(qst z_mF$ZedK=6x#R)zAbE&9Odf%)UmhcmlYfzo%Fwebi3_R8foCG)U`dh)$%F=w!MZ-JR}1_oQJOp-~!xBghi)aqV8Tf$mNBp;PHJ zI-Sm-GwHr`7M)G!(7AL!I*;y851{ku0(u}lh%Tg!^kAB#O|+S|P=~hCHkzVox`-~O z8QM;>G)Ft=5}Kz4TBIeqly=f(bU9r?SJFf1q4Y3%I6Z+}u! zCVh*(P2ZvK()Z~5^aJ`K{fK@{KcSz}&*Z~nRe0NnTK_6oF|xMuzf8nWBpkzFxvk`10 z+lu{-jbdA~ZP>P~1~v^F&9-MdupQY>Yz*6(?ZS3tW7#-1p4GAmtd9AZp9PqL&sA*} zWc4h>CbCIvGTV*q&h}t?vM`IVD2uT;ORyKFtgdNHbV~4XN*pck->?n3LJBA(0j$_BO6WEFD zBz7`8g`LV)vD4V;>^ycpyMSHDE@Bt6OW39CGIlw; zf?dh3Vpp?k*ar3wb}joSyN+GYZeTaEo7m0l7IrJUjor@fV0W^+*xl?Nb}ze+-OnCi z53+~Y!|W0ED0_@O&i=(VvM1P+>?!s%dxkyBo@39m7ubvJCH69Vg}usNW3RI}*qiJv z_BMNmz02NX@3RlshwLNvG5dsl%06SCvoF|}>?`&)`-c6SeapUM-?JaskL)M*Gy8@8 z%6?;;*k;zne&-%eIOU9UF1X}g-Vb(y><^z^R`5zbfLHNqK9CRMgZU6Xln;ZEzY%;S z-wH;@M!_i4Hhf!N!?)w3`Sx(o#EyI?K8Ekicj3FjXw5h{0i%{r;C0-`{XD=Gx3~=> z67@X9C-O;rGT)8w&iCMZ@-UC^C>)^?=LtTA@5LM79 zpU%(VtNEFH4L^&Y&DZjE{2YERU(e6u=fmL|7xIhv#rzU}DZh+g&adEC@~imO{2IQ2 z|ASx4|H-f8*Yg|rjr=BlGrxu3%5USh^E>#R{4RbszlYz;@8kFL2l#{hA^tFbgg?q3 z~jKh2-v&+_N^^ZW(=B7cd$%wOTJ^4Iw5{0;sle~Z7(-{J4__xSt# z1O6fZh=0sK;h*x)_~-l!*sbj={x$!G|C@iyzvJKYANY^_C;l`4h5yQb zVu3hN93&QsMscu6iYC!4T7)B7MVm;8v{)n-i;QR&S&!<+k+@h~A}$q|iOa%smZt`+|j*NN-J z4dO;|lek&jB5oD8iQB~;;!bgwxLe#K?iKfm`^5v|LGh4ySUe&g6_1I>#lOTx@q~C% zJSCnM&xmKmbK-gNf_PE9BwiM;z|QrriPyy&;!W|Ecw4+9-WBhO_r(X|L-CRLSbQQr z6`zUE#TVjB@s;>md?WrXz7^kz@5K*rj>}KtXYq^pRs1G4iOr%*{4PC`zz2j(aw(*Q zVe@{n47N}!mld*74v?2$X3}VQ!*_V$;C1w+htbfWQSZL^Rgg|vLu(vPPt4jmn-B-d5Anz9wrZ$ zN5~`P-{n#AXnBl0Rvrgu-k%^(lqboPa)Kjn4udU=DqQQjnPmbb`T zxPz9HX~Z^^giJMvxmo_t?^AU~8J$&ckH@>BVl{9Jw^zm#9e zujM!L-|}1eo%~+@Ab*rU$)Dvf@>ltr+$1;4F8RCH16yEH*fg7a1D;+QZ`*z2PZpV7%R&yg~1Hy z@;lyed$Kv7%X*U-%5YQOS?b874!q%9TQ2J?_9ihbk2a_C&87C%jI*q~xi`+EEx96Z zh94PgPC|CF1%nvmoh*9e2E;KSaRhO6&_53EC7WSbpxEE(iF)G(+QCr9F-J!SbR_6MqSPEpKdbA`&5w3BxV>4Hx64`(`3NgXXqW^+X+A{$>`^2onxfxcPOLsLDLpo$jCPVMK+~hoXK^5M+-_kB$u~;r;Gc z^+loI=S}dqXmg1ZEl#GG^qRc*3b?`Cn=tGOq`8@i#hSE?CJhT2iPCI|E=zlJNFU3m za{UV~ajofWG9z@96@gAu2G#*IHp3qjN#tDSSGZYs7p>|KMXfOTV$GSGI?-RhtfN?z zn31TM-=u9FDkE{qNSvy}`>GBlQq?K*oMpo9_kt!}Z^DoXQPfpk#H3NeRb9-a<0edC z=tGHDJ}jT|8GN6?_ZfVj!S@+_pTYMTe4oKLO-=a>zR%$M48G6c`wYI{;QI}}-{AWV zzTe>c4Zh#t`whO|;QI}}-_Y+j_G1XgC8*X0fQef_yL0-F!%w3A29d< zgC8*X0fQef_yL0-F!%w3A29gJ;46c#48Ah>%HS)5uMEC2_{!ibgRcy}GWg2iD}%2L zzB2fh!M6;)W$*ZSZY_ zZyS8u;M)e@Hu$!|w++5+@NI){8+_Z~+Xmk@__o0h8vLNa4;p;fp;yx#H26V-A2j$u zgC8{bL4zMO_(6joH26V-A2j&EMCCp?P{qwK|CxdLn##p}Q`N;(u2cXIs{3|zFI0=Ms_4KFoT*&uh6rjeeR5CNfy${j;sT&0hnWxKfE%+)wAjUasw%?H>20vo(qXs`}@S_GlYVe~5KWgx! z20v=>qXs`}@S_GlYVf0m{;0u^8vLlij~RSp>6Ec_DrWFw20v!-V+KEF@M8u)X7FPM zKW6Y_20v!-V+KEF@Z$zQZs?C2`r`&aZt&v4i|!3!$bLLQOA(nqCMszaiB0La6x-p{5r?O|LJG?HxjckL?}O1|Qoy zqzyi{cSsw2Z10dZ_}JbdZSb+ZL)zeDdxx~a$M)`vV|#~C%Nv9SAKN>m4L-JaNE>`? z?~pe5*xn&+@Ugu^+Tde*hqS@R_U?;gdxy~AV|$0R;Xk%_NE`lRdxx~)Kel&B8~$T^ zhqU28ws%My{$qRh#j(9ZX!wuq9nyw=Z10dZ^kaL6w4oo{JERT$*xn&+=*RXBX+uA@ zcSsxhvAz4^37iS15Hj`E)K{(V8pedlTuUPIscbkY3guuPi{G z*`Ac+uJ-CqRbfyRs3+E$E~a3~QS;&fTU=T;w2;gc(=aem1Sc}@bQWNM zp->o9YKQS57;WmzC)02}*HI{kHD66`ttZ=@Dx@ZrYfE>eoo1&B>Fh~kaeeh$b&E;f z?ZZ1Qtr=LOmq|Ivd~uk5CF8UfJ96o45$FUQXW4LlS+Dfl;`%U+_#clC(U(gdTRb~l zU;MK?T5_G)Egm0HSX=^1!G(4yZvu7};C>;OEpLVqK3M(+o&RiA9{TpVWOLCKUPxCq zrE{s|ie$dUO(DJ51NGZ}t1_1dzq}>4OlK)!oB+lXs&pdf^1x-PQ*F|VoIH5&8K=F< z6%SnwUH8R-tw~sZS6JTOl*{B=({QT{3IU^9i;L;16pVF1U1R~jd2z-m?|^|X2cPvW zPiL1Wvu)Ky;6Xmw-kQq;%b{%z=)I7E6?=V>kh?Rm_iho!{$QzEp9eajcB*~=StZk5Y^`qw~|wpohb)~z*<{U$$WcqpstwKJk$WxcPkXQtk9l@N`+WOI=i$d zQ4QrO6ql4B3n$;6%Vn!zG_P+O84eCXD~zva9HGIu8^t@=DTW;!QTf@}DTXvEKN~y6 zkVfTaW2YF>sQhf~6hqpyI8?fj)}{qQt=i%1PgK4(c8Vd5%Gb66*d(FF6$*=iSZpym zxugVx-hFQ8Vcf7uSP2FLWe3v#0=iv)9e0PxifOoqcc8WZ!$i zWZ!$i&0Z8bk}Xb|ZmBs~F-QKHpK*30kTE-BcJl zcAILI147X!Jp$~YYn76jywkkAIRk9R1~CfLn1I$$T;AdMI$V)THy8ffP5)or4E)ti z^;b8ozq)Dv)y?34z1iku!M--TCJdO8DIm{-k-)6$Uy18jKE0gVYB$}ImcH>=>W z_GA{=->6?P870cVk#-wrqpv6C?}-I^VyY)*^~CJKDAF)_mT{-Jv^pNt=UTB76lAe5 z0tHV$rtfw?i1WRk;KBZ~=6e zPFI_B&jZ!nuXI0wW*S7VtqdHQ=EZJoAgbC%(6x=A$qP;f*%Jy3&|>JcG!{B@U3j=edB1pN@qM74b4^i^lp}77v8VWl< zemm^z4<%_z15}}XkgF*hQ@QqB!C6*#g&8q+W}(O4+y@qDMOJ=q49G+k;(var(x<%pEQSUvayDW|2XJ(&l= zZF3B916tBcb9oRqq;*g!s~-SRS9n3zjf6+)%3Dj2OlBHOI5Xt8BYqKe=U3!Rknv=J z?_J8~#D1<@BVjrMN>&wdD|8wdlc_McRZMwjJIi2(%qgGkw7aCc@qYW3(%I%xc3I_Y zr?4aqYO4jlDKIsL-77%S{EZ}BE=TM1uTTH_^)I^JHg>Au2}@tK^>0xB*6ZJp{tfHj zi2jZ0U)_m-_cTgWqr@~yOryj!3U;0Rc1*eN#56`sW5hH@Ok>0}MoeSGG)7Eg#A5m_ zjS$laag7ky2yu-N54g|7b^dXke_ZDu*ZIeF{@5Xcr!+!bBg8dATqDFaLR=#xGy)EJ z_-!2WfKa1g7YI@sC!ui?8YiJ~utW!-z>h%y1BHQwfsH{BgL(`?7=$s1U=YQ?AjC11 z(18!}e2C{mJRjou5YLBrKE(4Oo)7VSi04B*AL98C&xd$E#PcDZAMpYvKv>u}+@(E$ zumOY(AZ!5f0*Dttya3__5HEmu0mKU+9=K+1o(h4Wf2LCiq!36UkU}7Z^eMzsh^G)w zA)Z1!g?I|_6yhnwvk=chJPYwG#Iq33LOcucEX1=A&q6#4@hrr%5YIw93-K((vk}im zJR9+B#Iq64Mm!tw;8SIn6E@=6h-V|7jd(WV*@$N&o{e}x#0w%`5b@xXOgGOU;sp^e zh7eTxT;zbZIf_M?ciy&SE@uG+qMZ75D zMG-HGcu@q3B2W~8q6id4pg86d$6Vr=OB{2FV=i$lbsRH`V`g#8ERLDQO=ei?IF>q& zrH*5%<5=p1#)FAySKMG88Uqarv(T8*u&PeOsyYp;>NKpX)3B;e!>T$B3$xGoo`!|F zXH02WRi|MU>PVP(*7s0HD%6n*b)-TasZd8M)R78xq(U93P)EXSGv)p%zxCg%xUH zg<4pl7FMW*6>4FHT3DeLR;Yy)YGH+1SfLhHsD+h<97HXwPzx*6!V0ypLM^ON3oF#Z z3bn98Ev!%rE7ZaYwXi}htWXQXSqhq2sD%}3VTD>)p%#V@`SB5~G1S5ewXi}htWXOp z)WWbmG`@f}hFVym7FMW*Ve>it2x?)4S{OEC#fylCT3DeLR;Yy)YGH+1SOrl+f`}JH zJXFmJRkK3XtWY&8RLu%ivqIIZP&F%5%?eesLe;ELH7iujsvhxBH7iuj3RSa0)vQo8 zD^$%Yge@S15*b4JLP%c-`5D3%5W*G^!WIz177#+b5YiVy`cU1&e5_^`s(Xd%UWE}4 z)xAP>uTb49RQC$iy+U=bP~9t3_X^d$LUpfD-78f03e~+rb+1s}D^&Li)xAP>uTb49 zRQC$iy+U=bP~9t3_b}(GX+U+aP~9t3_X^d$LUpfD-78f0DvJC>t*=n)E7bZ5wZ1~F zucFA$DDpFkcv0kM6!{rL4IM*%#;`raP(EYG&luvxu>N9Le=)4T7}j45>o10QF~o}@ zUJUVKh=+zqp&?Reh!h$kg@#C>AyR0F6dEFhhDf0yQfP=&9P!W)DKtb14UsYy2qsco zO`AZ%5=dAA2}>Yh2_!6mge8!o1X7ehgoLIDW<%Y~U@{Z~ohM9%VoK);6QP*Wd0J@B zU=|cF>a1Z76jM5Dm;uF z3(c8@=FCEu-$HX{p*geAoLOkjEHq~pnllT{nT6)eLUU%JIkV85S!m8IG-no?GYid` zh33pcb7rAAv(TJbXwED&XK*U1CJfD)h2{*-a>a|tPc&y1nllT{nT6)eLUU%JIkV85 zS!l;B>{M82&fshmohO(DYbndMq?O7MdOlO^=19$3oL%q3N;E z^jK(mEHph9njQ;HkA9NrCSZI1IG(8r|pk-tbd!JSU1tp;c1*Vr=iePpL z1ITpJk(9!UPgNqVa6>vuqSh8wJxw!L(5@ zZS=Ej6igch(?-FxQ7~;3OdAE$M!~dEFl`h}8wJxw!L(5@Z4^u!1=B{sv{5i&CPkMM z1=B{sv{5i^6igch(?-FxQ7~;3OdAE$M!~dEFl`h}*m_E5je=>TVA?2{uuV7K)5^m} z!L(5@Z4^u!1=B{sv{5i^^s{X2``Rd`F!i7_L(d8(9x#Pmn zS;2&ZzKEWHjh=vwo`8*>fQ_Djjh=vwo`8*>fQ_Djjh=vwo`8*>fQ_Djjh=vwo`8*> zfQ_Djjh=vwo`8*>fQ_Djjh=vwo`8*>fQ_C2YzL!Djh=vwo`8*>fQ_C2j8@_!NFRCv zFj%QCq9 z0E`&wC!-e6!hED?sD+8y{tbGi07msP7dKkf(7UqUO;HQT5i7Mz{`5Y zKVHUF{BC?e0}Qz1T6{Mt8}@dCN_WY&UX<*n`nf4LQtd|iVwJ;STOIWC+?ysI)bDq% zCe)bK`U{0Vi|woW#39-=uumGNiZQcjU2n$GM0Xrkmelu&hu!$#UXExsxw-barn%@| z8`S%pyI%hfk7>ra*9Pcv_vD1ho=htB-R}4CX3wkD-K4ws-3jY~-4~i*9uKa~jsEe< z)M!7Lb*}Bm!eF_(ZlX3T8zwP^1@86g5=o2t0Zb1Q8K(=l@-MpL_0|6!iE1`Tz4FckW$hpS{;!d-c7} zJ`$58$%_x8B+X1OT0C{#!fPbyj!#Rh{44y9Z{4|NclFL)21&YeRFW(o zoUrAL-835dzZZY4C!BKb@#p{S?KdTfIVI`8cI?=`Wt;NVc3G0Hdk)tt1h771dJFwy zd?~+U=b7hR)^olpNk589lJn|Qc5U5qY|9mkB zc5XlE+gG5!dnPc!;_h8%oVncNJWG=H?vSMD_T8s%-@U{9>C13^5bZ6JL28jCIW6BL zIi!%3lB6~LeVN{nFPO_@2Lf4@DU|_Ve~twKEwQ3G)RJRA%;jn;b5)CxeO)%1YD-M) zD;8sIi)@s?l*{eABA1iTGw=JZff?m>rhS*0%<_7Cmt@I4_r83Ve1{a3l9DuOFq?DP z;y`~jP^qZBiW*QtL4uSFhH6G-%O9~Me6gtEJ!>Z5Pg(wC%7y$1>%&)9nL8k-YQ{h) zso3oDx}YM50{edCa>UX~fW1?@^o%p4xj8YG;SzIEqSdy@FH3Jr4fqv0{B>!k^pkpf zA{{Vz$MY3l#%1Fru;`cHPcKK_CCzabsn zxZiM*cE4GE?W2v^)S(vnRp}Dx2CcVG7#`9`<8Yb{yGlBoU#HpB?`zDa`Tnzvo&)ZG ziDjfu)Uh?Zf57!Wuuamt_3Os=1Fq9-zFEI+__B80EWdR^V>YMi&=+Ncc z?$5N0nAT!8hk{C9Z?#hC>m`7hfrDjt&rE)BB4(=mZ-RI^sTkiCyv&%<>FpQ^*qt_8 z#Nv-;25KM4gRS@WS6i!j)!OEiy=LO@NW|rk*9Z>3+G?{aCRZsE@H(C5i0aLS*(u<4 zXfZBVhV_z1ib)k|7_yZu0%eX3N2k?V@U?}KQzVWw7s4)V{hjj_P@_=a+M%##KeJ$}r0eCweYZ4V47_b2)siL$P`TYUZxz{Gr;7{zxDvGdH`+k?^w4 zXf7A6y>GWYOkWl9wtE8f$Ma+~r$*Ab z=&>&1A&wi@H8C+0*@V9aX&G4Q1mGN%3Q`YNMes(h+MAR^LARVE_2=ua^r?hyA73Lw z<7<&!x_MLQhK0t|s%1Uxi&quiBkW%Jq09L{iO%-ek8Ji^IxG2J`KAp=cFmMJeC;bn z7q0E}<)ZS!Xzpz9b+%%@y;S?X^#OZNPe+R#G;Epsle|H`T`B_?MFH2AieL&ikV(oI zzFJXK#cTm$*-n`_9>kOfqPBpmH5495RE`);<;K_c#43?ct2^k3M5}{|*^g}>9@ui} z%JN$IUtEK#-)MI@vkTVsk8K!D*j;wBKQiES`D~pVED#pQYb6;CeqLnZrM%zgM9LNH>acHtPMoD7_CnWWHM0Vzqo^ z1t<9$!9vy7D9~Gh40U4Bs=gB2GrN05Y4K%S-k>FUe!;3js65^EJ-b=Hsj}t5*)3n& zBvxVHk0(!F&~?OQ(N!CdE?Udi zaxE>OukCJbYnDo!4$J0tHr-45@z)xBM-$vEzkjlZf$=K&raA`faru{`H5AF0^pef`3VnIeWMwLc`~aWwO(Z_PJFWD``b(RT zB4St#H#x{xw3Dapdg74~KQddmUV-;kC|*Wfy4i1Eo{in+eEzCkgvm;(C3u?;A3I6*D)i_+~nr(i90 zIG;m(Yy(+R(aTHRw-D4NJ1TksrcG2QJ1SbgeN1CavZDg}<`Fv7Sk|CL8BlFqzgr*I z*uCG?m!ywM-zCn24JOW;XtKZ=O=Er-CqjYkZ;e0EGgBCuN?L2T5+@#nTi8D@zjWKs(6&pLcO6;qc+wH8&l(v_L2E5Ic``Yx+I+hR ziEl=;0cYn<`{34#mo2+^>tHZwjk&``qtW4<+_`Y_)Jdm3`R|@=G@8vt9}GsV@eHUz zdiGOXY8P`Zd|mn;=N|zlJul#|Nw;zC+#mj`beE>Dhh@xCZ~rbuPI~{u<)WV#S)d6{ zoG9RLO5eu#!Wv(Sb#TE;qBsXc@bQ3yY%noY;}^?>GM@?;ijjCW&mN9va|!&YZDhC9 z7Roo}qWf+kqL9{V{$6|X4ESOcP3_Z0X_Y!K4%QqtUgOxpym1a3b)%9XD+wip>!JAl&BHf;Csc?Z=N8GBF(|QuufSiV&kH>O953a%Ou%1-ypd%j9oO9c z9qC=%$8CUgH=mQVN2eGu(cPRv@o-_RK@hT}Sb2%JZ^!)S-4Q^1$LWE9Pa(FX=#qQQ zpuYJx_5P-Yj!QX90Z+miEJfgo5`5wmHbTR&X-@Y&o$Y>KBA0E zH1`SKnl!O!{niht^{aq(7)TQf=nFs5p~fW|v?v40_1~EEGom-JxW_;oEbe(RhI?og zqH*Axtb7b#q;FElQjGZh9uJRL2#eof(4|c?dE;LJAZ@{(1QzfGfyIaL$nOuz z8ukz42GT4&d?mMXD!nQ_E#07Lgwx;;+oXV$k)$ozlA+3@Ap>|jXkjH*VVcGkVk>vV zeJ^f&!`BBBEty2O6X`TNFbE)Q{2&Vv7x(R+U0N4x;3 zGkUmZcLMb+ZIydRtFg|*vBYD;mQkftq312dRW=OCl`%o z>}({EX;Xu7`23!b&+IkZJ;{z>d*3;^XaqJvsLGnb&VJ$T=}!9<)o!!|+zy|?X!7`! zY_OtH1{i@d9Dn)UCT#^cJW~OmWoc;xZ@*J+ZvT!JFD#oIl|PX8*4wkg>vWjg(bOLP zFwBE2!H~+UK?g7QaA~^Lf{5ZRCbL;>jv_UgSQm|?S+Y>*l#1?u{b#~Ku$m(0k5RU7u`3U|u-cJF(E zWVo1($8)7$*WUmvw#Tlrf@PBb;T^TJ<(KzzPpna zc7ZP`-;@sT`$;rsv$D6nwR||84$CvqoWoIzI@!J9be&6Y;;V_&1?SS=>0J5+&ZQiV zOcf-O@WuLkfy=Idzb5^MfX@xfz!&on@OLF>NWDGjQ~`fcn$z0voY(#xg44X`2IcQy z-ffzfS*ec8$QLlRL4AGVWb%;SKzirhcs>&e#ogxG1zxefo`{`&!cPp)zxwWYIGkb3 zor)~MQn1=GPJg%yPIoP1Wk02#`~G`k=5S1r&Am7`LYPTdhxJ^(2m`@ug5G>sZbkWe zxDCm0DiRF`O&Z~qOeBn41YeM3vfP=wi)GYQ++s<#DDv@5^lw_7ea}{BT6{*aBBO@y za(UqtgS==f0(ohs@cZ!p8x+1=r|=un6`-Wd{k^^LMgt^MlU#Y!(+Ek~(m&4`t;lG>ObdpDlHbm;{fdoQkR8Xw;@FhHLbwu#)#y1Pk#r*=+EoH9+HJF&{7(f4w0 zxsbRB+yYNahf|~|;IG5?qwK9{Pd=xBzb0MZ)V=|KRk~U8IjR4Lwe}PZ0?x;IKw8WD z+llM-`w$H>2ghUH{YJ|H_rJtWmoBQ~W3<-sG2~zcbUcmu1MYi6`kM5W`h7eK6!UmX zx~6F!^Dk{!WHzT2zUN< z!uz}MKw1#vlFY=V?&dgG)k0XLs`VAVpIxbI$6S<9_ZjOvP?GD{Nv0at(+Av7yz(gNN09An(DOygVK+Q3?s3<{!~Ig&IV8G8 zf)=ro;W%zL-rD@}#ibRyXJt42ti9@RzD!?UcAB?(Twm&%E{6)M7I437)7Q4lUbv+~ z_9^tBhyDa_w|Uv`{rLrJyB3@{u6codz$qkUd48H4PvktS*?+a?$4k`EWQNxWVa=ZyG&*!T9lG{=I|^IefM6r~BfG-jsjNtB>>?qHnCi z{3z1E!$2|+Im+K_INV9Ll>RyXM+|aZ*K-(rXk*`-BHBEO&;PVUcO3tpBSsgTIcRV~ zrt-*(%)+V@LyDX>Wka|}Tdk@V%ED7xq*4j|715F(2<2NR7RASxcDE%1YAg(wcJGEe zhH?YleVJIn?Ta}-ly&1dRc%fC)r9JD6_t`}g)*B7MMHjvE5ttXVN6Vs^gj7>Sf5VX z)oIEeaT-~wNm<4JJe6N8k+J3ZX)InqBPnI8KOZl{BTR#KseufO7ecbpU~?%BpCg-f z__86Vl2w1{iMwC+XO*tli%zk6)h!E(v%_B1)7lk_6r&bbPrzldnC+#7{k}xVp*|YT zvEwsC+44xb_B^D6W6Grs;T)G58<#2pCrc^duSs9f;KMXC9saJSfkk_YuBknC1}`9) zrOZTg>vv#R1RV6?ajxk7ZR~#v_>Ot)->Po{0bpmO2gE z#+gbq&SgQ?dJ;`d8b~}?dGYQ(mpc;)c#6xah4Es3=}_hHYJBSSMU%U7iLB~zdMl&R z_K{?6Vdv<^(d6t|_FUN!cdI#PDy<@)(U!1UGkuHNCy(wfCDo*ox49!er5H(;RGTB& zHPbh_skg4FL>A+}1WlzU`0U84bQq(c5y4CH%LE6_UzA>#Zq+nZ2lr0sI`ZOtcU9aq zrrlK}D8J_h=~;fyi83goUA160&G>FrRqd25MOaRQP+kGCgT>d8 zcD0ZcR_aUmbpG&Jg?SQDYs9L~WV2Ipg+Q#u!S z*FH{KiXAm|=8-)?cceGuw^*#6WJ1Y=?e=KS248m5EIZ{A&lswiBvd1U z0TS!1*<#LO_S_>7`-kk(1?O%VH+9A3A;-SA?5)EyrOs7j+1%LbuI{7T10DXLK^eYq zHEck&viYO-_SI)CjT8#!6c=AyAj&Ux^6G!Hb1sHM>!QU39Qi{6*d zM$Db!R*o{gWC$Ah6|e@^m=xWPM$k$f@E5cy2-29Cu?~Mndb6qh&ls6L4xT;5>({_5U*Wx&-_s={kMfmwCh>;D3-F zY#NvF6!156%}#XqwvNv$(vS6i&gPat(BW;+xiPO9z5Sbr0Cc!f)!^j01CDhg`qg)z zh-1dN-Vs^R>>-&(3(++-Gp`clC&Dk^We?gpPsP)Mr?N^k9qMk)bSU#TomwZl)7CBQ zpo~ULSUT#km{Kn7xAVlg=9l^`e~)-opCzX{Q3bUW=jl-H=@PU^P>o|Bg)Sob{Dgd~ z6cMr#v{1naETf@rEd!Q7MTROdziZ3*yh-c32DvRz^gW*Yg-^aE6LGos-4YD2fM1?A zyUdAHY2Q93BOAx43JxCdt-St#hY9G}LIq#ECWQ~d?XgITRaDd?&{!42Cbi9QmpSG0 zWo%!t{S%FvHs57vR|6UI*Obp#lYv0ea1gIW?W5qf7agCEd$!RCxB#8q4DvNMQ6mXI_0e^v+n%Wb` z3iwM5d*+CgIlf2M2-P+v zg6w){OE3|v&ALi1CGELq;r|5XoAbedulDXSuO{T^z8`x-@pM#P;tfV~`$jWCl)(kI z{4q{?&xf^Kgt4)vd|We1nCgiwwXvW`LCQ9@U^4%&A3O3n>mzn+n-UM*7XLvA6ph&e zw%U!0YR_X9NX_0y>;1DB!P3Cvysl_C!H~o8=ey zUbcXe=O9`mb0B(|JB8+;!{3o^!7f65RHC=&<)yP5W0D>dz5GG?XRc2~@1zGr>o-?4 zS~vQ5W16UjRg$;E0%9*htQKod1NT>%O1XJ>j&fdUch^4VWGjg@wI$J_n_Xn9-ABKW z42=Z>wV*MDRDD4S1laG*nqB1mb9!Odh$K&XhtE{NiCzN!nsiYUoG2sUFG>#xICMPl z)Zy}PqFLI?RpQ-~ z#YMX(Cr_PfpB+f#v)?Z-EEE=&+v!uzWMj3XXr4VbS0NvnxnMQ4TePLs?OKA+Z>qe! zt9yC5yu7<>c^PXZFnS-DzR72Nzx31`d7T2jSA(17-yTJ)!l8!G)S-sNb^+atS=HN? zsr*G-d6t9mE(DQX@x=SBbex(kTA3E(|&<8n}Q4iCG6YFga z8D6QFnLG_UO?3G94Ld}BeyNykmua+jhyIok*nFE*;4C~-~k&V>Xwq_=*-KiBh%rxpeDph0;nWL~` zvgM3?Zz$KD^#-DWwAmUOS>x?kKfLu!+3c4K)l{;-sC3M<6v{D&->W3z(M`QaTrjot ztc86W7q_x}c;C(W9C8Exj?sc`z&*M~&Uo@;9p_p$7IO}NG7yR?_K-c=o7wkJcFEAn zP5wxtGv+N$^i-CWoIbNH8H_1PX67R+He5K}wq$c9oK(`VP|jG%w>s2c&^Qz$$#j_o}D6u&)1-%w3A;wdi=1$aP>lW{toZLCxvUnhoB1K03 zeDUrDLBU7m$wFaL&IljBuCcN)`An|E!5oF~spVzeT`S7v6xIB?jR3#RtS znQ(hDn6tUz3YC}jU_7(g>d%BDt&t@kT?w5kxCx^Zom`sse5|fL0f)ZfaI^dnuV~KA zok+Oq&}S|bv?gf1kD?4H`1OA2;5|Kfy0$*J2O3u!_g=Edx_xP^&xhC-1XTa;?8|f5 z%e?ZS_Juj&=3LY)+vH`DL?*y9d1O}?i(G+L!m6kx1khM3ve><9(nw2$ifG!?){UOQ zjMc0xFz^yskId4G&zNpqw6?vvs@poDl&3n>WF+SC4sTl2sZO6hQyk6ZMvH~9TyAWc zk~JC?<*Ws}>5Ceg?Xb_DzkF!x(zf39)z;y|268TQMhO;;zKL}wo-=Xu#nb1sENU-L zx3o-`+ZVO4Zy24SP}mq&{RU@H2^$;%vEqiJ{G74Kg0$j>f{aQXO|P6QKZh0JaQS(b zVtpJ=+P(qjwvoekHo?vEbDC}VlW~k{Jw-35yV!+M;P-%r8E|=5oqn|YpedNrhiD@< z2*t7F?7HHpU7TdQl!L1nd$U5=7K|NCXK3@xaBhuh9Di?}h!IUT^IcuGFt?6GkPL9qyEXR|A6<@xFbcbCRQ2BA5Q4p&EyRJd^a*tI&>lCoa_oAw*YS(f5{kN?X}jANuSdBD?`>^YyCtMePQi2=%Z6Q)`stD(4q_|*C_W&pRJE; z_~d?9?~~3(UXVDghjZHUI;W9ia1gUr=Q_QLv2Fto7HNMuQ^`d!#eIn=;jru@i-Qxxo}_BAwJ7$^YG~Q4GuAbcpE-Tu z!re!9Oc#sO9i8+kXBvjKHnsl5F1y?8Dk+JO)!_Gx4y*G;`TJqfMsKb0z-YfQp^-4@p2m}wyjm;-zo||bvz@SMn6vcK# zMwQ9rNwhe@L?YN+1mMobQ|VkhNxS{nkhQk42Wio2$H!BCZ&YpC_cxT3cpwqtAD9>X zJvKmbjE3nWpQG8nHa9B$lFw@m<^_I1>X&io-QXAO8mt#iFk#myW(wV1UfLN+B@|RH z5t80(?HAMBc4|3;1&1 zl}c5<<#V|ZvnLRv)ANCrsQ)J$|0mFj+zgj4@-Jnz=nsc#uU_$FVBagjpRWCB zFcQts+AXWyCu2O!{0Le*`Dxm>)bSvx_&eYsWT&?EPt)EhOYsk_s8?D*l3^#!npP1XpdYf85 z_irRiuc7ZY%-1iawF>;Io=~vB(NM(}p(b33NI3Pd*Dek9 z3T}7Uveh7q#2#lJ3_!NPaFm=8HWgt8cpWBHPq+E%@r7;^KEy_>TJH2&oxL;V1B}H% z&Blr`n^zqu9Kw3AdA3AwS-WOSU^6xo*5HsWobFGtqw!Z*wg6`He_+{;UAiJcqUQn1_ z#5)OD1?C!*Wc3=(Nuo7*4x(=!zfv!-gU#)q;&Ck~0N;Tq(5>zHXv*u5t5#oZGdoVJ z2R#TOvY=6ONhn*@Z0DP)fyJy{M@6A*?n%@z6DG*ta!b&xM#-nBk4!nECN^^$kjUYs zq53+|@Qo#km%B?p%_^y=t)X)TV;sOqwVzZMYZaoCbEAeN*Y})`s1RK%=!^VwgN}$U zd4wXUPBufV(IbnnXgtQ5!i+q854I^uLQ^@QI&^BudCQldw?urN)4HgwZBeWEWRAlx zSiJZG+Mk`d;PAd>ZEef?dg&AEN*?$W=Ov0~DZBB%dek_@?K{EYL2e>m60M1s1oR<2 zGMeHXCZG@U9W!dXgvW&(YRG6=+RYfR-UG#jVwbIP&lHaf#XVU)vpdD(LIKU4tK-7s zLIKT_AE#kRo)3r0k5?K{@_Phy?`9opKu()O;rDDN3Op*UlkTbaWVk@PT7r*Dn2PJa z;@4>=Btg_Cd4{-NzmNMs0)C$)_Qp8vxECbgk4azE+fU2bPtp2$l1*Y~U(95hugpcf z|NEsUw3XS6sEFDN_)}Vq0QEo3#})AVq>CH<^Kk|IG3kp9IQLTsZk8XJX<+}BhK*T% zK+A*?mr#r===VeuH;_*zppUN8d*CrHK@sDw)A&k{ai@5U+kBO1^k1Cgdx)ms_))|P zbz7iS8j$ZsPulPeP|8eExWJQ#uul6wzIacw036Y`G&i&`nO>OI1tc}xQXW=a`lE}? z(IgkOBL~MiC(ChLd@!!d&A_IaklL0~)%w$mJcIT-;G5$T+SRD&1YW$Lll>K$JwZvh z*i{}im~z#2c-UQsl;BLtA9S15cjDv#=QZF8)%cdJviF z#!eewL6ND}jlLEL{#`QFwfCYqq^h@*uS^?n`=_ew7&UUU|NmfQ=;iUmK{3jKM*m;$ zMykjbf0=aNNU7~3xRdVz={ERI~c zHl@64FnsA5r}WE)cE$3T;B;eSqy^1 ze~A;{x@z|kK05U2KLAQmJfNigMcc=pptd7(o9DHC%0^IlEP#?u6K$WMCp+f$!Z&X2 z_c=Vk!K5(uGH%7}5wGtl!s%C36hBdw8InMq_3B3gS|}&3XUMhEInX9+mm}W1FEP>W z$;XmC$<$;eJ9t!2YI;26ForxWF5gfA<;KarL~^`8J-VT5ve$0#CDP0ii7HXQ z)u!Zz%e{+>o=nWs=5rdH2m{rK8uMALN`9!^H(O|>c?n#Jj<7FWmapM-5CiMR}WM+ zjSWtF#md^#zEr`R87@Q=k1JAA20J6INpE&H3D~Bn$AfA=_LIu`@pQ+E?p&qhGP(!X zk56tJ%qU`+?Jhi#+c}!IStEg9%;HKE!}**y)sd)8p=$X244#}zM#Y%{M@%9B1WL2-D%;S9Rm>R2w+*OAQ0u5?&U z(Z36j-k5TO(V}WRZ;1`|usfnTtg<#D)(C+jIOBQSUJZJqAr1XbQ0%uz&q`+!9D8ZN zPjCIqLRx(fR=*kg^eBhYTnwwUwibEs+*8uUypPTET0gaxw}x!)ZtD5Dmq<2g=hKcH z3Uc^Vw;^;HPCgs&PF$HZn4XZ#0hRktFDc zoVV_mek(K)ABlL6;P8o8H(C?73+O{99t`>*my8PUf%KDT`#6_aF&=rR0=jpN=wUO> zOM{XGi0VJl`fFY)lZfM-gXIkU_aC2=0pDEQw zaO^Fpfw)v(B|G=U#athmY|NE>Gci{{F;{S-bQ}0SiRT=Gau_EiiDzO_^(VGJP<%*c zNR+A_6-Zk@uUzTNM^Yxkjow@!XS+c*rDYX$R^PX?qgv#YYVlfX+w!s@7-CnOybga( z>-||!vQM*^F}`e|VEK|U z9S9d?y?-9Jpy16_GI7yy>Kd9F;Q+tvp0pF|D>x%Zo!vcOEor(l6-ZNKYk6^AI zR2$}rng^>f#N#h!o-;LDESU0g6dA5`6;%`&{?Jv31WTSTjh-7|-QkSc`o#t31!Xl- z+u{vI@=^9RlyGGCy_8ad{u{S_DI$k6c!0}x{rYQTTzd_2j)hqz?FFL)rA$8k0j=vWf|AA*ecY?-utE7UuG<9sDTbX1u9c`gt&r%YuG;|RI!3f^=r(Fi8bY+L zYY2jp<`Gbm8b)=A>^HKDGAWJc$Ux(2z(VQ)yqxKU_Xai}U{{i{tlbhp<*V8Go_r7e zWc_MdW+ulwr>4ScI`8+W9=6a;Rx=y52i>(h&4j-gg=qG;Mze2lP8D#X8NuOO4K!L4 zbwulXwdY3?@O^-*4u6W^u>ABiN)cYDLz?EbVsJmP|B1*~71d89k4gv+LJ-(Od?Y*? z4p#Y22x&d;te2{&c(Qj74t94B4aq~R+Qzr^Em+ra$a|yonxz8D{DHBIHsoy!D&vht1eG2(z<@;QJcf& z3*|cc()MUK&qE6Ai8fDbw7HGbM!<;*1cz1Sd%zq@^^5{)NN`Kp0_%i4jRqy}?`Cli z*AwC%)H7=LBwL8e0*ZP@4VvQIEudsa_^5`oPjAb4Tj25#x5T_{6ZF9&^|m~}C3?tk zt0gd`l_qEd!{&Ra?m^s>)$YN%^8A*7=6D`OU`TZj0-EojQPZ3U$b;Ze`SE~`3zt3t z-OFnv1TN&A6O=p%P^(T6E@h(ieaGuiE@cAx7|-H~xsz=c&?g$J!zE8ZAMF$TS(4j1 ze{Px2pL!i5II^zG>ggL|*T2TEbtBzmqwB2um?&=S?CDB-s*}m;nhuSTW9`ucIN4_5 zoQyy;Wai|7 z86}|tU?}LZfD(lOjW%SUH6sEllc^>hL28cue(c1B3r`#qpXV&-=~+Pk&U1%N{?-5R z<&{@#oIbu9Q6gEdXD~Ogrn|K6?BR`8#jfBiNUN2t9y?}W;Fz&7I(%SZ&&Wtm_sGaE z9loWe!CcINCvn@8NMAd3U$Ag2=81&8Z~GP1muZU(x2^1GZR_pHl!hqUWH_A=PuUR%ekk{`!`hZ~ zcFeZ5&31GyX*)KTN@lakR8B5*%(S-7bac+Px6gKF+S@a!)>hc#ASPCp4HUzQD4m}g zDaGfKx_09^11GOq zebT_dNvl_#JV5@12_G3e|Db5|fw#!*FZNJrh2YoyE}nNU_xPgO)E9ktL>oucu|F%F zwi3#PH`v5UWay_0{rm;Eb~O7bc*F>1HU7Wp7G=TT1K>?zQ|!H0ggVUryo)?@`qm zwnO}U#ciF_$5m35+~tl_d8{9a1YRz!&fx^wQrc_HD896>*g1IIc-#8Ji=VXt3uIB) zvzW~o@?G;(2-RC@enqu@G#(r$3ZyKh20my47Z%)kye;JNb){0(e5x;@Bw~Iw;&6OF z_9yOA^`=rT#}8tTl51pr*TQpF6=tJ~C-VSc8SBKugMUoLFdyA@eIG1*t{p8HL4V8mFkasW^f`{J@e$2 zUn#7OxjdLZ%DsbaGwr#dOscaO$fT`u%7~M@GaR9sBjz%<^hc&n8Y{2ZYF8CU&g)AC z>?jd06f4PKDAD5mb0|jCu-#j<`(4o9{Trr>!Z&0e;Hf2kvV?ZBp+WE-1-S-+j7WbS z!1960`mv0sIDO)Br$a3y!r7^zRveeqI?_^Fv7or%#L0ADGTE2rpZ1QG$Mt77pR{dN z$Pi8|8H>F%IMd2}r9^(g5#19fjh~tx%;u`;bTyY9Ok;IM@hq1Q)KlyGBZ2y(K%8;t z+>2l1!MJxEwcl~BI67J~*WR%EiItf|DjEPg+nKNmwIY$>FV|V_Sx^-7iMU zaXh|UZEdS=>DJD7UdXnpzRE;)=-46r-#OLkiQ5aqrNNDr%ErO=;p}Cxwn(Hc)-o_q zJ7S~_<&Uw>MB510Kw#4kjsr`U&s}jv(QS zbJ9eLPM%Kj#gTu}v2x3RwmOlNnzpz{kE}9p3tybc6R|jaS;P|6eHG|Nb5VAXtwTl0 z&)_kWB^_qlrCZGwISt!44M@w}Af80}4j>so1_9}v8)U=Mb%10w$mrY$xF7y63vsjPz|l3ff&sKqh&cA|NAZ(=k_N1Jbw92KGT4tISqOKLiA| z795hCE90*J1_Vj~xbfUC+m2ImxUE`$pq|&`r8_#8mfMzg_bh2GFX>EX(y&z-d;gJ@ z>XH5ZM^-CG_8&Fc(J@N@z`qzzdXw!Y{v}H_0L?BIuA$oR3`8xh7N1p7BAWwtB_4?e zUk%4i=8Pxeu3F=2?GM2ydg=ui46_T!ic?R>*9xr;Zmjp&;9KZZG8{04n}boiZCR`o z^f^_l#cNg6w$WJUP*ll>rp%}LRn;F2;JoNX(f&vf2gF%T5wBWQ3WG_tqb)dWSA9O9 zPICAsHiEO11~n}vdnpeOTt1zR?9*DMGZoIp-^$jIuGJnevwQ_tX70n?FX9WD9r!I89#nXiO2#%}iY>9NVj1T&! z+Xtpv7M6lZxORzzvu9;{-{Hf_h#HJpEnOosL*olN+9wN3)8SAm6$(R;86<0t4X~Z` zq%uY&9t_m&xR|{KtoTpfn9*>K^Xh=21il)@%Oy@Vhw=Qc#c5%t7Ce?2%;0bn%UdpV zVt^L-BU{Bj0_)p`lk~N@AhBYZ=Vw_;VynJ+I%?C@?kFuRMTRq@&&`;Ak9EYr=95m_^uJF$J&xk(*gSFT*2!0^d$g)JLL8SgFbiYJBd&*f)nTy z2ca`&tSXfO6cGq+7daD@ZZ{+LNg{CTm`>o1Ng}(M&Y1>17MpD&7xC z8sU=!WRhb@PLzP00i6GA#R1%hF0n7iz?;fed`#%FXzK7qvyuTzn z1MUBU-+ho?#0+ya)MDQP{VsSHXJ-i&#muwbyq$f-cJ|3--}jE%Ce8LrJ%|rj}4*6iV$JwIkGPOC3veaGAei;Ux{3}sNjl1 zuPv~cgSbNZ09-WVtNA*&kJ*^fFzJNz?QktI7?!xL7HiZwX)xk~-{bbn;(E+dzizWy zV&b|SU>^;74l~Gdm(AqzhD{k}WEpeRQA#ZCHRa*wmQU{lV={XP9gKvh;iD2W$`V${w=X zh%AX$$e!* zd&C1Kq_cT2NN$6!V;?6<4i<74970K(=5Sufs9-g>3~8(OhdO!cuMly!}q#yJC=JkdiQgH=$rP7A_T^M~7-2WbzEaXG> zmn?Ax9rs}ll!vQzLaaKtWXzMfj~zlxIL6RNG3X;-!|Lc}$Gp~;H?u1(VV5swuAOXA zKOR?{PQwDXH-<974{mpRsfS+dT6_l26S?X>S3O5?TqqU`u@C6;>#<-Ee}eQ>kfs5R zW_gC||1wjd%f61^vr;RrYkCTHamjwykK(^m0%NpaC$0-!i1xFPX@++nRoKO_7(=9C z>9n?iDitybhp3P0n&=sE*a&D#O1-1<-!cF_Xra@<2*{2yT8v8$OUY_W)EJ1x0_I3b zm3=KU)p$JMX=!oE!@a%3va6*f8~!Ep3@qu`6f1cU0bUM1LA0;=sT{3JH3XH%(d8his3>ma=u|5B6gb zUuvXAw6u`eRnb;7?{O|au~I<>$Pq$@-ggnj_J1UhOE1W;d zd&6GQ;qEr-urU;QRQ9xRd%fH9(WBKn@b0>l7&*ArGp05bv_YD8N zMay5Dk9kx36>&Jl;_n%z*(oHGd*)dX{_+m_DpHT{=~Y*}J-h#q?OAbN zd*F}$sXb)wWG;i+c=&x1m%(1?UABRp+BCk#DSZ6@qVC>>LdR*IDEi|4@%FeM+eQcb z%`%wJ7kK}azv*Qej8DH$=Je>rQ|}w#F46sT-Gdf)v&W4k`E2PCU}Toh{($;T0{$$A z?~&f(@I4OV%K&EdCibae1>g(N5|afWk+a}*67D435cce`+0J!`eL2^0+s&pzZ|GZY zx5xR-U`+M-FY|oD;|lCHwV-E%MN}TpsEyuJF$A)|F_C zV?4Kq{ik#~{Fr4j`Nhj{8XCbp>{j+&`3Atxd;2}W&y((*dym7v2l&6i%AL!uH=cMK z%`VPrl z`vW@1KZ)P(^WS?M8(=3}=B|)87+P>9Exfix(1PSRK>Lu_L|!jc2V!~h^J%XY8uHL@ zFJsrzqg-}79V2VE|I^?4DzhQt*tOHLv%HqR&GzhjZcsk|Z+X2Lc^SwS;?#_Lf&T>d zJr0ULyiQ^anh)3W_{k^37fFFb1*cf7o0%QmJcTMhGh_vh6^X`O0k6$lN|eU)#f2^D zg3A%%$BOVr^7_l{v(+v_zPGiuy_^w8iO@+S1q;^HTwYbJtnPHW9sWF>G=j`WYVK0` z`>1>L0e|?=LI={z^|)9dudR}1nSa9b-?$2Ef@w4Rq~=$gV+mhHzc15%pKl4{MSOqb zJLYyIg78R+nn&`O+kz%mw8))Ic&5RpY`HfX3eC6^3D4r7 z8d9b`iKKff7)aLs+l`daj3<$B&xAhJzpk%uUH<_8RFhtBQpM3Z-n8rsEvB9pg%o#6 zkpoGO5?V~REDqKdC{xtebWm}pLvk?TQ4~JROeoX0UUW6kzrJr*D6gpbP$;h=;R@Mn znY%>pFrcbJJFWFDi7FrYTa4IKu(WAZmXG5NWMo%#j#cZTh)pOiobag*n6_b_A<}*c zp3dEnn{F>JDy4h!_B=WI^iN3)$ibw~mkb8uE?0avS%20|pI1_<>U#S4dU<7U-^y~l zQi?rC&q3675Qq2Jd;_h=DLK5dR#9?6Urwpj>JF%EC0`^K48b2UKx2ycAJUpH-rrWv zkG%p^Y%H`V3_@MmG|4Ai4e}=|gaPZO&)U6>@8i=SIkwt+^!ZDR%hH0m17&q`TXkgH znA#o`uTNCFdmgGA<*VvnYM<0!l^CdV^5}_+SD)P9^fpD(GJ(1G*-Oy!S*rc#(n_LA zszZdD!i<%QC>S*#7aUgTDYN@ivx4+|oXO_vM_w{sHd* zqxZmq-mqJD;f;QF$u#$Sv_2EqTcK}a*ylsd!lYo1_ByMuzxp;FcJi-?;=g)f1O3^+ zzH{i8^RR2F;GBqDJLYeBQ4h(0WA0V?XzX4Sw@gd$R3HOQk^6jpu|Qcg>uutgP6KEU zpOFg*5*;|I3cILuny;q&#Tr3`bmcGH%w>G#7wwU#Huq+QN}y zYoIq6Uc7X|?~F(6zM#(^$BRmP`}~_+Ay+UGte!C2IvbCs@?qqd0v(B5cNow}{^q2r zCK9Te{8&8=a9t$gwU{hvC0cM>OpJK~Zk!Nq^2Ag%Yq#1Ald3h_lWJMEXdy}X>*Vc%VC zj#ziW>upg>%f|CJ@|W_+hP)R~a^tl;-_d{bxAc%ii4$-$SZ~DVs7=DU)F;5iSCX)U zKHbf}LPnbKt-XZPgZWvAxdcuRUffEj2Q!?84=wQxju$HR*-2|JoSnUJZH*sr#ZD3@ z3DYm&LC>xu|4L`_qZoto1Qdj+8EheOUm=GxaTvY|<$Lfq^t94Q3)z=W%+qBX7J?$7es9aTYs(k|;6zo3K45 z%G%nO62?nQwR>Y+;~X1hxiUZbb7_0+;p8iaoXYuX#20qEeRywQFnFpj67dIvc&oD4 zZomJ-rUo6vKxukEgB4zKJLNd`5LXgIfCc^<;&n|b_~v*{^%iD66q;wz?0B$NBhs^F zAA(!$gH(i6QUpn2lAJjiufCNQ(0c|&y#@|0tYa$DgY};pm*h$s{*9Lyz_Xfy2UJ_#0VpX#Pp6(pn4ShA8W z<3$)e1kJXzEbd5-5BPkZwoaAaZD5VM)j0d1J|#nw?ypFjb&k?-|GVn?!~f3uosIu} z^}4K|+RWpzL+hg;c^L?7{_1JYYiNloMR|F9AAMUfRJPU0V43f4A2H6+> z56^psokH%DpNUL%9T~X~v+4mZItQMa3`4-*+gAA|%|IkfYL7I&PtsY+Px$kRcmc29 zwyGI-GH_G;d$#!Lb?f`t`WJTd!OvIr$35}dQ$`l|c%TJ(v2XGyy9k-jN|)pW>R*ry~4)yJ#ze#0oj z0Bz=u$`|SL*YQFzp2+3jOozisI(6*Me4Kqep3lc?ABod;FLE)GJS4J2^DV~CNH!Z` zpNnQPQS4i(BoJzb^h&REEW4AvDfXiHIyLQ*R{5FPSP1P5?Gy2SUY7PjCHZSl`=6^l zjpu_<`f!T7EQsaNPQ&4=ONH5;PQ z;+f8Lx}zhV?yUbkvuPst5jfS^S-TD&Dg5}_{F!|bwD`H8@O)~Rgo4+`XrfJRS5x;# z)qA_6{)Nw?fLToPUd#Jyt@-`(UkDYrM?<1}h=FQ1xC)lHy)kPzV0qie4jlG$zu)F& zcP6bKm(5)p12u_TCH6=50qQ~OwLt~7z~e^@r<%CoA|LO>Al?ngHd<<5bK0|BN5st* zIq_fZMwe0wIsBGiY#Y{NT_a+-(PF3mk)39bi~dnxQxaX{wT(0zESkks z5@WFMpwHTk)F)fyQtdQc?OPVM#fefD>#bHCRgXTcwo=F*&<6wGjdKkV0QaMsK=9qc zCjfQV6cKz5XCJU_mfELWu5i$u^s=K|PN%E(ZFi#3Sh;Uxd>Qw}M_y(MyMj5p`CMZR z&(oSNG+Do)FJu!2F2dl9d82>__n)yo;d2|~1YJpA?c0O^JIamX(qO7~wS}GKc82TY zd;_DK@HB7Ch|x2?oD*0X!|q@XoP?~Zt^t6-d=8~qYf=FnFrNko(FiYcC2=wTEY!8b z70?c0t{q;A=dT77DkPldGQUOkvtJ{worV{VC>${qLT%wpV1bi#K%vo41N}Pt zdSuCp37^wxv_||&CRS;SEM7Y9bvaFzuwPC0E#Q}3j`^39c5#(uBk73Gt;9;{R9VG$ zze|l4Q!S&nbGRCgK(3cC#WOWO~QTmyS{PH1dl#cg*PFdoM)G&0`rayaQX zuzMj84mj+5_>!N0=i_iK-z%LepM$6U12hg*@?{!a0>a3ZSRq*BZWyYj0h;rP{xFdAV)Lmcfpxd}(2O>r|;_%9{x(A@(0=9}d>mD(3d( zoBId1ENLsv9ye0mvb6Qoj@g#-Y+J`{YwIkOmW=4D%h1iPgU36@rH@36@S^Gtti6r~ z^6Zp#Lh7Eb3TGIyfh|A^y9vq1J684dtm+t=DSkQJsVYSkrG%bT%KPQg;%>ED`Eqe) zsPnL%p2Iq+1zq4xy4uz+oLbjbZn+kIdRr#b7PJPu*S3_m1;W?1wzsXDTDZQgqjaq| zU=>$s)jil1MKutuIw;ANLUS@kGbKD7059p|iE6Hx^?SYHsOj+Fu~W%vK9N*#nyBh9 zt_p1Vx+4)!bXfaS?1i(pIw2TEd#p87i=Mqz=sx+A$Vwo>)@pB&uM~PubFo1W+PSI| zK}#~!y>Uw?j(8ZC+3LyDj_65s52%roBdJv6Du2>$T)3ov{XqYb{h9Hy(Vp~QMHkLW zE7hKK&k?7~KkGdFwCSE>*33j(DPb2&1U<%8UszdL*VD7E(!Xu{fD!3fe!OKlHgm+L zo~hH;Adr@^!z;=ECf@-+62&arl^}N9Gucv+Qpu`sBq znadLMq}*>9ENqX(a1%4ivv$Rn!h;|32CtXN$$h`Ti@3gNFo2UIcv|!4JVsKeW`#KU zAa5+9(1L^SisddY@tmSOO9`%zMhh1g?=B?d_x4#51%ope!<&_3;p_*0EF=uB58h4` zKy|7-dtUw*nhUfs3M^Hqn5Oc071PoS^-s^XFmR8J@+%WqjC%;RDSQ`VIAr`+vknYmpr%ItlwFCH>F zO#A-R@4@QONlSfra~RhGi#YG{JtI8c+;nPo5>GVqvch?+#oCsfv$%cc$d3MHS% zXi>H+kxUJ2UOALXO>CQNpDLB6+S{gDTBhtvFIYLUeOY_?@S$k;ace3jOEwTs^>5g7 z`J(Ra>jvn&_3q{E?aRBh^VU~Ep2B#dM$2s)w5=b=G=Cu$8C{rqJ^w5oDK63J@c)oV zF=9_|dofW?dFtt9*_a(G+fqrJG5PgWLgXGEDK034ioFT$xZ_>MaOD#gdq>gYaYesK zRa7Q=cEsRE){?5Q+fmDd8V1g1$F(>1N^X9Zh+WLPrufPAC*{2Ueh<&dA3ql`*ZECZ+uoz+@jJJ1wSA~>{$R+w_M;^SF!}uR*^rK8BUr}U|e08 zDJ*I)Os?;3UucYlTLClfJ0g+10*#?e@>cjGjx7Hquwx<{n+uWqlLu(rn&^VwbAWLRliaMC5yXWek=q9gus-PpNXM>j+Yt)B7e zSaEbwst9!}PQUpN&?O}uMk^sCtE$%bVCorVJP%ZW*~c#3q4MhF3gGl2VF;NzbJ}EX zrn+)*S8{r&YgsjCmP3(f(rD{D;#?MV`b@KXwv}_kxq;)R7VQc!Ydq}ro0OqqM^||$ zkXo^FD&#^aF}`i6cg=*d+A~&84&g0v>pQ&uw)p57$5gFm*bQYQF z3B;Y|gxZ}+ja5RKWiw+zXV~YW@@8n?+vOJ6E*MHgG6N`zq1Q8!w~H+StU7Rp%LDHY z5Furn-eVuQGVb;E;#fY==J9y#*0{r|+SOQe-I8NF2hUjdxL-|%BJ!4GVBeiRBS>*s za{;f_U@#@KFBRK2OfTEiq5AiIIT9jDC+5zS75P`7^Re(Mkj1HzJEbXAjt53X35<9d zA>XSe)~s3xC+uo~yrc?CuC1)TPlb3 zB2U;=wyAjV*OEY`Y#i4PUwAm6>?HPC#boSEk!F>VPe&m$3r_exx zx<4#-a_R*L)%yDMV&deO)+wQF3xPsrfZ4~FUPA9Rzhr6s@5qkB%H_j$jEtOcSO@+t zuN*%)x_z|T5i~pPX}2rk&5z`ZqZv;E$xXZ4<`4JT>Gt|-W2u{^bpPlH)Xxc{)Zc91 z<|#b69JaN4T}F(W9n6*n6IfT1%in5qB8g;_f~aQxE#_C`XTq-*F&@t>ix?U;a(rFk zt`#vEdTfIy^tDHF>1DvGK4;;5?;j&v=kPdfN5tFk=$o4{gV}1f1uRxP(@?UyhuwjI zyVq=NA3tGq^n`J|IC$*%@y=zP^#AgXj^*rRkLwnzt1azITa7l=;q;o!L6b!`nxb*H z*S6H<`GnW$bek8N-_UPISHm64c^AAFtYVO@#px+GBO{_9J6(@sHFsHe2?G>dfU zbf=;Zgd;gD_4)W03VBC;s_MJb8}_N&{Lzi!Uxy<0OBY}0$$LWzJ&-)|5o0Le^%*W* zY6vSzEGi#|SKtIttP-nzp!!&{_N-53o1Ff~9t&G!hO=Q_qWv_OXto?HxV&efKpz(3eCmg(z3Cwi%3E-%6VERib8QAW%x(nCsBH16Z-e=RG-m0Y35w5~ z*Y8!`fsfDh0U8rc)Q=vMKd3t}nyuvi0xQ>%gGBymZxnPEY8s|@NkDyMwPS?3MtF?nJ)8Pvav%N`P8iH(FeK)7Cmj!9mevH$gQ3KGW#PLB)vB78z&?G=mB*U(<|G4F~ zwadqiTskO7M%YfBYf;iYEWh8B>=0XUWKjN`387MD4DXRYEKLgy8+pl?v1>-woj*D( zGUPR-DOXx?FMF6RIHc+NT@Et0XnGBrB6_X~#@s zvR%GS^IE?>o}3vPB7cbTe@^{vo%ykeMt!m$bj}?#U#icv`POit=|EAXG-zeeJm)86 zhX>zi&rNaX*lr3A&rY@{2j7x-dvLPs*Cp8=Z$YKu8_$`)@=g7C3f@zhVY5L%;W ztbE6syfM5+FUR|WcB7Vy_ou~lxO>zD*{*h4tQsa*i6b>ZY{f}rXeWpxW4r}k<{38$ zs0o4h1PCmW#tHAAAiSM#nkZIhi~U*>-h+e{b+b^7ldIKH?1Q1%b<%E(X&aD)T5Bz$ zZ0U#^6A`Usc(>5x=$MSq(87p>ThXQGhQ!6hb_ogdL?ozjQMSmq{t;2}$ssWzJ;R{{ zMLR0P!()>|VnXrCsXANs#XUz>EtFGLj8xXCuW0^wjK1!(6yFap9ybTo!Pd;XvlH^{ zagLaj%H%!~@v#xH!J&Bx*=mBTEGjBIDxq8}vD+eX9Eh#VMUw5I&XUVVr>h) zS*TtzUW@!(s?Qr#e`?RP;bwRPw(9?IX4q05*Sm7@t)kc?zvg|RHGW6<#v~2HHZ!K z2AOHmxoHez0>UT>Yt#csPXx=%txCjK8t-ZuV@|Xo$MkZEf&t-?azKrN6_X;xQCTUu zJ)%Ox!Xg|I;c=n3?HW%mF5#{LgO47|ktjpCAE*VDKM}^c#7AhbX@9fI%n{T%{9C1kzHhdsYw}mIi#m0q& z_vojN#O1n@T(QyN5!js)o0^!G%Xv0fu9upc#kHt}_J^XlQ5vj+yXGe+IpeZN$@SA+ z?wHIjQRt|--g&2pt=s?E_GtJe->Dt8AE-n>!bWrQ<@z%?B_K*GHkte2YB_U+)9&DRJ=uNd0Ufp}34OB*BSGj?EJX_0x=~#(Bre<=(>kGH%!fhb6_>vVhIj(>Zkl|GS%Y~ zvR$J!?T{?WVSp?{)#b`absbJiWeKYjkSdEd(Bj<1uBolsq|;kf%H6aqr%N3O z$X+R8a2xff+QqbcklIXRF9KBrDn$=cG4G-m`Veb^I*4-ZNas?H4b4#wiZNU57vE_Y z(pLh#)#%v9j>Kid!Q*X7;rKEdGu>)e`yEjTJ2W&rIUzDNw8WyQMbPYWwRR_31hku= z*8;G(KF)+*?5*lR>E2O+s2jm281^0z!nV~L%X1C48AR*yFA|8QzCIg7a;H;Ig zT4|{*G%7UMZqsSo?7^W?j#A>hhw6h`{tlgML-OQ3fUMo<5h0RY zlit!-lxFlQjPW(}_$1M#sx*c_DXG0((axu(Q8S-S%{+l<6c`RRV6-)Z@;3TPUrR(fZk<^L3|All{MB9M|A zZ!g^Dd4TFA#&$-%M3tloq+%2oy`lo~F^+OcO2Asr=nz{(Sg;jcVzw)zM`L{V)ObuW z1Vx62hsMVyCh&=aM(dB-4}~1@8ZA6D$Nk(I^zhcAHU5a?N4-Npr81g)^Z>iM^vkzX zwMq`xdrrMx+4K878Q-l#$LZ=GPo)$4rPg?#KT~^tJr_>!VeGvGA7hy>-_8^(cBbeh ze2{z>BL~RSs71z#3U2T9B|B=6Z;c_PEET&sAI6O{13>Y8A)XWciB1wU;d``VZjVS6 zHzygXABR-+Z8h=tV2?~UcWhd5YD8>Aq_R1}lb||c(?~+JD<>W*og*S9QVWfVh>mvz zP{kK9eFrV8P(DqEbp&J=k$_^TB0&>l6X=Q2QEFL)gY-fzGA6>I>xl`(y&(_ms)0NZ z1CR8DUY_)EyP-^U9O)mTksfE2}Q6g2!;qi-tnDeq`Qsj(i1 zsc&nqP-l!YS<2ARp<#(?R5X;r8BvL;abfYcu{JAs>=B@K{pV#zP3TnjsPKR)jb&>7 zotA&+f1u?P&Hq3L@+cm4aEXB^^lFFxk#l9uo#jZd<%L+H zB4VQ=#;W`K+rlHmLc+uPrrM+XhJ}ZOMTXl3>wON7)Bb=~(pleA6V9aY8S*;wSkI?( z8e=_O>6E0QW2{FSI`^WTl<|B2jqK_X^0&)mC+F~_HH3@7}wHR zF!9!i7>orS{OXBFRHGfXsM!7y;mNT)7L19tMbTI=$)Ud*r2^xcGxm5Bj2_RYy}I=_ zn5MWpD6ytKV%=z*)ag@U&8t`FhP|?^gpfcL*1Thdw8{z48H)c)ongYi&>4ncba<3T zhi6zb(@A}h9{*TSUv}awDKIsNc#j%mt~-hAmK>lzP-)3l)1grY8M)s%o1joe1nQI1 z9Z?bC0qP`C=n>H4{^zw`!_3=hT?XZ^reuwF^}in5pSjj!66y?Nd!{L6U(lp^ng6OL zYv=raO@=+FM?FbNn!QI{LSB3Vjf=roymt7%t7n@1U(~ZB(9N&g({zEnRPIx~)j%~y-JwU$wqKUo?ri!2vfuCm-_dC2mj zSB?e^%Ota;XQYmIfJb+Wb5+HSqm`cLc6*di5; zgYjkuF9`li@Y>+(gKrDIFZk);SA*XR-V^*)@Q)!Pq&%cLWPZq>LmmxzG2}qVcOk!o z)`X4>ogCU2+8%mA=wqQjg=t}BVbx(H!X|~y3~LL!AnZAtu-R>iwk+F3+YDQ)ZMp4I z+XmYf+Y`2zZ6Db7+rF`#vPamH?b&vZy{~<+eY}0Dz1hChzS_Rtev|z^`!nGw;Z5O- z!&il09lkkyTllGnqKL+bospT5JtNPG91uA=^4!STkqaZ=jQl9_%gAFtaV zqNsjRBcfi24vFp&T^?N>JtBHi^vvki=-Z<2kA5=xmFV}P{}KIl^iMIkojE2YrfW=5 zOuv{RF=xk2i)o2DKjyNS{W0If{2Ut+TN1k>c5UqSv72MJ#(v{Scl2;nIBFat9g`h1 z9c_-~j!PVmJ6>|UXVw1&QDsM^w*?KNqM^|I9KQr}8FlzJ4GAN6((bd7PH=bG)h(RCutlGZP6 zNZRFd&OOur|?k}*7EVn#zod&Y$s>oac3IFwnCxg>K- z<|CQUXTFj7VdnnKe`cP@8lE*VYj)OxtW{Z8WNpa0J?nw2r?cMd(znZ^E-SmN>+-iQ zo4ai7@?@8nyL{W_muzcxbhb0QYqlr5Z}y<?=>_2l-+9hf^N_q^QMxeIbvSo6MHuFoZoY4&kK95?Ribln|j{ab8FAXd%n=~^`6HIQVJ#(++FZN zVS3@83Rf5I@0mXMks<=N!*e&m2#i=X}qFp36K}d2aCB=J~tlAZ#vIoi@FMGc1wX%20J}TQ+_H%i3c~W_Lc}00; z`JnPq<>!>wm(MLN~4Hss5#AV9l*HAJ!JsPN`jA`*N+fZgAbYx)TE~9`M}2p#z^8 zBnMqK=$FCGgLe!*J|tpD#gOSkUL4{bI(+E!LyrzUIZO=;8^myLLM#G50&85uP)apZuJ3r21n z`Rd4%qwJ$xKOg_?_+QQrK0Eg8w6nXPU3@m3u!jyuT4xlWoPAzo?;nK*Z2*5C^*C=QKc`%@ z&AZFnBPiW68-D2<760K>p&WIA2>V|#7YduY5VXl44y_$r!Kf?55Y>iwf6u%wh6Ig) zpVz&=D!~4y7-G2(=6>LM|3@bOKl1MZ?Z?31@0qv65S$#5gYShyd`89s9wLU&Q^tA^ zz?_6R0ka0?Yu%XcU%_7@aG%5MlZoDgc<#jMxH)V{K4id$WupEhn2k$+YPH7u5|ODD zfgc$456CT8e-hlm{6O#CL)y^*{7;DQ|F!uXagym2ul5RXlfWC99{}Hv=f5)J;OCE; zuOOcg_-_@i-!;!8zW+^ghj3~4i>S^9`P>6DSkZsTtPz>2vuOeD|AE1%Fp~`8s>C|w z%-=P{OMmz+=*X944Bl)0ca6LS`HTASyJj$WAME|7(w|?_Qyjr6=OZ}TkBxVyIO6>$ z%y%%WVRq?;{lFjQeUG5!JmP&*?jxM{br|yhIO^{apHUSkONNmVsPkmdZsD0MFX!h# z>_ox4_fwc7+6GZc24z4u^SvLKun$Mi3Et1NnF0Q0Ag%vDG1@=D3zZGsWa8Gd$^a8C zAM}2S_p@LM0KX;oqy77XM%{q*VSmG!P-Jd3p1ybEiMF@$45su9xHI|t_c#yguQ=Vv zLjrf0oH6dxXi9vm=xngsAm{(W&}xM&fR7~HpuiK<%k!s*62DDS=1P#A*A--QUGY zvA~5^u8r1Gt{5{!+S(c!pSmhaB8g$IJi?kNPQmU=)p<0E>#6u zbC9MV@s6iy!U2cltJE6ANrwE@0Oy3+0&~8|)=-{QE#kWs{@z8t?Zq=3{+@>Wc<_9# z7>WMKWw{aY%)or?cDTI+cro01qP*K7qpwgN!XWQUu=3-C=r6GrRPF>_m*^@t;<-ZP zSUv^sv%w?snP@;d*uTUEGmtpt+W$^)zVYt!hYdC~Qz@|NPvGN*85Xmx3}@l#3*)0p zPkeU}lsg1>H=aI!*f_v=H@*pe2)Hxt8pGXBo60AZW0WP7RVv>}Y=Eb9bJ~MMG46%U zmsHMzU@m~U1OE5psflp;7@kkS^buK->dFq3g&;w9$>z%?c<<=HpXuN53!aF7p9xGW z!8ybqo;1TNw8LI2HYSbn?m9I;D817>8qKg-R1&`8VLnY=itjW6ImA!2SsqC-n17of zqW;1?$%hy|VtB0p@)xDYVYylMbPIVExyzqGQwTTKsnV=3*nn}srcstdSb}M6wL`4H zIEr#IT=c|QCChP^_Z3(Hb)&pRZk6xLL-K2RRHdjM*l$**&QY!EDfO&+Lw%-MG`kk5 zMQbTqmX@RCYlT{g_M9u!73oTFrMl8xU0mH=JzZt4vs{BP*D}d9%hlpK-*u7e3fEPx z>s&XvesS$yRjkBYNRDo%Qn*z;pb<*sh@pVdV1gR zzV3a&`=s{?@5A1QyjxFE?*4(l&lC4!nTZhlv7coBG={SGU$%e4{yzIo?%R&vwfnvn zV&BnyKa$(NU2H$R@8Ny7?7Mv5#=VF3J|e{4J7CtrT($S&y$yQ@2=VFB;2@*Kzl;$3 z2?>8f~3{U#DHEt=DeS?$WmEm_S?GqTQoCs6D1Vp*^KNqdkW? z_Rl!e+Ff#(abUxj(Y@^&B%9VS<}J!jbtd%J~r3;44<0jyzk zv}K$A#I2#jFoQipty52+^o&(g)ihP7ZpGQ3&1xiWRU53vsk_x3>Mk`3Z8zQf=@MPg zPSoNwwP9j3cI`EYnPR?Z6Bl64{C05%PVswEydXXnpNPF;pZHo$Q3F&x>e$(6)4!A0 zRx2Gc1$V<0+)^+j{HQOt6oy)sr%Gw zHC$b$Zd8}6n^DT2)56sADg-CE-LK}U7qkeqUEQNfRhbr~9!H%XsD-E!+-|Ty^~Z@| zm1;EBpW)^=?Ej4xiC9mUj-A~-MG{gX0Z{i$&0wX z=T)?^o8{f;eZI#Tw4penI2hjpqVPSyDc!QG93rdmU0{HWlg(&t=HZTob#ke?U9Oc+ z$cN-3@-aF$R=zLd(H?6!12#cg(cVXhOc{f=I##%4B-+<_(M=|xkLv+_EEPI=j;NLe zqENcTAc;MnvIJw33NcugLkGdRk+Qd#Do2Saa)cNst3^HT@|lF&d&bD&V!9kFX2|il z9b=X}N6f*RirI3aXp)n~JUK-ykkiE?Ia4f@GoafnMfts6t`UEc^ToAtwYXKT7k5JU zxf^=@UGjQyzr0y&lbgju@;029eT#SoC&NB1?-5VQzl+`SRq?*uF1E{U;zQ^%@5&d% z2RQfjGn}08xqJ`nK90yw#W!+~_^13#Tq#$GH*nW=HuTJ7(I}eH8?=jM&|O2(zm1nQ zIH9#wyo5dX17)eW0XJnN$q?v9HgO}yXHmi{;-CjrK#%Ju^90sV<6M?u;u7?2*U5{; z7P&#(1D)U%`6%ujcu_noZx_!(C%6py?Jdyh*2-n#OZk!dP5r8&yVOFpV9laVX-auD z4Xve3i{chDT)m^-Rqw0a>Lc}mdRx7vK2{&9_i$HW2DHswXkFc95;V=87)j-$H%k*k zabwdc*-wl>&pQ!4?_6l6EzqJ{p`|aDjbe$MCH^euikqQ9Zjx7u4f0a)H)u3}mp6!e z<&EMI^x}`oJH=MHNj!*=)MN54@toW$o~LhD@-?wbz9jx3-x8n7H^d%jKVRTx-*4qV zM2y7Q)<}v?oJ9ZdtB4T4;Y;Hwe2@DDdlr5`FZiPf7RT|O>nHTY$Dr+Z6MbcOQ6meX zNu-NXnJLO-mME9F;Y?JL5Mt9aA#N`%N<1J;mgj{#dy zu4Wi;5XS#24cH3&MgtB(jz4C=p#iWBQvBG!+XLWm>BbmLk2gXTYvno&<;1QviE4ax zoF|ruRxt~$Wg|+y8@e0nH*^#?+MhK2tQoXEUHh z?Ar4T@z=p+E_^kC_k4qLH)ynOgwbPhqYr36+zsGoA#CEg4skX!x5GI+r7hzO)X#*g zLf9ryDMEa>)dm{;S=jqH0;U$w=@RN8hJq7arl-5Qg^%8N=CBQZi8pru{nJDBFhf;x zF6dIDyf|HIl$RuZUG|G0mqp+_P}*mbwJ%>N=Vx&~`eil-9L@ku$`y*)ZTO(vqTaTd zrA=~Pz}%7K-SDrMp)q0*B;tm|=CR+v+#pH$DNrtUmP#RbC!?21owJVd`nah_Zr6ie z6YQz5iBEr-sK;9!X7WbiSr6WN;n`7AZQz7z!#udQAx6rXCOoNJ&qR40f$&5Bt1xGS z7hj3cM+#^hyc<#9&hUrPiolG)YuGcVVK-`!w4!$pK|d0TKHkRKN(6e^NVL^aGFrx< zzn+FM{C()p;-Cj*qt*4I$BmZ>Xmz@xZ}<``1yZ0Hq)HchhaAxW9U&d<>#H(TX2~ux z8yZ87*de>2WqMt9mwB>>%$Gf70ovtmxX?U0)FO;j~MRGNI>@wVgdkNN1Tn0Vqa#0RVVjX(OUFabj(O-XnG22zpnn)kKPF^qn zCO60%ww?&n@y+c^h<-vv7jm*XZw`ly}HG`S11;sCycaq^ z4fLS8#IhL(8?Z#UiLUNv?rk%Jp~QvY55G!w|@?L$@6IOHbIvm4fm83 z=*?fmXzL|00DaiYQp#6w&i`v-AhapcQQtsM|EAn2-(qd`UC}1rgRVDU?vfwK59Mz8 zk^C6vgnf!yIT+gGXL67Hhun*q>LIul;B$FEet}Z{p=ifw?htgc!_dvX#JKKj=xImf zKjk;_TlpR4j)q~R_XD)PW0;E>A&<+Sgig7ASb-|7CU2$SSHK`SZP@^$Y8H@4AcO~MJuf5Ir? zJd8BzdHgb6HK-YCrfO8Ppk>T~wlNo@nHG!_=3~U)hB3newNNdB=0W<$`D&T^vs$h$ zP%Ff9;(2i+^#2<$T5#a>+j!j1kciosWQ-V`>Mzh>E`$zq5ym1HLyNft^BR|_wHT4C zW6kBS&|$8E{&EfLF4wESL6f-wn#_&rCX87&VV%&e&}25N+cBQH6CUEsMuu8p&+wFtZPJB(hL;M6?m^9<}pd0UkX8a*( z$l@Zb@VZugqCSN#_ATx*eGIMq6&P8iiEG5wSVMIu+WyVhPrP1iRD1B{bA$LBMu^v| zz0gWu7LSWe=>BWOYH^vkRIJ6g>pXE-tW^8N3)nCJIp*&Vs4vt(bx0jnU#hRv*XoG+ zC(c9oR(+?wS4Y(k>X`ab9alf86Y6JmQvITSg?@hu8a+O`YYKWjPLPIfAFPEy-w%V1 zZ`Z=L2r1oG0xA#NWTkaR=Q%QsGF9nb=UH=9++prnPJw-sjUqQ8-f=!&nm2~tks`Y zrN*@O_L3=}RWv%{X)(XmP)zfCRPFpZ{MpMJ$u`zoh1Dh2T28jLmILYB78<^*3@KC_si`)& zt~R7ltxLgEP#jjP{IzEuzEsk9C37^bk+Q>+FJwhl6L7CBbO)I0?SgC1WRnbE@9YQ`f+ zDuV|Z3=h&7v<_;Y)ik}qHn?LX1%*YN7LYEp4&{up4mE`d*DA|Uu&wiGdNpD%GGZC$>}Jp;1Y<)s|-Ko))4{8ttr&eHAdFe7!lVP zSy*F`tkKip(F;m}$7AGMkuS@QB2ir%G@`Mkwb`I*uwUz=X85Wxgj!n=KB92}igD|L zxlQ#8SO^epZSaV|vQT1#F5$QeP>XCM+M4Ry8Uspwu|c_5FTfs8wRN;EsL=s}Dlt+~ zXmDL(q@vIlL#=g80MSw-@!0b>rc0;1_3W9g^$Qzp=lC7< zaOFle*A-jOVJ|wm&d7x#Lu7U3)`?6$Y+|SSTj8{wxZV&_z0vB{`&-@mhJd0{P+^Pys<#%Nk_zig=EyeFpDH3*tS({8*!%MZL38~RzEn=yl z{1|){`P$4PYqMVdo9pMbw6(Xk%xi40HV2R?<|2)j*Vhu4X$?jT>?z}74ywK;s>0e5 zC=8<(m@Tmpd5w|FH3rEVojH$QhR^~VSzF{Q6-KG4t_y1Mw+=N%5^82J5EG{KR=n{?#EpU~s<+K*qpj@n%ZI7qM+N#UDH9$}$Mk)#ou1kzm6#8PQ zv$h3Pt5PHJrDe9ZPPywTGz3*@kSaAulvY^Usl{y%h*oz)i))CZ!YKcx2GgZ=)&+ri z!YwVl8`0PLo@GG`{Iabz7^pKCsP)O(AX-}&zTkA(Qq>ETZ5cutE$;$uc^8afcZuIoFUjRb_SThHmjt%FhV*emBKIhD71pIpK5S{HDqT@z zt29`q7EqvrpIcBcUW|@F_h$44{1V1p0)vtM-htn3 z^_-OqTW9L1nSK$XZ6!sV@lgToEF(z1)Y$S%q`$>A9nq@l3D9PoHzNqQ*0-juC@#Mw_Pc9I6a>2)w3p}3OuHnfA2TxWu@T|}&Pj7CS z8-n3TJ_GHGS{MjxZ$zuhVCamN1+4}&YoXz6bJj$<6uyagFSK_1nF`qW4RO*RB@HYQ*W~ibj`w3 zP-e)b%#cf&A(t{kE@g&X$|^!34UVVL&Qj3fHrotvX25o4$#{vFT0df0J( z=QXs>YMD;sH7Hlp8E2cipsA^$o#B*D?$m2mSB_=3Fh802Gkc4eiYB?CsbPjrERtVa zS@INl6ur-BXg57X8wkIbhk`x1oYfQ25t$axC* z2{!ejSXfvT+R)Yx)u_E;y6&^E)Y{fCt)+Q-aJ`<-gf1vD5?oYJ7RoK&w3fM3L%DG$ z$ne8m82swxzsMNw6&aBh6;y_DlNJ!7IJ~i?WlsInmW7DZq@ybVMS3@1P*hlDM+Y;t zp{Zq&-;+o0WpRRp9=S*For*kMnF@;Zp?5)%uHoQW!i^#l!iB_mDdU$2GfDcZnXW*u zRe>*_z?bU4m(swON`8qjQyu75%r7w=(jVwv7w}S882F-d5*;X$0B4U*SWloQkR6Yn zTEit!4xZWo0!4acELM+R5DPrMv4Bsf)^%*)4TVjg%_;Cya{VMY) zrn5v6VUqDpO5)3I3+(y$nkvQlm@k$1YJsyj@crl<*psjtL*gsTrLfmx9e~7_jF(`) zqCg)r`@uqC4&MeiPQ}5#RIP=*POXEzUR@3QI<*ltW}9KZrGCNQo>VQ1zC^2w;8{c1Px0yOAa;F3Fa^40SgFs{F+2rkqVvT>q1Dt4 z9V;Bumb5krM^k-!Gp)j-ghLJ#8%aW&)6fe1-1^ozB6;qdxpOd=O)m7O*av;L*AR}* z=!=M&T)3gAyf~+HD_lch!f=+R#FrDI>&C3?_4snuSGviJ!OWQ>L%5=B9 z2j6qvHorp*!PkdT_~L+X4fv)o2j2?*Of%__!VvF9H4@(w?O0S!e?j8A1*8Xm0{#U22z=KNSeqo&co?{1jg>$w zLcIu|R)hNY2oYvb`<$p@J#rk()mYP9CkCnkqFId*Q&l}??Wf^O%MyG&Sqj{X_(m(S zQiw{=5btjtLOBs?JVNzFsObnb8=fg9`=D4zA|wIADjDZJL~)@+d<@p( zykE(?v2)8O?E&7+#2>jJMYI-9VeJpgIKI1Y7;?mX@M2foZd?|x7-n%OO6!hx`-`W? z*`>$jJqS8qVrA+fw21+KUX&QR6Vi)TlzfsL**OI7%mam_KS~i?e}p9Vbxxh(b`;@Js=Qwq@tgFG_f!55-h?usEpLEBeh3R`dK!_rS371SEDuH zJoCACB-i=vO!c6%AK!atil>DQ^7-^XQ6shq7(?hoig4|RAu z?yK*p`)G|iQw}VxfCK8|={^l!j!{`YEp^-?`l;zTKy?RylymxDi1EY&ahc@^{V%l! z=DXh)K|Z|i+0ixd4Jq`|Kr4m69NpD>itxYN4<6K|=L?IcpJPL3(A@&_Sckpe`a&5o zQCK5Z6LW^PPIv2QbG!j4e{6mTsrdK(i4rBy>uBs@!MYQPH8W8n7%OUGuCm$}f0yUP??ZE1`3i#@cUkcXT^uvCrN~{xgVSQO0#ud}>%f!mV2COEW ziC-7&hqwUi18>8xEANZQ!K%Ugu)^<2{JLX@#EV!*`!as{*kSN0Ry^*&uRy$uUm9XrG^e^SxM4UnUOWht+QQ^}$|>P^>@3ehRFHcVHAb5$g^Mu?qk@E3hW* zEUXx8m;GgbtRx!^J$511{f)!wvI%km)}`0WdaO*JhFzdbY2Sr7pT&lI33~vx zVAt4fSS|ND_C36fHQdi&1=}a!ly0RY31VXkB#7JTAuS6_5O;Y%HWrqkjU^b$5)5Jq zV!s-G*ue$~2C)Q#Sb{+;!5~Pm2KZY1?2u(0@`I!q!P1OmX-2U$Ls^>9kml`({|@|O zSf;ToQwPh`$}+XGOsy=1LM$yRl0_l~yH{`?CrdeurJTxAcCnPxSjujeau`cF4D!7OJ65lSlrvb$ znJncjNclC4cy?e!(FLmsU&oHUw=ve}ik&YXV#Gyq&wWu#6&EMo}!IV3tuZ%P88AkzLwF zC`(GQq!dd^v7};IQVy0>D9b30WfaOX3hf}H7TE$>T!r!&&+<|%uP~NZBFig@<)yK_ zl389UEH5X^%gXXfm3!r08u6+jIK6tL8j0Mc5srj}Fzix&!RBH$>lB)| z!J1dh+hDya=56GoG-D&brx_dUJj9HR{DEd{XTJfx8m_`^k%t#@-d@5ANJuus0Ho$Dc`1b=mF=LT& z2hxv`NLDsX9t`@Ota6yXFf}lPVTks4n8`3xVTg9K5M6NkdI#DMf*$RQ*l*C@4u9=1 zOJP>PtcF=@nDuyGk5RM@`iR7yp(5B%VVAnNXGq<(d$9F{t!5aaATX(1eDY&{z|iXhKs=Xoe3;^FWfQA8CElP&?94 zI}lT=2`xSyB7bqq+21PD^->eMPl!a4#kROBVP6ZgF%G!6TN!tk=}P{6jqx=;Ts&OkA?Nr;f^>h3qws+t$lp}< z*ABax=@7J(pfo^f48^Z7q18T!T;tbri1i(C*E8-WAyTgST_%)eLb+#vT1{Mm2@#c2rqbKQRhiImKuzpA(1Zv#mT?nJ+!Pa< zVM6}c76Yeqy4-|Tnb4()R~oL@nz)T7bgKzHfs{T+l1xKAO+zik`^zTuh6%lELc4uX zKs$u`oQB$ruzO7CfC+tNLf`qIG=xYz&LPk`>S2@6IvP-j388f~a41PhC?BvLCX{SK zZWAJZ9`@HRgmZHeVoEAEp&AqFYeK*!z0dvzn>e(LM%dLRgqG33jW;2*wSJsI#gFrc zX!QAWt@1%hXkU%6;M54a)WoeYAwLIeeK;p_$_TsOgph*<&hLs`!D*>a!QSeF^spqM z6y$2sPKItZA(VXsN3JiJt_&r;YPvq>gPb=d?RAor5B?sM^uEtE>0^Rm_7dHsgULA< z4xF1j9qqo zv5D(tLj6ss&V+`V&}bh-GSyR*Ji&x!1Dcn-P>A$WnBJ83??z>=e2}*w3gg!8#PfcjQ2^}_}Z%pWz z34yXfk08NuSbew@y9vekAWA)8;w90C^K+GwW#S;Ul!5FQvNND66B-L>IJ*)wk)Tw_ zTGuyH7N;yvSq1#1DN{^{a5EU^cO|Haa4^f6+NB(}wUfVV@qQ({6SR>bghHf>X zy8zwCxNRnm{5`?A=Q`kCW*oV`VM4nZ+T-)*9PC`-Y<9NeyyB5QDCH{?I&MPW`5B+R1<16p{0OUqt#sNZxfyC@qRtYJ^=SV z-gYt$?WqB6H6e0+gk7KNfO~;)uXezFOt{o27_@D0*=s@vP3VXT9rZyJ!g+#2oC?IH zS_qdK-vQ?|aXQpLwJx<7K1Qeh9+Y9a<}j4sAw)0JbtplunAFEopGn;g_@oIai!_+S`*r6Lg3U0dzXp3&xHIO zJYnMeX?xkky@a|yu zWI%3)vH|5WCLM z3!^3Od^jJog$pdju&cBMu%j%KVHaCy9aEKMIA(Q|wKv)ICfK)Gy2JiL`-NRA7=Ihv zE6MiGg&n04rdY$-RiL?v?FO=OnjB$9vwaQO;6kcunybVvbGWLDnV(k(FK=e}9NfW# z6?z)Q-h^9Dh%&)_*-u}Nv6w0M^)_O*b2UymlCpurdMHKWC!(MdwAX<5aM-IYxq!1Q zShFWRmQuzO&mN6Z;o(?3Ow+~m1*a&BQ{>?kc{EB{ zT*Wb7b7}`;i2qd__A2&I=j=($zZ1`m-deKReG`&DL&b z|Bw&pAnmXz@9yWk8_apPjAO^iguvgP zPW1t%fEEL;I0t}ihLDP0Kt>>`yTo>xu ze^2Ic49jyP`<%rT8rijsT_>^YEY7<|j<=ri^_-%5mU%trS3QNr{VgP)dhIaVB!4zlk5q^GcZVzxJ%o} zFw!M1U<$+8wUJT;KgbK%$P3uS?LwS{0h{T+PiYaC5r?qJbv@I+lle^5ZB9k%Df06q zl`(NK!xwX07gPBWYlwewk||uwlrP4)h7u?CArUd)U5$Y~n<9BN?jc?7vc_6RdN{5=h4R zI#NOlf?dvjp!oo{an63k(q5{|mUC?>OZ6kpHEv6B(-h^)QkFm_^OH#&itjn>_u3-_ zQ~5_prn2!pQ=_#<~JI3@Uu%906C!76bb6LtJKUhgW1@se{t8C8e zY~oGTao8*hD~_`CjY!c>Y9IQA$`X%xc| zR3<^^TewCsSNTLu9A=DSexf*R6mu2D>5XE^RB0b`DB?4d`Lw7Nz*ulP4wWCWEnK=R z>RHC$0y~U-mdf)0=c+%!R#EiLiZScibs)nu z#*%W1_gDDk+JqG*rF0CgYWdF*E%`^jfGpQ&Aj6OSZL?D`V+ZpQCsKe-I|#OhO8 zqvu;a(F^M&Y9!rN6Kw1f*@GO4pj{+%S2%WzIIx@Kgvg*1d2kLm?LVOvERy%H2&@Of z;sF>dj2$KhCJ_d$2z&~y2?i~PM*c8b)KlWDt z_9Xe$;yYmz2&>$T)oDAC1MhG-e+O8!X4I0a9Kcq@EkTX)$c~?cye}pAcX#+e?pSdp z#AFx`47GIQVQ3WN!w&{L(!fs!wMzg?oY6$~XKc@Bdo|lz*xtqVd$8?TLqlmC3@Ld) zzc1(x2EFkJJ)djVd)|7Y%I(`O?q@&ac5FV|?|Gp)z;y@g3%MoSMdK0i9<)SXdL`cV z^kzuPg){A1$^tLzVXlX{31%}4@wye}5tvgjPr;xRVKtP%DZE1LgdzOnIJJi}Tsu!uCk&jl?#F zA7lGzwr^$o3${OF`!}}Vqnat^v%QV&5o~W^`&otBhO@oM&o1`Anc;(Mf5!GTjQ@n; z*BE}0?YG$Wvi&UEPq6(t>?|V($D`a#MVY4)K9`CWkke|h7E-<*65b5yZiQr@f<#}1 zB;SVw_d1}L3ORceZn(bZOZr@66EKZo)2m3SD zj{dtm~Cjw|(d@eC3d&t(QZGZ~@l$$tjc)lnfXJpH|=n zWQZaF6DHq9`xm%>E|K@oHDS#o?H!O~E62LAev)?5(f$D1NvH3S3kJPtta|jHPDg$y zod~-o8d5pYEw&FEG1M)-8a-l|TSnnz6}K!6h}X9> z?~lbBa$3A+;x6%KF;>9bO3==Ev?g= zWk?(1l2O>YK10US!5h-qwqREMKAV1n7UvaM?bHipsW!4<6@VvWH%V0uenJDu%Bw%u$~ z&m*xuI2&hK-h;Cl@4|_NJMcT=`(ZO^MDT1aLz{x%V%(y-8|UCZVmW3x7Bn_!chGL@ zSnGQHP6bcKZ+7tF;46cn3o%vNFS-+Z8R@jkhjIG%KHmwObhf5Ete>kHc&a9ysYxel zc05m0{-&R#DF>-gdAqz%x%D$JJDhwufzO=`JZDlrS&~nY#5s{W|C4hI&vX`{=0s|s zQE=L5CAkz2;iqtd<1@(5@3HpVf|a$saKlZ1*&pY~)7sfCI1lwUtRTJ@r?hv)y%0sX zQ)Pe}fE!l^VZUh+PRX1mis?j5aTfN)Hj6&k8@mWQK%d60(<*3l2ShbaObiz1;Jm~L zF`3RuL`$!?S|Q+I16F2JukOJb?mG156UB7&0*l2;wEtIQ5?oKOo+AI-)oqP+m6;*`-sbrv8O zP8;>$_Hu`#-m-P@=E9a z>${-g3ce*uDU}%-HAt+7rzc@bjVIL;lKe~s8?@49*u(~wys#__*q5AaY*-tN zGsfXM`x+bD-^GB9F~-=&CKyak*W_SemteDK=KW7qch6`8_`UBwe(Y%GbanNqQzzG{ zYK19^l8q0CqD+pBPmKP2F3ZO8oXT71wtuivGdzTXy5G zg0`=;;IDD~$>;1iulR-Sio(2#@?T%txqZvF{IAw?MfnAur*!TFzr))WUm)grPk{^E;?JG{*a?1AI z=Uuy1QT}u$1~|LxwB2Ve$@1<|lzY*>X#1`+w(r`hedizZlS zXInfUPs+;`5T+)=AvQVB-J09Y7-v4!r5kSiWnP!=;mL#F_p>oK|HS+yn(o#e8o$nP z>e~E?s?+7xHGWBQs-{LsrR4L}SuLv2jO+YmC8^Zd@K4zA*Oh&W-QH1V!ed;(&HLV_ z`%-)P4%NCZ#@|ui6#ahG{VyrMQpEiu)F*EB9E})zfXf zUsJxTwAk=-ZTPEzueagfu=^8m8V}p8oK4roc&z)<<5_tBUkT%kKXVhh2Y* ztx?{zuiv)ddK;ck<5^^1UvFO5`F`ay>3L9(wc#%)Uz2dcm;cI!3;Nsrr01FFou23G z?e?Iv@;kfz5*vO%`9j8XCrr4;-~5kO;@Z?CzYJX4rX&<)yfWI+KEM+porR9bz`Ca8 z<>t4=6N0J1(Ha9c^MP<8tFSEF?MfcZIs#*JkE^($GOti~7`pDt3nvGN!*7n)g`#D- zPF3fZ7>6>u2BF~2w$ie&S2J8rU&zNk3$}NdTz`y`r4%cjN)IHhG76*xJ|tpVEZ*7C z9*tBIqDLMC$)%LS@uJ4!;>IHLv#P47u)4bV2m@FsnO`fcFDj}pl%EyVg+=1V&O?WA zWO;oH^e0^?<@NXWe4S~}7x51isNzbc)YGB4+7)GQSPz64sgI6!p-{qcp-#eyKvQvNB64iFAkTJoo;x&M)G=HW9{PG9}SId5#K&zcmv7n9?fQd&Y!=+ z1wG{8*E$_u!{u=&A9B-QSMql8*K7R1PufIaC$vwo91V{{*Q&}kXo0oBx=5*3S}{8U zQB9A<%XnU{pF{6Pp>aFgoDtyO)=6`vimzhYqU_R{&EcVDJvJ6Et>{`@mwb)zW5&G4 z{Xy@{RNp)_^5o`*CH&T7m(?zfJG`N$(Z-g^=8)Im*BaiMVDh&Cwq&|zGWjbldABjS ztbL>$w2Y_TmA>a!*%&syDF zS%OAr8mI_%Zn=2bvWvHLR)J;$3qdnj2%)K_gd|HiX+8;mP1!FrUp%#&u(sj-bJO*}%= z#6CWK>SSgA1>2J!(8Rod?CBk)1ILZOqG|lr?ycvIZT{LOITQ0I&wYAz|E@K0WBy|B z3O&OaR!?_C!53tiU+4FUu|O6$o(-G`uJPwzSR-5W>xC^4t@&%pR|G|@)|vv$sU37? z`feRI>s1qe|*P>`r={N z-%u`4cH7s(tw zA+`M;X!|arm95Z2`IZY#x?eal@MJm@dPhhY*3LF){XDo3Fc0jD(Agaw(A|k0HBN`$ z>Cn{bwXGYjUa{ip4e>424*wm5$K80iv*8qX$CgW$ExTk(M{%+0a=P6r%PX4Ow_(F) zX3Gn6-uFonKj?5f$}B6eN66*`XraRozfc(1y>JSvKiK!kt@UdT?bP?$ZrJ4bHZ=PuF?fE>Fj%gY+EsLqYuI%lb8k z%cX1ap}Hk)>{%f<>=Cwh2YL_8Au!e31&aM*9QjdDPRHjFEGRR>jOL~NG{5lml)F^Y+0<6&Z>8QRot;YJ*PANo zY}vC`AWnM7bji^WJPYQP&+?0;JZkN;594QO?d?LUhEM5T?E|v79#Nv(rLj;`$ zzdQvjN`>zK5dL7EBeI42XsiG#p>N(VxE)y)Q0Y}z>h+`*QU{@3ZdF`LPzlp>V=N(Z z7%F%%S7$NS$xO{H#g=b0wB!R7tjQTDFuYo_$;E!HB|D%fKnmt{>g=qFY?3>#BRHn87KHE~H)krG03w+*F9>HJXiLryg2Qs&vFi88S^!ONiQSkR?U@h>t zoEoVEC?tTgI5mfO2U4fLBz(N%sb^&?cU$t#4hrreIAj5Frtpc`2mIGct`a}u6LZ@b zg)>5dAsUt;ryh+aMDUP-4h)l%os?Z%>eoGaet(wB&|yxTjQMiixy1_+z0}Ef7SvV* z48yPLMp>4}hn5I{{YIf2!7`!&Xd_0z-&6jW9zl9!e2RTs!c%(}w0}qWg9-29H>BIM zS&I^>D>K?_{NOpHtuTIG3Cd>+FPH|LNC=ITtAqc8b^w~@hA~XR-I~**`|jr2DLOmO zo*NK@9qTcC+FCWsiBHCocM98WITdoI`J>24z{7_v3b6?5B-0K3N7N3qF`+PHtj&V7 zckXq<%P!Al<%Y*_`wW-YlRUt6r_;rguV)i0xG`F1auxf5hck~ce=;G&k58W9z<=y( z^9X+l0o^C5yqBI2DxWSm@Ex|;;y_OExQLM~d>|ERG)QSP9qNH^bO8;AOHH=;J%-Ee z)f@(5a0C87o_>nQ<8bhE_4zAww_E3*_qbHY{3mnyd4|X2Q^!qWc6OV53av`~i+MO* z@Tq_!&sAmnrl$-2Ea9&ye=%c#WrQ!rA>r?_P)0w;+VB@yzQrvI+P_0^nvYZ$zZB!H zGd)ktJ@`ElI^xKMr4o6ezqw(HdU|r1mW;t{xja6@iG1f{8htOFzT4w+dCEG%E5iIF zb^aT20*D;**BX2~{hYsSb!-Yw0!#fP)h#Gr3oWdXb%cM1Hw2$BqF&}=_;r4p; z{H6+<@OpYevWp_oyTAp=zB=;j!u)?S=$|<|{Y7;ZA(89Ymg-SYO3w)7#hj7Ul?y0# z5E;1iOpz9slz&6{9w-S(g0B4w{L-KjL7Xkrhvl7?alL(kTiVJ0(z^cKMT^c|-)jA> zo4$DUs!OJ)FIlzv;%T;V=910r?VB%|vHot}H#4(uv-kwJh-V3IIiI))+|n($MZzh| zE8(xhyCIwuw;@E7%KW_ya{02j~sxw1#}x0k2yL!`*y z>yUj}aR0-H-Tx9hQTdUL&kGhlYDD>sh`1!4FCBK@8}Q!FwC^JiMB=+&xhG?M#Pt&X zg7R1f+Q0*lOeR3Zj$=8z1tX zB>o4Kzh<ih1RHQOry2V}hIFYi)O)n+g!gUmL*j^gNoGovmIbkI)N;LG zd`bK%75xzs#eO6M--g`!(#kxy&jD3Lo*DC65@!8fAZb?Mo6QPp5Z!X8;Sv5C4_T6D z{mqa-VBVT~4VeE0S+#1V!}K4`)gW@9J{sQ<-R~6Zv1T9 zh5eP2r%v-F^fP&b)5>?>qiH3&#f!Wf8H`T1}okq(QI&6VlwTrC)eD}m)AOxrm$Rm|vJ7Z3MFn`)+-Tv=|UwYkf! z`HOQ(8{6^@xV)UPnz8ydi}xdOOVLI1YuUydnpz;mi#gs_u9d-cR(GSkhkdq*{ zt1WKjB$_})6%bOrAtG|55@fZqYN0Y!=;PvLyV|+KZ@7$_lX}`_npo$m=IW`Q%8spL z-6xm35ehkT+J>rHXIeUD>!Z{CRUMn%th1f#nvvydY6^67v>W4#D{^I7{k zc|CMp=U2)N;-1|^8S|>n|EXLlC@G&s84=mnt7nm)6iF>x(E2^) z*BPzJACVZpXxiNfVz$iQ-^qlFe25&0fSXuJFa2G9A^)4QLU`%+gb~jRwLvo`mbMZ) zO%$@is#GpPx!fgYk(R)OpqLZ*`>O8de1_F6hs#koQW+bq<&pN%ioR%R*NS#Er)#ic z@z(AF?#6$-Wb}+x9mj_QPM0>gvaYPPxG-K<*f{47MoYNcY4{w@NDMPt-(3^Pts86! zC+dpSyqp4GY;Cujgs+P*^tZ>6%17;aKNxs6b!ILdC zMhu8pG8_t*K{1jP3kF0;3TB16YBN_H+1bN;*0*zr>jpmm3$=Oqwyy3S%bS{(@9182 zPP5am8>-gviH&1tt#4~vf0nyr)5j+RhO4IkI}-j+l3B@X3*hf5e>35G z7r@_9Wc(6A{F2$vLFH0Bha$dr`SBQ8xv+L3^9XYw*KIMb092{qDT;LGT%L(DCnxtz zc-$^;&(_|)<9a=`%9We}Y+}zOyHS{*nZB*Py<7X}m(WJ^1R<|?h>^X_%B2<*aEeYO z{B`80)9p!4CHysHGKdlaQxTm=_^W`E)JZsLM+x7r{4}E^9`GRGOb|u*dli<$;Xx z6CLIF7tm37z66h<#s~B@=kXbgzX}qJT#HgDB}TaS7(GhLOuI?>QoaFdGWib`UIog$ z-elaXXQ6Ds%bYsD)onPm`BOBc)c8J*bde`}{wl`L^a)!GckKtrh&5Qfo3%M=oApIL zB|j9@gVH98FY0x0Sf1w|C(6ohF>X;ky3>u{SqLcj!}@=71PmVjOV`8P&41-`%kh1bbmbovaBGg$zK3~BZ^a$j)r+YuJ&$^TQy`l+5|hwj9RA^(z7 zcX{RqyiTXVCMuJ68ANZ?I`S+$z07>FrmMEEA5yI;4FVl@5L3!uN3P%PalXPia=hA8 z?k6;UyI3+z{;D+jMWOsR=P{H7Vp?6v`#Ec*iU{!(LBnSy4UvfLN@yjV$AtFTr<7Ka=#C#N{n`lT=G4`zL)M zpZexvis>bkq(nmBm?5h5q3;!t0jyHU`9f)!w1Tuwjk=|f_}kgWdwgz3vXZfTglWii zBYFF{mK>#D{8pc?JLfNOdv(JDf6vL!anM&hRrD`#f7PUytc{RxvJDb$)j&u%QB1-+_Phl;THz{UJY>9S1ZH^Gkr088n0Dz^kmI3>s+e@jj=d(Mu%r=G>)0~oUlxrk9YW(q&V-_y_t0q)O zB@il51e_?Q+HgTJyZwze{C?%~jFCQM_x{*fHYWUT8~Vga@7jG_W;=qkK#6^qG*@p1PUA7~+g%*7VLqRYzgN+@Lo4SO1QIP&6Nxb!ScA(4OTh z&l)W5Ue#;(%DQ9GctL%CVMXy^qbXaU$A4>4h80YBArGJ;IU97Eg9eN6zuOv2umP1c z#u6e#PkZpO0X38{bRs6}9o^XvtrhNXug~^*D0>6m@cHXH2gNnE zo+Z;~Pvlm2g#G6Wm3@m)M| z{4JA9VuI51!x|cwBddbPXZhQzdp37>Y#MBA4&-GcVrp34xoFqm;OSh=4d>`SZ$Q`G zecK0zcJv0^-h8*=jg^h>ou1gcNb(b&4t`>Aq=-@q7SxXbf5_&~-Gr^({#oU-W_yBL z{lvI{AJ!ilJ zbS!K42i$cdn}&23^aEdf%HoFH!4rl%*0i^+>FikB*1lFXvQ#X0pBULJzsy#!slAgO z$Bf4s$E&r($;S?RId(>PSk|%=Pd}l0?xID}fgOE`OetE zmRjL8HOXWAIY*SiTTyhin$KA?&%5|@m=OWz&$9uxNwg=epN2n$7@1=87R1PDxW=D5 z(UQPqx_9;@^=@+e+u-(Qi+(Z>AyiH5L-Z1Bnch8;p+a_Q?3$w}8+WE^h#pyc$nmqc z1;-Yfoc|qb{D8wBU<8LBu+8)xGFof=p^wW^?#^gST>s6(?jfF+Jw3R`;`q18!b_+c zKF+l8=*enJ7XCKjg=F3X3vb?2x!$ze>}|5}CN#3%w5x!^!kf^lm3CXQ@Dj=&-)>rX zJQWt+gx>pcY2V)klw?v;=04?4%kBeCvM=ERN1Kwc`zHK;<$?@K!tR^BKX#gpAK85q z`ouQV?xSzmeG~fVS{pxgs|k&AK!r~EjzXDY(wuLrCmnK?o_>qqv`NBNSz>V-l_sSX zC}qC{*CkA@v+Es^%9qOa2$iAV%C9SN=M-i;^5R7c8FGipKJ6jv*RrZJ!}xJt(i008 z6&P?G3_VnNbEvi?r=q0Lt$BP4_|%&RE7!ht(l&Cifz=)Dk)jByMWMh$+17|{o`v;a zD{1#OM#>ynte97^_iiU&y#&J6!Jo!Xim0d(G3|=5Dd|<2kPJUya7c5#;SCpJ)xRW= zTaFr5muKWyO2GX?_j+~yv;&{0c&#p-|Bh6t}mj zcerf)l%b(hCVMt?bZqG9IkvO&SguyI_mx&}6LxlX>8`%KiX6k8?^50Ro{d{seP4Az zYWJwr=H1&zN4IxL2`0Qr+S{e%o-d`Hpk&Pms-v3W^Cm|VoTOC3A5`|4R*c}!Ihy%2 zyNvI?UEx?!%eaGNN#1dv^0X;SbO-S}!8QKq?ihF$I+8sN3xi@%;S1O^WttKDx8Tr# z4!4&z_AQUmY?buI>t{RY8~rP+>YZZ$YG2!te1eF=s_G}|>L%*tFD_TSzS&YW(pE}T zK-~*H7ufWQ@jjn=o>3NTE_GZ6T;qS=hSsV5)S7aNqBY|0KT`ZXmpU(_tqu)#r?3xW z=4Mn`4g?_UN4|jD90#ME3H)JA}z|fc{O) zo`nAGrb!y^p8R>O6cP^LGPqq1oU2^7bW!G zKLRMBY6RmZXp{qr@jUR($AI4vMoG}rdFI%MaEHd9${~wM|9y;;zLdS+{}-BrB0zt} zNn1+jW4A$Drv3@&D?(dJ=o3FBi62Y#ux)%FZ1)hZ>ueSkO*BTT1bkC)m2Ca!w-G(1 z_M=Agv;1ngYHU?$QWcgAjr>@P%3t7QQqD+s`_Ws~~@4~BFi$^>Qne#yk!s)e9skxX4izqi4tc$RzIdL}SgMf1m> z5%o_dF6>|b8@S{^=>H`2A<`*F#>L~p&}sb21!DY%Na6(xBvB5Ga7X*Mh4j-mRD)K} zK>rgJOGGdAhe~uvW`}6X4l4t-pYfHW)qiFz(SKOwXH#k%oI@0qSUr;^=nSl4!V4v+ z&Zj`<6&S-J$mLZTt)B{!T&{&wZBDm_RQ*v%)l;b}mDe&_Kleje*wjJvNV+;lsW9vG zQT1tg4v3_Ka`n&@Gmqx>-K-*o4W78!q3yP4%Qj+F$hi`W=&+-FCF99o(4|VtF)j#YChTF^A*Cdip5>BkVVNrekqK2fXlwW93B&(g$78&WN03~4y2y4v7 z7D4x?*ctFSC{e24am?MvM@P!zWU(k{|)pG$uTs zwi1hy(cb*SX;BR-vGS!>(I`9hX!IbGT}5T1EcG<_on`~s+(|1%WNoI%c(BFCHfQ-& zKO95Swlo_w6ZG`-92Hc>D(>>2bXS&-7Sfc+$vAwzE~##<$krr%d-wxF_X|3rh7|c} zLB}gI=#KbuW18yZp;2pi!W+yy7%#<$vS?*?yR;R;$0QOSRzF%gblT*^uHoTb6O*S6 z)pTs=>)qJdxv{rzL&pb;_l}S6T|7;n)5F_)dyxa6PkJ)toJ)ljInCszpPO+o!LhTC z5gc*j868Jx{gCp>jMlf9t#$sOom)jODn)vt7d5==ebLK#=-X;d(cuH&r9)`IfKchfqC9P4*XC}n^@N&A{5T=kgnn1lnLN0lAQ z5AEwY_VxRKugkoClekXfAz6|%6yve(%rOvcpEltdf9yZ(k?^f{>nB-P zYToXJc;f?Z&34N!mU;b6wauPwDUvG9)B&6NNRJs_EQAj zDE(v~A-gTQ&xzeL$iX_3!y0?;sFGYrJ83v_o>dUR7`AD!hBaNvxRt4){>^ zx{F8P3s~!K8QE*w{7b9x|2=!n{x!0D@uD+FgOT>IKY25$ZY~yRFVL$yE3>0rTZRU= zc6DtX96YYe#tB}~N8%LtU&TqigfL5f?g&Ux?zjsX$-~zv1OM;VDL*WC42Rm77rWNk z>O+&qpT|OFWMS@DdOlkPPImPrLJP~v%A~(2I>XoFWe6WAZl7-TSGWx=kX9daXr=4GEr?4eh)YKgfj(4B&|3I1zy|y$+ddw|zpT`0Y{bkIL-#IiytO3dh$mc2u73jUouh zw@U7yq|#NAfNHu{88h7sWang!U8FLa(3$QGXhka$;r>{(FB}!jqduL~MpFKM{flyvrWwGv|`Xp}#&mn8i@GlHWgq2&+ z{wd%oZ79L5_T)nVZrum%QUbrG2=$SpR3S+f!e-s0&@y@lolYXG2PO!%B6A8w8jr$p zI#ov2O$vJ>_lv`QJPS1-!N%!CVgeeZqIGFw-?rZTrfiqybY{DJ6~Tttj?NV|ZY-%q zYI6p<8~P$y+`WSGj{TH@gd_QAWW`ittUr>~+URlkM>Y>koi?PoomgK~HQi|2I54rc z#YJ^HUam)Kv!cCKJ);%L81B5EiX-SBX{#KtV+H>t;_Dbg-KsGC$*dKvs*vgOf#JWY0ZQ_GfYq_e5z2}&9?B( zQg15PiPq;WX#Lb8n*D4@W@aDHJw=i^mwKN)!wz8Gn4(K-jm^#sQC5gZ!0vH*PFcV1 z6ms!bEn2+FBg!Y@^;F# zE^LjJmH$ZhL77(B_QA7A7Gzt}P!jt14$@E(N~;(WdhdT&@fXHsLMb2lJ0S9D| zgWZ?hh1K=9FfI0~uU{ zJVSkLUR8cgp+C#vME(%I zSfU;=rlK5A_AS$_pHBOGx z?wHP#)tc^O$2gPU7mvn?2B=6(cCgL(nfw~NN9@>@cw7q#{7G^vQ;`i#(b$0>Nsfd+ zh#h^;+Hh1EoA7&;M^dla@UPhL`;{kBuOWw8llp-Dk|p8I7m7X5N321_p=p}Pr=nCc zmgwwvYwQFE$`y>{b=U@^dmTS6_^!q_yIm^(ao&F#Ea^(doVtPY8XiFnqIW)tkvacf z{r5psnYemvl$+X$|4xyCD@G#3&o*J34Mbf0Ukw`pBS7DnavEsD0Sz|m{I9PGJo4i$!toIuB9$#9};V4$mOC|W;N8=r{c zm`&d`yfn0f>i~D74^9^T8TYXH9cd}=JT-Y7MyZ71czN+ zNwtxpwYu4Ys-;_GALoGrR$KA{e+0@L?VhroLf}a79oTOnyM7eET1Gl;qu(D`IyEq|eDS|z zekU(dp5tmAizSxVCDyc*bvJpvHG|bnD=bd#8jrTDXbF+`Yq;_}IW^cIEQ%ULJ)~sl z#PHK*@<)%97gjdr*Gx3VC!>LiP~e()Yjy^I7Yq#~AIbN?S$3l^qNr-&nOKrG`)%4h zyvL@lO16jQBFX_3R{ZngY*l%WB^%ILQyNa-DTAgx0D96{n0>T|bNKMQ5+q%&f9jCw zn5>8($tMCs*fRp1Agq?<8?c{t9@E`@OsD*eZkU`r=9tOJ4L4^MI9yX7yL9TD#Y3|- zUY8NjeajnAMb^A?yAHG9HnI$ZO(y8L#6)6MOUtV6iP_nS@!8pn3{S{)+>)NThKeZS z|7@4PFg(&yHB`%dm1Azh=hi*64lYMT^$PEU3Xt1Y@}VV^w5EhUw1_xeLdniZ=z}BV zLoe(h3l$4X_~zTw?Ma(bdx|JOBebc!gRF$?=h15NBTL{rT!^}mC~KqEtc@YWm2fpo zaLxpLh<`!CaYn=k>Gs^2(Y}CI-OToD)9v|<>Go_{x;=X+13r`izelXzNqp8495PkN zE@$=F6IZU(i*-6naPq7I6`6eLK=rUF+LOv3Eb+P8L`kHtx^+C8R>&y!$*$}!Y3@rj z)buv8%NrLrHcZqG57frV*v(Umj?%*RNOZKftA8}!zF0i_3O0&o6aRfE@3GO?Sbg1S zEH+wKKNgGjx5fMV;%)uBx^c3$cCxW)s=j`zsbgZIBR(+!Til3&p`4eZSh<(i3}UTa zb&<++EC(}9KR$<3c6td@_A-6;IcZSNgU!qqV}RvH zOkmMZ^;=u&X7?St zVc&`s`!*cAZO5>b$rJVw%?b3{`zFH|*}%K0I>DQ2lJVs(RO}dO<ckM11i9A@-|9_q znr6U(um8|gt>w7s@tr;8VHM{M`w81Dd^`bc%glY6A(nY)kvvgXMtf{0Dj$;nqq0v5 zaveiwH;p22ibR&5_k|ne;#c;BpXejokqlEB;PK7~gZ>8yw@69dbczZfhJv| zG*cEEhZB0tbiPnS@MQgLr32fQ46SrLGPtp=dEG#Cq+Y}EPrR9V+^kh#^suWbH@j`P zdT3j3WcV0XQi4TyJzFa%XkFi%m}?G&uxP;woj7_2>C=?cotM?Mb)<9MV1#r9cpc}? zJuJ_oFi%EQ)8&Awt`j;k6?PcwSM;q(6qR&LZ%W{7W^B@FT(h{{of{lnUf(j^QIgm) z+_t>2db+!RRb%~}yLNm{W5=0i9zPr69I*!<6@{wsy1%&p0TLBBm*Wo@A%0 z;jTzxQ*ZCaL}gb6FK#YtTiXH5OPiDL)s4quV|8;QqjT3yAKSE~v0+KmF>I5=8=q)s zU)|QWy1ik%)#vcF3`aXwwzjV9hz_+}*Dz9DJ<>3|V#WO9D~B7)N-;ZcV|M5~ z1`+EK#(p)!OHT;TNFsh%QDN|q+3DXk>%-(MYsi?KC0#T*v-~bGJExzvb$N(q8JL~o z6Rw!di6+XT!!z|g+XibIXFHo$bzlHZGi_w^OdY93xrb~X>P-HmGznYVgfpT}#fb+M zuz_8G6s6+WQML(?unCE$x^RXqwW%~Ajj1LjscZuTOeyXvNVVb=oDG0f*>^Q5DPGV(asnX8Q2-MT|KMGg&pM^e z0Les>Tx?lan2Zaqw>u&KA59rzxBK z8-s>lpyE+2b2joB8a8aIs2rFeCC@xKf96$Q&af}jt=9`RpPZMO6-0i@L0}1+P8I{& z9KM+qx0wo-d^JnGn_=4o^p$gEu&$^$w@N4V?#XM4mBxaFVgI;OtSRA`6PLEBsJSS+ zupp#CVm!6s{K{ZyT_iYb&<&(78&mHpN!CE;r-DKY&l|LmkVs{moEpl{;%No{sr=@E z3*AGVRRqc!B1NtukK4yp9IQ$5yN`lpV{<{+9jY&>Xme-#;Qx7br^8cKR8)l1(R^6L zP)|aN96KgaI<(QLy0fB{WlcqdUqR|$jInCkX-L|l19d}fpoEp`Hr-g5)nDjd=MMIR zVDJtd&%PYz5J0`-NiP_eyLdKg$Q+vECKX3{Bo9&sUD!1x#lj?kM;SR0UsOVwB*%*) zV!~|}Q*lkGB?o)@VTiKA*%i@nX|NDv@L}b_<=I06->nC8eBp}Hy8NORcPIy2QvIr$ zol{*>TouUiyU(X{Z4oDLcV-0&>r2X8;8+QsRi0*X_@v-#$+N<4kX6-SSS`1G!P)m0 zMCx-R@cLX?x?VHlt?{-NH`f=|mxd|}i^?lX-DS;%mD9sDc$i!DPu5gNYWk}SYYU@g zp-@#MKR*m=)PN86yuLX@u z@*_na>@s!<0$0`w0)vN%?%$5&hbqcK`PHOH*_AAx{|Q`}rgwcL4%DD*NFo%U4G=jn|2{Z4_}`xf1I&8m||> z=U->|$Kq;=*~jTaa0$%Xo)^xa`O_ut3tqRl1Dv zI8z^EAE*&pX++FsAG2V-W{15*8_avLo70tzlVpCUdN1|r>e;X;*z9k7a0PUxo2b$U zALBf>l6Yh<*%6p8;t?pe$T7a09G}A<2>4Suz7YKl`S37?6Q-VHQTBv+&jRn^`;}dl z*8k60UkD;}3+CZuv4(&+bMBC*sfYYt>ht^Ybf3@fu)neIr4dQ4Nq+}U<*BQ&7rBM( z;oc9aM!x)LMab+!&YXoO!d_HXf$OlzA17bT;H);{yBYQ|{Dsb>alzB}P!3=(s>p>8 zkcV~aL&mh+k8>`3KHbT(?J?bw%^o1yCY!QvNsmZKQ8%ddjw6dNRjz06+)k&5=i+gv z;7N2&c`d!I2A+`!r@*hULqtP7TLzmE{K~jiz2Mp>ygt4QD^B!>`T9IrS#Fl{`2C)H z7Fu6lm&^BGy5YZhDXF#v(Xgzkgda5_#&@Uj1 zet!m%VqTW9n|LGUWd(bkH)3A6(!hSjMg#}I`<)Xa1f>zFgaT=6gW?e1m#D$8q4EJo z(4*d;@tuD!=rJA($*p+8iw6Gw^Oj?@G0GMnT1g8PMJL8TrlS-}sHhmE$3 zS07a}GKFsK(ZmFqz|;lo4YdqsJ=)gBHa8j$xKP<`x)(W4M{-p2Uf?spuE+avGKpb) z@CA<{bWv(EpG{psbq~_lvN(AbMbU2d3Vq&y!%Xm>sJt*WAcEgXq5u0?uW~-yhu>4I z4>Q%I`~!OG1(>!)BBwvVE>tdHf5Y{4V(*iQF@CQW_xIuc^VmMLpMqW_``N`V;eViv z1~hC0VW&ti!TXiWjBrGx>^sTtrTjbnA-@eFGwcSKmSKlBpP4JkYj4(wm9*COU|IWE zEPzpujukXD@aD$Q_-KyGTz9ja&ZY6?v8g8HKio}IvE}WfwZ$H%--%V>+`9hO>7lJ2 z<~?qBx@E8~=*)5Gzz}tC?8}Ik`z(r4jSi4Ygy2jPvUvHL@Qm9KN)uK>xkGM5U{8XC zdMxCgT{^I7uIEinp|P%)i&&_@FlBfgW9B?g54X{D}J1b6Wmqk>V7h)l7Bo{STy4Iq5><(SlV;pzb z9e(4|C_*$h9`)l5$Nu0`O>h)b;Lj7mp9jIe8{ua)zqcS?u5p|w zgzGi<-7S7^5x@IVr(xXh;`(u-eOYQ3aD5NIw?cc9Z}1#{pJkCel5dcK(uGK<2;5Vw`c1`dpEpH{7-9aW_!rnNmBmg^YB}GY<K%u`ZGCY zIn`^uKp)SNr$zsW9%g&of2!G^xIg`yRbV{RqJPp4eaM2`&ie5CBr*Oz7R2*z0JkpbAlPoOc+8? zSVPRmm|H)jH}+@OO$hFdh1~&XvJl`9_%PD~^2}rXB_7l_Z0g69Z`1PtivZ&*fw9J?9rU|UIh9?_DNs2R**KboQ`vRm_a5;Z z*Ohy?3+>N()x54eBYy8q^^unb>vE>rjuUK0Am_q&=;r~_mKaJY599@+y6`gxc-(cI!?fc@qKqecl1>tF>b_HDk4P^jTNYUS8f_QBI%iuUd!S zpU^cYd@#eQ=^cJwyOz9BYxny)bd;BA8l*_?_W8RsU)@B#+-HW*vT%20gyOqMWp`Le z=w^0+>Ql}0TYrZW6zTnxur=)Gu+J6X+yOeB0oEhUpBe9tAy3L$l(iP`1j|z3lr}f2 z{3SI` zC9I0LdH#7?&^^`&_f#@q}#; zozinLV=MDlaKZbwpdk;HMUhkR^Cq%~Y&m@O9rX8*oA%M`+8Xa{eTSd^qc(fX2nB{vTc z)rZvuH4yLxe9Y(L953%d8Ld0V7teM^`>G@3Q**70PU@|#)jcZQ1xKX5bzNV4)#A}` zb$x?^0gn z>Xjo{fJ7aEBYV-tEuVJdY|I&-7sa;@Xg!Y}b$b}sSv^4T!jlhyE_fl+SBPfw+k&CG zt}wzOHQR^|w-*1N&SPYi&?kn&?My!Dc3p(yQJjp!AAsRV&bwVCU-GQj3TO+&zHwWnMvH$Bnp- zlV6iF1YtMIGluCG;St2gZJ=i!y?uf50_~l>JZ#2Z^*kJ5P+)i{vCk3TWm7{`81}QL zbB5^KcpzElV{fEiBm)UfzuAXvCV?iEL@zk{(0BY`t_imdz>QA%hZd69SrNZHt{z-} z^fwF$)OZD<^~}-UHNc*>FnaRCUpfF;weZQqisP`d%))3Py#(VOLPP8;A+PHraUJ)w zOS8HO->K~6C$mQB+afRfSg@bIwdW?!%YOf;1Np8skc+G@pZ&-YA@e5Q*zn<7Apc)+6x1=0sT z7^HU)ZWp!_O3%Vn?m04lnTgGa#T}V%HNXt0=IEqRWoPA z`g|&}@HGcc&)I~(9E3YO)p z3*0v56cyzJii#K$e*!s0XzNUU9IHv;BWG_*y?A~4oybf0T#jU)!*huXhhwW}QC))5 z_~4UNF(Fn#*!%1$K_iPorofUevFv!RCOwnuY3TRT2h8--GL56t7j_dIcUN+$TjcuU zSoQxY)6wf8eac=|QwR3lz#^iIvJ2VQu3ylhN_c#9*_^LR-kYlmZi zcQxLFnz7{LSP^yUtV+*v>Z5eH4{OEC8g(OiudcBc167H7@_r4KRzk|(W&dEG0d+(4 zZcJLQkcy`=YK~RfRY`f15-;ca{dvfZ&l>MU3JD^!f|YYlF=vCbkRv6~7Q52+xH? z_9zcZ;uvW4AdH3v1_5{@&?-rv;ROcZsgP0-c z2swqh(w&;N4zZk%?ZCcpl#4pBvbodacX^Zh@U}Y?73sfLfA2tSLfcUOp!q!>zxD_2 zp#G^o;7-~97AP9ob)p)1kxnw+y0b$*gZ%{WC{BLS>+*Y0#0Do1+4$u3Y=htJaiH`- zboqO%`_rCP$M00UCdrMYw8+r_O8YEP9U%Gc$O8y1n5$94Q^2lHo@|ZgGh#HyJKT(f z05rnq@m@XP`ilBxYhX7>EWXJc$J0c*@zx3A5BN~P;6=Wj zF?ib)GKm#K=`?^{%}kytpZbv-AhwY5%g!ko8XYXk%GbF^(_Mk;($bMJ{Kg^;)r!?c zk9fIElUJEPJ1;vJLPEyKik1fQ0-;<3+x4njzm|r_N&v5yVB*cV@&LOSaV-|f$^ZFK z>{(lGQ)^>R26lO^EloK#b`PZ=v*7XaIhXULsC0p+yB%EEky)G!8Q|S6Uv@H&Y7f|J z9>3>upX+|8cmwOa54(MsVakEDp~fW(($tpD>j|srm^rmn8dlQlJyo4dL; zP1Zzvw-4DTk`V7VD$VK``#JnvRJua?NN><|Qq=~s8g_08(?SU~q~+x*sYU3r9Ngeji=j8eP;tfku_ z6D@dMm&ZVwrKq`_@+^23*4_B0k%vG`EzS<7g+FWAO^OL9A{IBzoUxfzkk{JU^d`LN z3MWy{P41p+tZ45oR=ueT~yk{F{9_s&7C`1H(9SiTmFbHeBLPOX)SG>+s*H4 zTyg41;-oEe74)V-A6^OT*4O^`+9hX=jh(fmXYbkAu;7MY0n5t6vl~z78a{OvA+wBJ zuYt#vO}lot)437YlfT!qb-ZDX z#1zkimE*Pi2gFlk&ddIb)Cc2&i^a-Ne)_a* zaaOkfFlDgtaBOeG*oHpC@Oj12*i}O~Gdq1YcIHXgJv&x(`>;6}Y5%N6TTk3pJ-Bme z-GZaAK?Pd(d;qm`W^U8=JV_TIp0s}p+E^QhV($v zaFa9JbDh`%K{IoA-FRJbL!#K+7c5qrH@ZvP!zCTjT&!LrM;TB3lm7uLX0$h`9&s+J z6yUd6x=CoC%<@iThK_no`d;b!y`MC66&Lq3G;|l2bk{e>8XB5n4eZzSa{;iXF?qp) zN%k27!xEbb4+u}*8i(<{qK*N z?KlD<=7;_-2vPHIkw?Zr2l!gVixnh+I9b441D5NzkhvHY6~a!~TcR>1TQXAE; zLaWcw8x>*Eql4Hm4td8zg%qMDT-Z6ty5xMZ3CCXB>`ZjVMU@I=nax|klzv_uIlpVPpztN9ImPwUfVvh#1#l}H`1Uy?yLw#N7_r5T)FXtpIyErI&=QI z#M1r>ryqNA>UXW&e$~3Vxohs&b;ehgNBU=zH$|6^)|U6yHZN{39!lib7B4kAm)A8- zH#Bcw+d0$O_*swFmzBJ;vaDmxDT&#SPYj;(!&Cdu+SC;&@pE^;$g3Yb@#3*Pzr198 z)zz!}&)M1+t({!gTG?CGvUE+fe+)E1bv3^PG$~h>i>e*LU34nATnQC9WY}5ckgK5} z@mh$ZCDN%q&L@(FkohK0?u$$&%4a5;)(uQ<8>w+21&h3c(K54}6<|k0&uP0yB3y}H^B?C=gChtkx2E>6$M|nR<4q#J zEvwZf^TBDMqsAZYqEA4Bp>yHJCtFsV(>e%}2uPo3*t#zeMRav2lp@POJ zss?i>>S_~Ve`PKXX7@V+rMZpKa8pUPqhRza-ty+chIoEfX>)N6Hiw9~hyMe!5yW0i zWR17j!en{Da=FGTDoEH`o(2qsU{Sza{K4#L0JD8l=Wju>==`av^EW3Fo6nyb+O@i+ zW%aHh^Y7fi+UDl91EcMl>U3o5c`e29$*QV}w&Iq2E!*Mbdf`C(h6|T0y+t<)8t||xKAHp2|?3(e0hKZVh&%x<1uIwPK zU}4p6KfeR#h|sz3D`bX%=9hTNEO*N#juX>~S&kxQkMHL80DO;y>=8?k`_Q=H5%?F{ zcx^*vg&GKB?2drfmm3JQx;^drWrg{J0Z+VtM?d}_*xuj2eE^HNEwk?F5# zpVM7dRZ@!O@T#J0yqlJeM=31{6u8%E?u&!LJfCla@fyyAm+$$&XS8``qHC_Xd9Ew5 zvYFjPh+Yq3d6ZnOgDCpZ*tSunL53a=oxoNM` z$GI+d)botf?YJWMS}YbBaE_5Vx(Kv&y7Fq=U>3#|HxSAp5$Fvzlqafw``-s z`NkVK+YDKT z)$Z->?8fLo6&BH>{ngcj(P&>yw2%H#WHOCiV!Kr@C_<-klLKkGOuMb6sh<%V>JRA? z+JM@hDcWNVcW%KQ<_lKM`_HuQXZDxN#DLDA&kt6nzoXZ<@-wy!az*(BE4zjxa)C~Q zX2oW~$PX!PkL{sY#@j*5PjAx)|2|PQSwf#w^Mb4RN4l#6yWg(l-$n#GEGz^nfG~}^ z+zNoLE{KELh1L`djtf*cNpYE6d_>u*T$3Obm6ywc<71jHzZkJU$_6;(d>@F~KY1?9| zy0fi6*4VuKa4YwN>pmGOedXjf+@RgmW~vyMlk%fc0$BT`9_>O<&tolQ78 zS>IG1WfUF4jE5of`K_i36S4!E2I-iUR-xaBiZM2@V(-Yv-W5ysj5~B+ zaxKoA-q6^;ql(@puQl#G!NbBE8yYs0V~KOgMayR{Tr#?MnIqu*DfYQlwGE*L6h*VW zIE(#i#-rsG)r@`K2Mq<^$8kDr5oLVE8qyI?fG~}WOa?HBGD{zhFC;i~@e_VHahDmS zIZp4~(A%>yk=WSNyP>nDe!8W3NkhYu=9cOD4;meY${?`Vo#(^*fz@P-A6|jm%Vj=y zLgcUh2d}g1-99i#pMxEwwmPKp@~e*dPv-LTs5<2ci>33AQmG{MM>5&VzRkXi_bekn z3P}fkR;322)}-o{iziDBysqnu8qJ&bMb7ZY>%7Xl5Bs;jjhAle4p!oY+m`%0ZNfxe zkHSqio$6v%up>O46BU3psXNrKs&)8%8&Aid(=?KDy z2nKlpCacW%1@NiNw*e?|?2-CUek1NjvJm~P!d}>W_;>O9|0(W0;G-%$%7yGjrz5JX5T=*#NCw<;pH<9d@(O zTsq~@n4|$onzbo96?K-?X6>g%AUhUqfHh)K$5)k$-7>-F;qU|KIhGMtY?AKqN^470 zrA)@@;MmM9h{ri9Uq-7nG+Q!SU%!b=CHk~zJt3KQMhB0=ba7Dl#IOmF?f4F&jS7xd z`Qc-17#N2Rune{08aS|bET0hNQL!>hJ&ZVPh=cN(Esm*u|6XPK~{B`_T;6RzL~{JNSu)Tr0C2ncZ5D~ z7^O68Vp?ouMkX*c@2Q5y#-!6MCCy&OMJ1(%8`Fx+wGug4osS$r8AZ(JVRzckI2Sq# zG3x?>I2E{Ng{PMESW z!nJ-@+f^N3Rc@$tgauc@ViD7M!Ps=w>6P+XtNO_@wUcXyK6gm*7}AY@Umn+{Y(ffp@m#Upz`efktu8_R^0^Eij7L?Ja3n&hjJ8%cdG;Tw^XgejhA!zc0 zJw2f<*fRRa9ob!Q(S|)Vy95m%rR;4N3%%4Q@_f~)t?mYYqvP6!JsHW~9eN*1GhF@< zNPNKCaii5fV?3AGql2UEoh)j%X}E>q8t(zj0Spn(af;^g`BD&4pwG<~TG1FQt|6G< ztO~j@2uhE&Whs^-Q0fQZl<+vL-x3Rrg5q(R-nr@;m(Iw3>V|aegpTX#$cXo!BpA;Z zBgbhHTb3O;@ve09z(6{b$QeiJE5Us>*t3h>$2cA6_mLdy^|HTr9Zn}l3VRhpam6<2 zTD$##-9A4yE{=D!dBjiRSKLblzAhv|<5O=lYt1DAKl#7#qZMo6GFdxU=POC8Kgw4v zyc19Pl~M`0xR5EHL7oPNgntclFt=;DwEGY7qXpr<|l6f1uuOUb0aewJk>aQ7Tu~PvS&tB ziiWRJK`Ojj3opS(so;=|%o^<52`j{wZj$o*#WC%^|4_>BKckc{(jsM@)=slaJ}GbL zTqHX51^C&zq^&|iA?4!>@?)aVWH3K$Wg#Eevqwx+B4oT4Nisgw>F|koXG%Q2TY(qF z>O0w}#Z!wJO)Vy!TFl^t1YGuzpuUT>+x0dBxxf8?Aot7vpXGkE`d;?YCYU-x=UR_} zW@ps0jt!yHt2)}LU0~dNN;~nW4`r4%^k2*U$8@EB0+i&weq`EMw zj#+;!_YFmp#%>%?%*T$*Tc9fr0L9HhY!&@EEtuCvSQJLGcgU2!ZlMt_AV|cba2P6uSACM54669@#p65rG6xA~FpuOr zXlHxuGTG%ywuRULu&#*t$mS?(sw3HnNTRH|6ycpwB}n~Ur0J@99!>BFA7=!R9?@aE z-f@I4lX!%W83DOk%!5pW|BmB()4$xvgLgdu@-PN`+OBpR{ZnUcezH$jkFsb(tP!f- zr<_MXS085OG#Z+-u8sRL&mx(I;)b?x`kJF+Pg8Y>uM?r~f1p$JNs7+;{r#uc?=6@JIBY&&M`O|J6$dQzVR-zZw%MF zFTHC-k26w@hjzL~*GQlfpHU-`37u3uHQp~f{E*&C#)~_cCbts5jx*0U#tR6_^_ItY zex1bE+*#RM@o!Xaz2B^pXQ^GLgzsE$ib$d8sHd2tK)ov6(5YtCb*fpNUOCk~o-unn zpMLng-L6XP7}Am-Xs%nJDWTsbEgGL!N=tdzooy(v{u+6me%hu7>9BXl5t+N&f9z-ZQ5g7mh!p#xM%w!nyjm@H8u9 zI>}+__74H|r7x^L7%N}mveXFw>XNR`6sNwn#nBZ?6Sb~-@#q;_e5YbMLyLa~J#Ef^ z)Z(8pds?^C-_v?DEA;fs{*xAuBau!sqDMY!aV|%`cJaS$#aqtQinZ})ZpF|-%Y5UC z|4}Or93FIP#TZ%Kak`O(uN4OdrE-M-N449|(27@~6%WxY(Z)Dh3lFsp!@xPhH*n@w z46dK0U5~Y-SdTy&WXBd;bPDFIFnuD&Xu=)dP!9UMjnOr9d_#H%s$KF5Eka-AN-~Pn zRa<7GGZr0rN_3dol@b+}5{YRiYGsqr%A9|omFZJ2I9Vw<&zbCYCp*&9)nv4?lw5}+ zHw9gGc6wrxn+(u~TE@U!rlp}oW$u~=M%)4d;}JF;*i z`Cjp@_+3WGRM|tGB?rkdvO&&~i{(}F7VK%OQKPV{Sw}$Ts-xG0G#7z+^A|8%-E@E56hmjeP z<0Eg3{4r`^RDIOssOG3eQCCLY616hw$0%=fRCIE5x9DEc{iBCQkB@GQZjU|?(<7!X zW>U>C)3O4ye;D{(>M)Qho*-1l^?npY}2zJ;VZbx@VspDeDQpfF%RgNbd z8y&AYb~-+DeC7DjaS|u+#V6y$wB)kns^sCx=Os5Mf0(>C`J0r?l*>}COIe=sK+01o zFQ#mBDrcnA;mmRtIQuw9J1043I@_I>Ij?ix;e62fr1J&mYtDC_yPXG|Kcx0atxX-3 zIzM$u>Za6fF5yaYWxA%iT3i>pu5#V#TIqT>EjO(s?SiyR(w3$zOS>=a@wAO;zq_m5 zBi$3-)7*EtSG%8bzvzD5z0+)%rue$u$N=t8w5}I)UDEZ*u1C6_ z%n8j&$jQi=obyD^3pualyqoh$&cU1?b53>(>1OXXpxfwfle*37wxHVw-S&1n-0kOF zTW(CQGq-E5C-6> zw)^osYhFyAGcPBvIIn-+(7f?^jd^qPp3K|bBf3XrkLf)g%UAhD`B&%vJ^#0!V|qT& z^U0pi_uSg^&7M1Ze$sP)&u@Dk>**~BE+{IPSg@ktP+?->l)_bouX_?ab)JcyM$a72 z0?%chrJh?oD?AT+9`~&GZ1%k7+3tDY^QmXQ=dkCf=R{F*QMaP9q5(x?i<*ksi>@g8 zrZ}=Vr?|Sft@ys;b;X|)f7z=~ulin(^m@A2$Gv{QLh|~O=92c3i%YI7xuIlP$;y&% zODjrel-^SMa_QmHqopUxEM?(k_A+N#aoNza`m%G&+RH93yRz(tvSno}%hr^wFZ-li zl}D62$}`JHl}{|6T0XmcUin4kSDfB_AzLWaS>ig1JW6pZv ztl#?$>34g-6K9V&dt?88{qOI8q9V4UsA5vZf{Mo~zNn0>tgF1d@|nsXtBR`TR_&;^ zRA*IRQ2lm|teH@Aea%ZXKh^fAT~xbyK=yzQ0}c;dFz~BE-3C21*fsd(!H0(=4JjBh zamY184h+p4+B$UKu-IYA!!m~D4yznCcv#)A8-^_#_VTc8!;TE^I=tub8N(kOzJ2(Y z!+#%bKjxA#kBs?XjCX9}*s`&$W3L+f^w7ul;5l8Txh%dHyiX%8_@(8})vhjX^r`0fH@q}UbJUmard@1O>xg*{~suHu# zWY&TfnNZ|)sQ$#+y!@^l`cq3V-V34Co`v+lVEo@`P1K(RcQ9YmyZ4{kUOygdg+2e* z2HIO8nN#9D0DjjYZ3B>(NWgai{#PbjWa4|{A2aJg>j%)RhyOE~x8di%X_kpB4XcSe z8#PS0aQck>51A`OU)9-+76tgO{l9NUb)=~+6a{1u*Jy>)xz1=PErl?@vR^Y@mIAzI z{dbKVDxA>03(jafNV`WQ!rREAl!S z6@zb5{{dzhdlIdI={T(}`l;MGqM*k|g>n@jK2# zjz(RG!7~MJ|3CRtxb01yhdyBm%*!x0!Q2V+Ak583S0+x?J%N6E6Y^4zGdorx?T_H3 zFr1vmFy7Ulgq>jdk?1Yo#xR~9xIg^>?{%h$QvF0JxuYM9qdpJ(@}MuVsyy&-Kg??M(QZ7~ z>qf<)PK5&34{^iDWY3#9R3q=n+Y1pZM!p^s&9UzCK|F@&*{ z0oMg_zl(I=gZ9vj_i*SUh!1t$qg8=!8Tj$C7=k(RArf^%z9D+i6L~Bqy%TBdL*+~~ zz#6OuKz-27m;jjEe0bmUJm9dBNYug%4sgc~Ez>VPv74|j98@J*y^Aynj+1B?!jL=m zD$;583`ZN!K-v^vAbk(l&nHnIwu_N~^Tj6!OJ+Y#Y^Qv~NVgax$0F}TVN&3io=f5X zOPG%Ux58YEFyGc340r9f1?-#)0^uk z0G>np%4-wCI@YJGDE;eDM&OeEl#>u=exT?3@VT_Va8LB% zhL0FtBevoq2BmQvmV0GSw~)7!J8tU0mr&uxs#Fk$p{E@-#cvmups(=>I!j1xe{Heu5?!yS9e!WSE;LyYmjTSYocqWtJQT8W?gP}-R`>6waWF2 zJIo#Jj&~=!UG5Bbw!6SxrVNY6;e zI{)-Z87jk;5tR{}5ucHq;mYWqF)(9tMpKu!ep8smq+bMbU4SyU&&bPt@+s^tKOhgu zBl1_3s|t*~yr^DQ+te;iV5NzkmrO0&%uBE<++}w;U2a#FE7z6pDslC8Rl0_{Cb%ZK znq7-rOI$a(ZsWY%=MF+%V%^p1kuX|s^fBD{TgxGsz?@#2m z_XD;!?A@^U{=GNuUAgDrp67(v^DxW}Ft_iyW>3=|EZzC^NRZX2@!Jq$pPWVEP#N7? z25L^VRtvaRTdLh;;BV4y!EEp2DGtpTDbULhGQ<>E>m#3Te0jT z`^!4asE@~-`c&B}Z4I*Ky_~Wa`haq* zmFEY`@o#8WuiWIg)- zXXS(9X?eeRSw10Nl8=kc@-eXs{qXzpHSrqsf{*0uI91>k@uA!%K9heFU*LSo{o=6v z6lY?8F203^eG7W*?a*+tp%)~J88}UKl4utf%VvBDKQ6|~YH>MkUHB_>h=H<1+>JXk z95NWXZkV`7-iUqKUJ(yHs9a`?v(dMVm$l-2-2ZT`TrBRC*NC-pg?L=96tBzY#oy(t zVuO50Y>`jmhMJ+r`y#fw)F46iekIah04eZpDe_x63QUGHAJX$g9L{ z@^bN}d_lY|Ulf0nFNt@db?lH^#e4EE;vM<2I0!BL07lhc$z9?QcJN(}y^`0cE7Vfe ztY)iOxLaVcx=<}ruVdfxAa$F%L*1-yQOnc{b-P-rma99}-MF!Fy?RbPsP0qGtH;#Z zjnaG7I?IhDyrR)I(feDlZV=@{`T)T=0~>ETjFTr(mvk8SIirs0Fz)d*{otN%+C6j^H{{X`NLM#Bx%qIPDrQ5_f+_t1FTN34RjV_hv!_pPZ!Pb*#c-G zyY@Uy{IzhI17FQZd%i)r8%9}fgwbPhqi<+J+)YT&0@#%1TEyAHsU6PYDQ_94p?*4? zTMPwdokv7@I`YvBDs7PA`QTUqbnZUb5jg^;2GFTI>k&Xj&+py=ffYBnjY?SJoc3bmH139KR>TVBaPEQlS+dqxD6jvO4R$d zFqetH^EnpcxEucUx-%O3`%t`(K$^&JU?~ts{S>J5I`gFvX(yxCMLlI5J;U{gB%b)kXdr5&AaxVM8lZnJ*soSKJ}P%D@V*LjGM%BC4ls?XC=Pe-8k4E>M7 zoLZv(nlujS^wlbTQ~^QaU5Pe$njc0sG+KO9Dv3=2(u$jRg3w334xIoS0$H<(M6VnL zxgITJWGwpjsnQO8=oT3dohcg<+Kb*fK_)`_bVWb%wM>R4KRX8+#58bahnxsK;yrnuoFvbelcBdw5!0c&HA0v8J2Z;va)z8K zXUW;J8LK2(pwrEj7ocCiRnCJh(JtqsM_Gr~_AOd#FS$@I!b*w@KR|Cf1AY647~kCv4U2Tg zJLO&S&vJ#lTdu^IZaVai zd{PSZ{I6nU_E#|g{oOX4iSxRA1AX{FXkMhxZiiOzH~Efymo?j+VxIgv^ui0|2l7Mt zk=!Lemb>LA(3u8d1pABpOnxr^A@|6=(ERqvFXVptC0f8oq8%f@gV5i;f*$uZ#(>{I zr#mda#p!V0;Y_n1#4wBse}sm36!U*0B<>%T$K@|LEAKbVReb^N@ptGeC#6>jB^8zg zDhtj*wy7Yj&#e=Sp;3p3i&Urz!#(8@DpEy>i&eCWQL*Ae6{qYfUL~kRm82ZFVJ}5F zRjP8SG;zOji%V3x%21i&Y0TXJ6Mfehm4)*_vsG7>gHvL1#aP_%l_$PbJ;Vu>uXvbk! zJTVz#5*q6?swOo}O;6c=E2U>?R7^VI^i5Lyc9Di^7X)g|gu zb(vZswu--qdoWhG8zT!lPMk~-i5OWpFv3W|Jnf&L?OXwU=PHa_u7SpLE#^S3S2tkv zauaJgw?f~!9lFjPtmoXN{tT_>ZfHICs8tx>+^6ox80Dd@<-xAAr6WicwmusKlu0DQHknt7p`+Vv?AQ z^U?c5V+@B*wEoOoWm zhSAn5>Q#)g{)*Ap>(~+W2DG-f)Z1#ixKjNM^U6W$9rZ58e?LQSCN28!(4#+q7X1-v z)8Z^JUQJ+Fn{Z4!@Hlhc(8KbZ?afeuj^<9skUs$a^6Ss+#>T}%6v_kwDqshC} z9%!)JaMF7w#tBQs)#7?_owxyGwDZMR;&QcDyrTB0FGPjfuf9|V)Is%?`dS@Q->Adt zTbz^do%&w=ppK{?)lv16I;MVB$JHTa<|d?r5D zoLZ{p($X*^kd8TlOw0;&!7NNy%qn%$a<%SSp4J0%GCj2dTg8;NrUgww^IK*X)>PE! z&&m?xSztUp#UQ{j6uy#h~xC#Ygh!_>Cc zmY|B(>8&kIvqLM|X0}Xkm^#0`DX5}Ge{#|a%EGFq&TN}Hf6lb#rbVGujjinsQ>Qky zv~vuFI1{3JY6A%2(bn3)*ut6uBV7fYuY$r_J>J5qUbY&}wylN(>8UL=d{-J=s4{X> zWu&^w;6jzo1y4b7XibM?6xLK48L#wZyd&e@98{xcSdY50$~J&g5;nk} zNj+yCPw0S7v3LqB1E(~!=|MdeVFNpcDXj4nt3iWpgUpgeiPbVSPl1s@k1vm$(88K3 z#-l_kf(9809;7GGHmH4Ob7NE3;Es_L6c%w_K)Td6lncr>)MO@HD=kBjY(0&pS0nZ! zBi3SHc~sbj>m-H;kSOk@hc0G*7uFP)Xf-X5SW z)wpf`oaTo4%mlEuCTK)pUFclN7Jsj}7SjH(M@ zR4*eJg+{7-8M!F*#ZY4#9YD0i$b3mj*yv7$>M1lBRbr4TF-Vjc_;NiVg=MvtdQ?GM zeLymFzXhH`gFPii;!A35V*<;jh>OsJHo$G7#`i3-j`8!j#)z=iNJx#3=LXT5nusx{ z@)+%FOdyX-D}u)8)z~_Q1dDA9S7trp(lXmPW=q&OKN~{EHO_2mYnnH6o^9OpwuS{w zVdwZA^>AfIG1nH`&S5V)y4EO#B7*@RT`DI zk{Ja&w*%C5Bi;(5T~zp_uo14JTn}HtZ2}d}pi|*{8jLR}3TiNz)L=;62EWv8XbPw* z1?6E={n-zlYG%aNXcj!gtdWocUC0zxmDrj%f3~IoUxkLRN+Y{fMzX7nio%FNdW;O@YN-Xpk)I71Y#0yz0`z)2rMzol_Jx-JdHWT~O#L3Z335 zHcz2thF{E9hRx_024c3CZKhd{1%0pE>OdTK*v<~O%aZLY5yqNm>{t*Y1ud{(NN zvw~(CS(s@E+?i$_E$|eThRy02EktW+`0VLzO-(J$4K0l`r`npiz--MXui>T2(u~~b zu@*5`P=Abc75QXlk*!6q|1Ax3Tj#a6wa%TkuTcQM5(AT4B_hs#_R}Tbs`Bwg5);GICL9q`H@p zi$Y%vwYGTy&8o!6d`W58yiTR-DKr>WVvs5^NR*UY+DYQJ2Sls8LE;+hC^zbViIM1% zTHE}MgnS$1l0I=Z4j-gjhKHbZ>i}8^0pMA49Pp6CGUK* zRu|TkmfIHUHE*Fm`ymTW$-7XOyo>#gdQC1finq3xZE>LFHMoyMTe(N6Ew^3BdYLaIs`(|l!Jh-u6$0Py z6))9+E`f1Xln1(0nlB{T`6aT!$1&3l^mMnd24+y8gFm&PV7wR|f$q)d4frLLy95TK z{JjIehc$3fGHjc!qo(^=2-!-CIOC%OxO-D#oJpgj6gRi2ZDwmDjn|-DH8L)2%KYZ$rgnx?I=NG?SyfTbZlQiM38(iKIRzrQskv#I zPArOF+nDndc{IJxZfZ9@#25&_m&mydZRk%;3jFGK4xKi0`h27t%DK*1U4o(=8Vs(e z4r`i2&U((8TKw>g#pqRA7#}-*{!CKp$#jy_R4o zSZ!&Z+16kLGU!)wcMr!B+uWvk2yZwWEw7S02`Dy3w7O2}F?uyTdj&VmncKb?Avs{7 zN3U|80)8TydQ~heEDC9w*ACUFy{S?6Sy*D5*EF@Yr7@^MFK0qyvkTWzJWE4Z;!SOx zGbMzDJ3)pY?!w?lum45HaIeUSw5XsWghg6Fh~kJDt*x^grnD|VoF*Mz2`JLL`GTUt z%5ZcrQ<|Dv7y3PU^j;Px{OFN;^xmn+VlyR} zCdZ@a)^G{rgQq5dK#?99v(=+l!~&0REa20rbsZacLt)cra|%3FT!HcA3XEr2sICH# zhzQlYF9!AAi@>OW-kaVd%qeCK=zPB);~x!oC1sSf#iK^Q97BEpR#jz8{?fdm>hDNPK0v4)zULGa&IL zx^D@|Xs+F)Y+YI|%^&564rD|F9 zbsC1gt_yt66`~UF;WQ(w_Ncw;3(T|n=20<=iZp8o`zb!19Z)}tNTxt%&M5VnI*O;j zOmx1OAhhb*q4mN(b#Ys>us1ifx6q0`xYAiC6dQ3uo88m~{G5ii*&=z)>^ZY(e>2md zFLUIBzVT}aXT?l+Wb}-}p`QIk2TJaO3!P~Ys-A(b!A#eUS=qa=erE^14hei^tHxKZ zk@(WI6km=W$Jd)Z@)*8>u4e0>;&FAn(D04lTbt>6-xNe35(cvq^C_?{Rp-x8s6 z2TqHw#Z8g}yoc35tcx9lm6F4d?%~*LQU}~v?=CgY`<8mu`#s8J9Cji|tn-P2kAZL* z=-eYY*rg#oGzcq4HUcyzTa`fS=F7 z%V4p9 zy!$}SjMER99thwTOn~<{?`QPXf8M`)5Boz?I(CW4w63hWXvV{@^|C{ndNacr(k+cxPWo z+Yk8fF>ok3@6X<)$ODdM^v6NDqf+H3=pY19^Yw}3lU8*bKhzYxzWWeoe4Z(9XAIzr z;Ty^oVmXY~v=7j6y{5tLkW24zxSjC+?)?Qj%{u&$??c|#{AG`}@D5Sx`~$_Wm?pIY z)Ml7n@MG2n?*=18FjDgadXQj0P3jSJKEjWMLK6)bUu^-JLz$&#(E1mTQ#p1jCNQ{n zB}#Lt_Z`HvRD_buL9VyJhYM-*=i=|2D)`0o82tah(2uD5$It`t5BvIr_ebxW$b}h> z9GK>hc$#gO^Y}Ap9P>#C#{5pQ>NH`E+N#H*+qxV@c+@KF@#UYNzVUuif0FGz;Qh|` z20oj0zz_LcPko-=PX{@PHi)#CR8OU0U`QAHkAFsg5V)eLFK&nN@V_Hf4O}EG3vwN~ zJ&fAVyr)#^9#4~2E;FBdM{=FtPS*}P`|-VZrg%zNtIwzZi57XtmqKa_KG^R=hje^r zSD%06cAvpBc!$ghd^_fA?`ZpwMx80ce*n%;k(uQNdxoU=SP3~@V;k9*T6UA&_@GO3cnoP)q9fgdT$a~PDYv!==t`A z#nYc+Lub(4P80S!UnnCc3Twnl81TW!Sw~r?`|fCSya6bGY<>t7jhY?cu``G>{Gr{^ zSjK`iC=%;uqM_r(;vd25ej>2~Cl$CZ_+y73{;|9sHIDOb$4a+ytPbjne+t&$oGqNV z37`^kvKlKI-B|TF6>D3X@Xx|J$LXMP8UEQAdprn@lJ-;NU)KK>r@Ay$bM@eYh$Sd+3Jt^FYWSowzkS=fUSf_2N- zhk;e}c8n+|U=3m+b`M}j2G*zb!Ro7pR3VR3E%C+J_tekrr`z3Z@?f1)A&GrdWs*rEuAU3psgBIqX zg*j+p4qBLlVa&l0=Ae~1h&!$Dw=xH<%t0%2(8?UNf`ip?t-(JWysSle5H};4n^DZo zXy#@Jb2A3qd&;{XP(-ar#9xPjd^Ngp4ynFHs&ct4EV=m<_2A#N^$z09?m*2#==PitSx?pAD+aenr-+@)7?}6_@%=aAd zU9Y)k<~xoMLb{1}!OXib=2tLtDwuf`&OC}>9$A@3R_2kFd1PfCS(!&x=8=_o6v;e_ zVje{^kAj#-LCm8VgGb>qT!b*E6mv>3rxbH4jyYv#PK7X!;+aPw%%hMFJZhD#;Kl8z zj|t2##rz6oekC!#9Lz6``IXH4N@0FEnO`>MS1M)&_RzRj4H2=}`!o`zOCuZ!-e3*{ z?ba$*VRb4d4tTyq@N7p9ykmX^^EQI#ZIXE2W(Mzwnu8VDi?O2lBK+rzOE8DCfah?Y zp*bA1K+NG_R$>lTwoaxw9ISuE91hm5Vh%?>PqR1j2b#UXjz!Gg$RBC;2J;q}y}@2c z%-&${AFUM>C}okk90vVE<^wQmV4j3o4})D_nOkAD!EA@w2?I?t6WUiMM!#J)3YF0t zW)e()m|Bd2KgDw>Odaz7A^f3-%KRP%vNH1omOvxQEc88D(9^TfGh`*hxM8wkFlUs7 z{wb@>pgkURh;}2)EQ9u3zzg7~A567j2IDyrW-QFPFjK(O<&w^a{t`18%6=a*n|kDQ|WKwYE5XU3Dud9pB|-D58G(E z&N3l?n!y1hRsOtPY~n6Ap_>4$5ct`bnGlB{oD1dZLb<}_854Tk2a&6NqtDfVUiP`# zUo)W{Lc~|X@2BLKe)do8CeHqr&oux?uHim^_76LT)oBneX%mHwA1Fl98Xpwz@j$8HvJ-$;gpn}Sj2W5W@!`ldp^RMp{un~(bO=HI2D86&VUJ}x1Wh3*%?+ccWrhj0`yg^n zXd!D&L5WjEg@XO)xNL^M-npmE~Wo6L}I8J_I(rb=WUOPJ77YGO~@bHao{YR z%acCHPdPE#7a}pigq$YSTZqK|#PKxLl{61bSz;|Z;MWM3I25Liq00eX%n;q}B&o#+rLZ^%4Uxz3$!-kuXnX05D6X!CatfX8$A4vr!&QGPUiK|B% zClDvoAT`p^_VGU1gr=ELvkA4C&>|sHKBo|AkUD8BEs`!Zp({=3x>F$v;dqC_Cf#DX zE;pf-CiH*_ZGzwR9Ab?LJ$V|4{B0$Fj!2kl2lAA(&4jj_(Dx=pI6M2>Y2r|Cjj+g} z0qr-TLq5pi_CZO6)2a9=A2VG~_#lTeA=Fl#GN+WoI+9JCN!gKY;_`fu6I7hRlxBy= zhjWyfP(KqQKA-ED0vqL{LwZ=|Pz!K3Fa()xKr>8;TrV_Tb!ds{dbJO7D#u;a@*Jzq z1W_x~U3Ca=cQM^nsrOO&Iu7F?nx#I-vDSoEn-Fl0b?omZA1?J769Ufh4!Js>^Whwu zP3RR9dcy~$LJk@6t}r2_MW>SbxQR34aJ+BgHu@mPZWG#LLI-?M>dQXJaRii)J5CDW z-X}yl%h==uNZ=geLbAn#LQN>zg#7-TCN9H-dV_PX;jK2g1C*T4xZ*(90^EaUuCQYaO_k~={uHiilSRWcNALa~6780Ru^|_%+&4ijwsLg~Hnb4&sw9|wrEjqnh zOq>~;^GM3~X^LWV9yTH1oW~h=(uYg6m{6z>N?B>rd%%R&n9!3ZwBCd^nb1}f+GaxA zO~{}6T_)}jpkv_h3BOEqqMfJqr}7BEd8j5bF4BbTCPc2u?CS1-D`Q;tX>cvT&0yDl zCRA-ggH33p2~mi#9OB##xG9Wl?|{3|#Ocso&Q;Fa;A5@xOwbb3^=gK0=n!JH>8eBT zr}j?mpIQs-Ium-%gf^SdD<<@Y3B6-NpyJ%kRQ8y-115ANwRf6g*TW_Robx#2PWo`E z7843Jp=ckK)C3c9nox!b<(N>u2^E_VWMXO^aWWN>Fm(Y#kc0-*XhM*L25zniT?`2F z4)%R8uQ3FvXFxZZ&@vNRVL}w*VGaSQXM}jhgf^NGtbH=DRN6Ix_KD*-)8TytG#LbsUE zauf3Vd%(o4@j(=xey;WUlOX>rlWP;+x3c>-K-(GG31}BXp99(t6EF|rAKRw|r$wgO z(~{ATxnZ&?gn#^YI*5GGFRh#ATcR-0k3=Gc*Y zawQDTRv`Fhjc9IS*X6jei7=Fgiy2?8+w8x;_YTZ(UW~Jlr0l~!k7#!Su4MnKwD$?N z5VcC}AlsDY{+!x8PHiRUu~MVdR%(>mIocPn^Rzv%3pkca4JpSL9ZK6tO21sp{ugsB zS9;?ZL$NGo3adHPYWBaH(>BA~0M{Ape+J`cu%8*6k{Rsh3&LPOKVlJwC>Fu|5gZF_ zq#T%k!d^@qz*z(2e=$)IQz?Gi4{$1JqkY>CCrHoi;BYp|Ce81jSN{#43KIFJ8i3XqDx*ciS> zw;9vMlm~EX2XL+jaJv}5sU5)eWB~gdz@Y{(ANp~qepH$=PCEfRl51}q^CXVx#4*h{ zrjyHX7xt6OuDMJtm#O7)I;U~iX&n1B_J1qKGL0#WWWG&fzD;AkP2;ppW4=veK2IZ> zIMo2QoTk0OHr4!FiB~uaj`#y93it}<&tUdBm@%;&*FjFhL5}@Bj4%>IixRmGg^VosaGI{~4lQ+bK$%zp>->LRSSB@9XdHcA0D@+)Q&HNfC7 zY;YK1>5KJrqAboP4g&^Jd`+RgKYHkWJ{z(zRsau=bXOId~N5NzZIaX+DZAnpb+T!#cvtl}?C#9fuIg*T;EW?F3n>k7-NiOZGu-x0 zHqMTL&8hX$>T&p?^6iRKhGA=HWq>y_O!C~TjRV}BQ_`K&+*NI1*E+U)vyC#6T`6ri zV}_*GN%mhRu?8Bw6{i_z+@TdP9vT%WZ{!l($Ys~aJlx1-w^1)0-4FQ}(>b+Yv;VKP zU|_!HP+w!MJ7B7%;#)5L155|&90|{1zvj~anklSepLesL8#OEZtYV)xs_T%p9QMCT z_sOYE=KLlzZa{HP3LR z(oE*EOXe1o%r!q*>&Ezx*k(W4K)_3wlhC>V|Hd5Fm@==s$B9f-g7Z}y?8P{NncxYq zhp9^m<~-7QLP#M~aB$jEIWG>*g@fyxgJ~Z2=E3I=oLUE`*1>6Wu>5f_1shYaF;8sF z;X^u}V>!h64Pm(yg43#TX}kK3Y;6E2|E{?h^9<|=^%sV}W7i(Ae9ktdKZK>6 zVh-=+7(>*TgxA8^^<~i9$9|9mV18mdM3Jr)!qPs3TZ&>ltv{CH0LzU7T#F9rHHTAv zfb(*IB?D>05~~@`huw{24rC^A^=6huce868!*L8d8Fn)L%ka&e%3?F@E7^4n!+8uh zVa1XZuXulfYZJ?sfocul+3aUF`{~ATH>P&6pf-M^qPBUE@dw#YEW@#Yt?Z9lMmW~} zE1VEXYuAH}eI1|UjGai@_klGLw8z7a{U66g2A!cJvUvprtuxVgoCvJi5#X%QKvzqG zfy_ZW6B=4APDB(q6mR45`z4?amGARlJZ$@G0!qKRIJvii-)-dZDiTI5pFi}ix5=j!tuv_=K?bKU+l&K z=doT&;1oZBQ_=+1N(rox(oZ%Yi6`ODg_#0FT0CTs7{m4HJiJNlHzIoj+gsTl!}h~$ zqnzNnl16++gI3p1k(Vhc)0?W)+mY*BAU*5{?aSYoJdzZjZ zJ?Vtv3ih*>#v0-wXofxxP*1FLAVXdaPM&Vh5o#IEjuP1QBUm!8#*4YLR401RpdOSt2Bo|zryw#>U!WW(`hp13AWde1jISHKT{~2 z<}bzbjM<{wjQ=a(ETd%4MGe9UzBsAzLa_vAa@_#V-vzF(2FKTd+nd4ZH^Alh!QnmN z?qP8DxHyS36Y1RK1n`p5NW0s{aH=n${z9}-zkn0JAP2-6PS-swV>gh-B9p?CuQM4sX+Uj$W5sBw!r?DlqxMOAgMR}HC{;1;h98!^-^4%Lkq=9bYo zLB%ag0^;@U!24tI2A>k|=~5T+hkTLr{P#Jf^|}AvSNI?D74e6BMV;a+sR8>v#ci~` zRIHdfbeFNb9k3yt^X5;PCo|^FpF2~O;6cs^e;@H|QV1W7(E66Zm_^FKMC z@N{PmYEI+^dI;x@R*6gTEdENojK3y+z`AY=R?YSnsj@%%r7Wz_ZpG^02jznz8>gE- zA-dwOh$7sxGC&Q$?J0xQAW?+VFsI_SBbZz^ZHN{XL>DRuPYcmfMJ)VUf5Ty}~lA%H4w-j;xAK z4Rs^-V(j`%1n;`5UVxHtUTB^w0pw7bxRaw4P%?O$ugUX0DZSJT#;^^rp|n&o=~C(rzc@bj3>1d;{0?Ny=IYne88Ix5*R)ZkIx6~ z?zV8fL!ANEg3@{!CWKP#R6N&X`vp4 zeDpK%xduK4`IO+iJ{It$+XkJF@KhT}&kW#(g>o5dgr@vZPxd|0)iAc|D6moJ^1 zS88Y6)+n#gG_cOQ6_77p;%6|71>-tRwkqPf#7WP78ZD@c<57+ia8B#Q4rjCeH`-Dd zTEZY?o@#~0Ey2PqA&gr>1h<4pZV9p665_ZebmNwg$1TC*&z(Ake4wtQe%T>eGtkbU zsbVdAe`Vq4cm;0CB8bMPjV{jd0gP)geub;T#_t`N8FMnroK~4Z?B}U6Blsmf}#U+i{x-+MJ*W)yu_}SKnl=Qi2~UO RLoU?&(@!nLc}#@({{Y3(8zuk% literal 0 HcmV?d00001 diff --git a/flokk_src/assets/fonts/Quicksand-Medium.ttf b/flokk_src/assets/fonts/Quicksand-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7dc8c2745ddc4da094e7137ec53d9f919e960f6a GIT binary patch literal 77460 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/fonts/Quicksand-Regular.ttf b/flokk_src/assets/fonts/Quicksand-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9fdce17db502a5a03759481e93c8d70bdc4f5d16 GIT binary patch literal 77416 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-add.png b/flokk_src/assets/icons/2.0x/icon-add.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4ae2734d32ddfe21b2163c62eaed76b9aec48d GIT binary patch literal 340 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 Y0uzNWZXn=xvH$=807*qoM6N<$f=jOnBLDyZ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-calendar.png b/flokk_src/assets/icons/2.0x/icon-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..ecda3ab8d6edc206a0c34c6d36e71d9da32fdbc5 GIT binary patch literal 795 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-HD>V7lt*;uuoF z_%_Pco5hi5Z)o6#jT?n@T?7w${c$*W%WK0YF6sJ)j*RE?0|Gv{ceJ)n-MXN6YL`NU zW|$dQRL7=$bE+%Sg!kUv**yCV3zK>NWY0J?Yh(6kt<)(NeajchUx?ayaDnmTkez2W z#ik@(<9cc`xAfAsHGCW5+qN0+5A0bkaqW!a(M2=1I#~wh%~bJc{56F`YTXR$gHbxX z;muDq8?0vb^DE6Wxwlv`f%}4BhW?b>XBea#iY%Ew95|@f``hsS8iVh)8;aYGOV~T+ zFFYP7a(CnN`_2OLZE}ulxeI01i7ni;i{Tlgj6?N;5W{`18hkva-Zs851az^lsUcW`MZI@XynRceo$e+;rIO*Bt44IG9 zr^sX|i?e>yp449^XeE;VQCh^Zll8#I53kIxmwb~_-^h^pJ^sYw^%u`O9In@q`tIGm z^kG%X%e@!YYFD>yuWxreS`6bo5zvbv^9m7I{be5gq@6i)^f_Dh1?@Sg6Ew z1bZEM&m7h7_StBWXkF&LFS_=hxkVGSJ&nK0=AK?Y-~OQ1^|fX-e4G0#%NDBHPYBC$ vi7D@_PMv(Xzm#G11*JWFM+!|J#{6QMUw_*9eY7kn(KC3u`njxgN@xNA@(*1S literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-checkbox-partial.png b/flokk_src/assets/icons/2.0x/icon-checkbox-partial.png new file mode 100644 index 0000000000000000000000000000000000000000..5165819103adc48a2005160c3706aacd55ed8fc6 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|R(QHNhEy=V zy=utkU?9?vC^~uejl2I@&a8XDBIX>b^ekQIYw5qq`@V-R%9LSZ;Sf-8XkcK(#`vc& zVUhQsZqU0`*64U3OE;s)>TcR`l{6xlE9wEid3!Yu?ee;aFL*wcl to1ffoSd;#89J5^QjKfrjg^ke<7}}3=zW5iePx&M@d9MRCodHnmcF|Q51%QQB%YuC}|Wl3PEhN5HW}#_yB7kD2Uhy)?!oy3)_?u zB@#if62VS_f{LAmHa-yxEd<{-Mtp&f@jEzo9kTbHot>Rs=gK+oGc)JjbLRj5-JLr# zNmrMJIbaT$1LlA^U=ElA=72e14wwUxIFKaC05||Un+QFRfKbS{Vx;VI7U~C)gWwq$EY!eL zM6V&>Tl3v5@PwzVvndGnf(yXKb#}VTU_qZL*VMCpO>Ur!^Azp@fno5_LvE~a)3lJD zJ3W1~sokxfqosP7Yy}^(j57Q372Q_!1l0BexvLAs)uO#itAp7Z@GZoU{4`iz3n zR{DNnY*~@MrPn}Yzd}@o9)aFwPR#tZKwI;VHPf%{b0Iqkw78g;1WmfZU8R{^Z|3Cf z*O7S;>H)V?(r$T54{Mu4dB`w(v{q5SBfZz>>C^E!5L*o1)pM?8zO%PMBgXg=@Tpeu zcgLAJsn!4UG5Br*@?I_!Zx~nabZd=`_c#Ao8zhQFQffjoz zBeD?@R9w=OFm@{2gX2CRFET@MEjz#R`>2=)9*5MV`MpjE$K%S}uZ#`5xzTJPy#jnx zgvkTWDj+vg+M0hn8qqU}BCOHx`YCg?HDA6(b7%IA>KFlIph(C?Q(ZQrFai;BXLloY zz^w%7p?BlvoQpzW9+Jo$1kb&4{Ykl@T9BuAG;A%XXoNLG6orkR9L0p2 z&Gd|JE&|Vr%0S3Bq|p0=XpBIhJUPlgGf21#-k+l+IT4MJR*0fjo*dsh)#>&L+tOdD zx5BfnwTRsevQLg1+j_z(HphUYK;nEA`E`U7;^lQ(X@5xR2x&WsIbaT$1LlA^U=ElA j=72e14wwV~lLNm2kkRq^VYJE~00000NkvXXu0mjfgN3MH literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-close-large.png b/flokk_src/assets/icons/2.0x/icon-close-large.png new file mode 100644 index 0000000000000000000000000000000000000000..bcb5187f406b7442b3d5ff0cc20bd72999fc5ce8 GIT binary patch literal 669 zcmV;O0%HA%P)Px%S4l)cRCoc^n?X*)Fc3v6Sh4AXHM<_7oQ0G10>DWsv4Np;IzNKkW$CLWKq-km^t5u{N4u=im6|s$Mrm6zN17eR@Cv_YR1^x>mp|8)NXANF@QCj=?L-xr7Vwnn)qx0=%*e5)$Dx z(Y1s`cxCA&;N6?nBraV_K;NfM`!Teq6}D^Rm}dA9LW}k$2bqG-8ET!eV&6 zIbf7f44zR!arlK2+2EK&^ckneO zxP`AF!9BdC1R8h?33Tu!CD6i`kU$T=P{J<+=(s&rlgcoXqaW^NiSFl&EG1DN8~KIT zgJ3AZKfIv?9(V%@eDDP&@WP)+kgNUN@`;3g++KHPu)H$Z=jkptsJJ<;On85bHs%5n z`jOuRM=)o`COlJQwD~^22Msd|z^e#82?gQ#BpAT+NHB!=FCi2D19@|&=KWn0GU2`8 z7)qdo4_HD8m*Im%k?@S*o}LB}7(~Jj(O>Ws^0@p5&;@l$T>5y900000NkvXXu0mjf D&O{s> literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-copy.png b/flokk_src/assets/icons/2.0x/icon-copy.png new file mode 100644 index 0000000000000000000000000000000000000000..ee2054b6e681ffc64d181df071329e32f4d6ca76 GIT binary patch literal 1372 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 Ib4q9e08Z(%3jhEB literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-dropdown-open.png b/flokk_src/assets/icons/2.0x/icon-dropdown-open.png new file mode 100644 index 0000000000000000000000000000000000000000..d15c1844690e5de0979c35384d3505d77abbecfa GIT binary patch literal 406 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-form-delete.png b/flokk_src/assets/icons/2.0x/icon-form-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..f9938c3b39c4f80511880b9a4dd82296c966c9d2 GIT binary patch literal 1632 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-lightmode.png b/flokk_src/assets/icons/2.0x/icon-lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..39d7c3b28e31b21629e0269e26f15950580f6763 GIT binary patch literal 2702 zcmV;93UT#`P)PxzwYat z|M{PD{(t+z_deId@B00I*Ym^w9-HwY;PmO!=VA5`d>?)QXTy18V`IiginB&)ZOYh< z1W&=aa6UW@Z-yhsht&X|pr-bEj+q1&=8;i;&u(Lkp*)B3S3@hagCYEG8+~=lV)qXgq%FXiw+Rmo*jR+}-O#Vo=uOhTfZdaX2S%GI z@NKNkf(zh0cmnUopRdBVcDa3WMp5QSqvv&jByew8kg&L_?9lQsdO+TZ^Tn2Z+XW@z(^4B1z?hx9(vtQYvhbz5X;HJ!nu52{ZLoYlC55WEK4R~%dP35J~ITMb< ze?f6~xpe)Ua22m#Dj|tOOG$P({)JvS9*dCgN$=~>`Tl9>KK^ki4#8L9%Ww~T3LUTW z?EyM$*e}C($^TnVX2VEl4Un>r!|v5<;41ieXk1pogOuC{cfjpbcBqFdY)k>C&xW_d z4Y1MnLb=&+9oz@wU4o?Au&g@N72X}D9PSgMoZIz!xVEnj1QtLI9*0Na1iTa0UTKlN z6g~(43%i24)Ol&2`WD&9xWpK6c0fIk+@01jHjr5&xIgA^;M~@L@GFi)5HU({Mi3^jq z6xz!v!q`5d<1#P$=Ll-KCb`s<{ zDxZX@5$2juER2L_K@VbiZ|nOwT$WVcFOh<0K`$Ym!*@WRt|md)thK_EAJ;!X~ z7sBoEpYU~PgNl=9KIOebzJ93FhK->Q#TH5UT(}WF1ogegkKF&(UliMe@qBZr+FOND z!p`Y?;mhz8Ou-)eL6uYF+X#-Tcsl6Ax~j6B=V94(C4+Mccp5G+aveMzS|j%|etkwe*w5Q`9^v8+G*BYGgq;(k#b)O)<3z_@*wnk>lBXtOUDn?=5@$m7P`u7-nE>hrQMu=lX_5=wYOp1LuOZTy(=hPO+Hw}89xCw@~V&6PkFF|G% zj8B2yO}05~eb4iLz^>s)jL#3TZ~5smuS@8IzRhu{>imt+-|R!U z2tLZ(eKAZV?1C0zE|FqdAn&nvIce8IN5WRp;-N}%Yv{MOL)h>Iu)7CezDmLsFkS@T zAnk!dxNZQ2p73I9u3Nq{U z@RV18cxozG&Y}7=Y`id9Hq#Lgdy*$RV{PFG0n&Ua^2eJP*2OyY+!n*KlVJqrW+mr2TXgxXDpAfH^8gl#TgBoW}Y(2#*dyPO~OvtlG}~Ha3pEhp2oZm3UR?;51dwq$yaM~-C;~dEtTb#|KPbDd#C(yA%xakWdHgNX zuP+4S0GV^3i;Z(mhbExE-NnbwxM&ea)`iiPIc`Xj8be*`^tr7TkaarW0Vkk!ISyZd z3n~>LFbmp~>tWk}k=ct5M^IB(Rvr2?yVCKJOv){W8=#FbZ4C;KlO-yeCu7i;+BNW- z@Iq)@R>4b++zUN&5A~m+axG`6~|*K7;ju{DmaAC3=qc_0}yZe@Hn<*oT(< z-{f|qW7<<3Iy{4X1$Opta_DLg9NPkgd+<0+J+ihkgia4R?lSwKYr?NuDeS5+j=18w zZRI#Yp!1s? z{T(30AtKwtgj5*ESHNfCE?DQd{5$lhJA}6NVf4Uhx0eYRW1NJ_h9&=^xDfFrRkctj z9EUL`NNBWOYp>GLDu>8h1s6p!uH?6|f~Vf$L(waUgffQJSBgyMZ3t*1gg#syCJYj8 z(*ScY6qfgg5Pt#wa}5W4qYuj(j^FL4smXNjB12m_P7@f$?+&^C^p|1ht!*FleC;LU zd02hj%v2$F7mTqfZK*evLi4kN?gDOy9^D(A64gBIXxMA6JVtMv#PBjCe4jrb{*tt? zXUYq=$iapcpN9&k%rW>lX?`1_aRX=#!-x4i+{ki^LfG{cczX*KMbU5`7KtMW_`94x zPUf%&ryYIs%wc{zy9*5BBtzJv@)2mo?F7&G7tphB^BpPv2hZzrt~KIQIRF3v07*qo IM6N<$f?-cQrT_o{ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-link.png b/flokk_src/assets/icons/2.0x/icon-link.png new file mode 100644 index 0000000000000000000000000000000000000000..90b22c4502bc1650fdfe79a3beb88747713e812e GIT binary patch literal 1662 zcmV-^27&pBP)Px*I7vi7RCod1n_G_*MHI&!SdCm{MHE2;8E!^`sEBAt6bY+hP|y$Hi(der^o4j! zd@<2z3=hWO?SXg;MqLr3Xja85Do9LZ6Inno5WyHsFi}~?-i0L0Y|`L@CoQ|G#b0uo;?Eb#o%4wD?2f~ zbJnR7Mv~^lZ~M8UhqK(>x|D&9LrZ{><9&42)@k_DRX!j=lNrz0~A^{ z`LuD;gn6zeG+cu*#)Le1J_O5h^6g;!Eied9fhJf3)`D?B6S-5Y;RZ!Wo{_3nFKxtE;-0xZY(2gy}K0ioU2;K zgnZMt3T!8Uye3G@S-vrAv!jSRflCUJPYWfWPZM@wH!<~zz9qRl===yY2_l~oA*fFi zUQg|#Zz=F@jX8R`Z8gglMGT)NtSXx)$e-d~0XF#$<YQ7iA z-mxV_H{g1N%#U2$LLPfhftk6Eh5`1mKY3EN+-Et0upkm`8w11{e%m4Z?9XklRoZk%Y}`BhUqt$M<%y5cGg4U=@%x z25rX2P+O#y;u9{M#)D_tA&UQb6PF&d0UVbh|D;jEX=6WcH<#xkeBtmRJw({oG~)ZE+#nnke3IE7r`xHB9Nu-1wif) zw(tC2^e(YJZN*S?~+6$x)P> zz#35M9{;v2x}iJ3e$y;Y+sCdF^4a*rm9yd+umUUw7lSa;W^jT$4qVc4@@Bo2?!$T! za6L$zz2v2nkawN>QOHxnC6#`vzQIT=^JYzsF)-IB7IwWLUBlDjX;=FVIP3)Fzso+w znl>c8U#k}VU8Zf`KK4&LVrk?bGJNEfm$*W5d0Mi`*CCY<$kqgn{3DsfZ-nG5{;@QXu|2_l+}|olC`oNn==9Gvi-6Jujr@(ago!ThQWZ&0D#hH9 zB~|p8xKnIC=%)g0I(wVVr!JkGZby~ia}>R|ns@X5vKgcQ6a7is7`k3XUyE8Ap#5G~ z+ZCBlUnWeG6-LsWXd(^Ru4I#m#nsAKS@m^}0P=qT@dT2tmlotAR{5*v#M}sM@;Ax} z@z^JsNcyF%nnd?0+v2M#3JYS%^7+3>?ChprajREN6)UrqWRB&PR_#0MT^uoHf}u=o z^YA|JU{xDZ#b&b-%l_x+f}4P^kaw*NNn^AZ8LFl`Iv&a8y*gP=a*3=H7QQCnlSf{1 z-aERg$Qp{c9PE>79P$NY-c7*Phy1INsp{z{cs9su!dKX6Z+x8zj*T?bb=ouB`X0o; z@}H^FvO_^WO&G-PdW(Bo#hCnHDhsGC*~4IG7DAH3)ddI&n~lu?a6J;Y7?*!{*$Re$ ztivw=_kf##OZG6>$7Atvmr+N@qzNGJ>wrmN*^S4vj*|0DPNC9-p~4h(hr%y9`PN#S z9bDvMCTn(OPx&KuJVFRCodHo3U#YK@`SwViXJrh7^)k3mdVsun=rStHVM|I}1xiZ3MBtXl0>R zf>>FL`Y$Lp8qz4*s-TUcC^4MBw_L)zz1iKl+nL#!+kNnIZ)e`jd*3&2XYb}N3k#9S za5(Iv8|W75OTIDj19Yhu6MhmpMm}%Q-GTCYxGPW~+c5or;3cQ?u@UgomMKSm%dy=8 zD*#(Z4>|%^IZadqNVe<)tGrxAkD#+wsNgzPFRkLcqQ%r-1#RY+|_rpT%mZ)J}FXE0Z)JJvLB0~nA7I>F{cPF1iVhrU>jF{J9Yex6(COmlSD-T3DyEH zBrr#s1h@d7ECH^-CrN-y@W~P28hla&_yC^_0lvT|L4Z&2BLbcgBQIM~ybmC&+Ru3b zSti7|lSj|>M&ks8058N4XBGX7Zp$V{zfl56p!Ui$$0B+Wy^WThC(yrwUO{i6@- z4EBV0e=AHx7vT3Wk9>;MGTq6N9;s}v1Q4e-_|f8BQaNk$P`0`@fAlD2dn14tPQZ@{ zxTkW~<~bYe;xp@4Pqy=q`3ZO$Tz;M}I?pI-AInEBf)U^W`~;X;8iEiIEBGK40Qk!U za#{AXEOg@Uc(aqyB?2m+oO2#5l_0yGk07*qoM6N<$f|HY(TL1t6 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-mail.png b/flokk_src/assets/icons/2.0x/icon-mail.png new file mode 100644 index 0000000000000000000000000000000000000000..ecdc874f2ed071b0dab9e0c0c2d19025fd283225 GIT binary patch literal 1509 zcmVPx)pGibPRCodHnq7z%WfaHvHBBwkvdlh-grK4?O4+bXqB6Ql%aXj>g^EIuf`wQX zy2(B+ijaaXDo9JV%*~64ZnB#YFZuwpu+2n7vJaC=vsF>+_m`Pv-goAlXXgEK-FFWB znVIuH&pBt#K6B=I=H0HYQpyUH6(}oER-kh$Q27t(+}rQ!n$XENuX`^GP|ko3uYewb z4V_$rif*14!AcGBx^7@dvxF!J0Z7g zz_!p$zz>3HRq3Oc2|fWK*^a>tRfEUC1v&MCLxJRvz^^dVh1BAx9~=Xoj6gnNI%*?9 z9@D_PUa}Fli{so}sbRPf>;)lNkHL&wPFr9^?3=)FC`tH_!Fj0^P@a)eMhdvuU=s+* zP7LN*ep;m`<_d5)kep`nGvH*yPvrvfDVUxjA_d$8@EkY+JUI&awB@Indg7c5hP-4V zPBZupH+E#Gu6c!L2!Aiw7ukCUO||nqUyX41?gqO+NHlY2Te0BO>sDzE5X-NebXxMGzp+Ed{_l#^rubUgwd_L7622wnjp(X%%I z8s2c>;{uT9_525R_XYC57@IG_NvSP>l&au>=R_Pfi@~2DB%fh$QOKXgGj<{P8H8jD z2A5lYq=(lVL$h;KvI-EBcY4kuhjTFgIv(I0^?2PA@|WbXSMz-qXeNbZH3sf79{zst zPpu=b0E?0dS?4&M4Bn`9oN;{|-SfbFHscuBXqtWwLh?5TOXG3Y5u15H@l(=p0pg%| zegqs$MMx{YKxIx#h?s1;AnpOa&*`-<8k@x}d5S%`{9m=vXbU&eAz}VLezBy{=0nN1z zP!{-j66i}zua_14Ebt;Y04(_tq6bX0e8H*F-evK%dTh-epyVydRR9Lh2gwbJI{G=a zNhGh~r-R!;FVM!NA1no0s=5m$`0K#;KrwGi`nArnYfS-gtQFf{P%Ar7+-xOOuO6R| z1HB4k(W~>4kUwmiUjUp=0-J#)T6bRp#i1XmMuz7x2g z2KKwd7oi@+*xIJ+Ra<|fG^#4K*#qG8?0T}c$lc|!CD=P&K)A;&KXB#@DBJ{brk$1d zAyV7p-0O5J=~_KLr+}}3B}X7Kzi6R13sC40z|kxc8v>JS6O69+b9{iQKVtB8tMPf5 z!ArnC!-@L95ILIP0kg*CE&z`8Ue=P-+R7e>(~50(R-k6+@Vy5=>IKIPe_D)fAXoR} zNYz-3Evf1O7`8yXWk3x$OVqH{ zxXq1~*8{Y~^kg6_;;GP)WS^HPocZbAD}d*7BV^@N+^iLodPx$MM*?KRCodHn^6kFFc3toSMZt^5%CWCt=IGnb)j?!B`k&P$F_NeVr=4)oqf{? zA*WN&HBHlK_a`XazQS1IH@lasFA*&3`;vL_*@p<0@S{k2-8{AkmhE$$apik@5zY;7 zo6CmZUQLwrB5cT`KE#rHSE^ongb0u@a{&pE012}KkN^pgAO)}kb`T8wPrwe?0Xs+m z?0_8v1FHjezz*0!3SbB9AQ)I3umg5zvqQ_)Sbe*Qr*R5cZTsDNBY9cdZ5(eIr1EaT z)k)>!UbP7#fxXCf8(^OR*0?Evy-T|~!9I?;1d+gAWV;QpPXKG&6u{o4U7cVb$6SI) zU@x-W2G}QnHEs%E@6xVLu#aOdL8RWXe+g{AksAA!t+C$*2*1NHj2p)7bBGnb--DA& p$xMWPkIoh%^m}-^5Mh_c=l|$$ejni!14IA-002ovPDHLkV1kv2sZ0O> literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-note.png b/flokk_src/assets/icons/2.0x/icon-note.png new file mode 100644 index 0000000000000000000000000000000000000000..286c2184655b10203917a19f127cc63bd9325f80 GIT binary patch literal 686 zcmV;f0#W^mP)Px%Xh}ptRCodHTD?ldKoB+(5F6pN5xm06PHYt)K`gbhwy^Uxv=(ixd;x30YqS&u zK~8M0KCuzSAL2J~MM!2h*(67HGqbRqnZKR=W_C8aF`BWoBuPeK_bnp9vu1;zLCpy$ z05t&&UR`_!#1%vMR#C4_wH^kKvJO-QpdUriXV#d{&)Ct%@NY5eqxdDD0Ay1_+H+A2 zxCS6g3@CpLEl5(XDh4@=5>9IoG=QW<&;X1Wa*VZc-oR{M@nUqEwFBGhpdDrD4L=Vs z_Elw@aI%SZ$2kDQJ53lbuu&?2urcQBXbs>ZCyAyRASv41TK`AwfGp z|DMRu4;?jK+AW07TofR?g?{X)Q%@XKbHr6n(B{inhMZ{^xGbZemVvE3gD<)Zq=9n% zTZ^D8VqKFjx(}dN*<6-{b{}X9niT*{^xdZ11zs+?U6_>19K-`a$KeeZ#0;_@SS~LH z9!Ks~7@foyg7zX z$JzAPp(jR$NOVlL**B;;k)NHUU4*e!)jAHlj5Tdp%tbFnIgrKI0Pz4=PlHIA6Z8cp zb$%FHkR<&)9%R@WbXt535Dx&|2e4mu9kc8a_W_5FI$ns=F0ko^CoMT4ehDZ5EoGiJ z!-~%UDuQd4a16j(X83fIoc?d|FGeN^QjG0uXz~BF07b`P zQx30Sd4#s^*Ll-q9RCNeCX?rwyq-Z59Zje Uy*UrRvH$=807*qoM6N<$f}HXqF8}}l literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-phone.png b/flokk_src/assets/icons/2.0x/icon-phone.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee2ce95c88adfb5da14b27107385eafd134a1d5 GIT binary patch literal 1825 zcmV++2j2LJP)Px*+et)0RCoc^ntO;ART##1*IVg^X@ps(NmvqLNeY#r6p_(pTS*WFW*cc(U|Lc1 zM+Duhh^#-tAQHM^5@v>rB&m>g(F(FGLJ}g)4J|XeY*~H%p4yS|blx*(=DW?l@Gx`U z+j-tI^Ua)dzG-RcXHuzDrh+w~2OI#K!F^ytKPx3aU5e}ke*jCiVVDaB<<2OOHBJk_fRdLLPmf~mkEz`8`Iz?9_+CotNfAebeNJ()&A)Ke;I)>tylh&KpKnwf zdLFnTucK(s?yY1VkZuECy4CcxZ{T=7cmezdvSbSmLrYd-m=1)mG^+X*{oo{;b3G*Q z1_wb%x-s^jw*+M0HLAHcDL#F~cNAD*#3bq^>6p@@d?R7(9G{LMNK6Olbz+m|J25$$<^#)#;O~TO>i8$;<70{8dtEBlJ)Ibv zr{R7uea>au*ItpA3~?_RxgN=zt0Df79SyAC@07eG$aOmK-A$YF=4yyPWS0P+Y%EHE zWS@Hy?kbwEZgG%o2U_O(;^Qr%*hT>TTjZ1SEqdHSVBH0L8<#3b zlcDKuOuCJIIq-?L(Q|L4rgKM~)5#bx9h@2!ka8kMSKcZfQzh$nuW7R-OHy6c_LLrn z0)2_G-RXTR?aWcfM-Mz}x|*bXGQ=9E3E;=X**SheyY{a=lIjo02Y@x%!1V7To)#-MI?ku3I6B4}& z2fDH8Hg*k=C6A?jt2(EL8DOo|Q-=QVAmG;q?gZAqK1r$Oq>)TeXRz4J*h z09*s~d#+YA2%6W&s^2U9}5Ma(xDTE&!qZ!bMp* zympda26P4U$a>ve~zvdoQ%Y7;magho}#6VWZEO~%Qg z!3fe^=)*o*zgL0~t?5|LdB#)S$`+wctyg5LjQ)Be^uesh7Q zvzF)%I{dYmmB-W*{GF8<{cdm%2!4=cB`3}ugb&eOZ27x-eD4C*(;idh15n+^k0j_( zCP#F;T@R{zmr@ZqGziav=#5BxwW0Yk2+3BA)o*Q+n%rflm!iiCPcf z>aKiJ42d32vO33S5}!sL>0kc?Xv-@kD=`-T&AY{rY?9HNh}343-Amd3{20 z87IY__D-KiG)ekd(t~rn?Fh#@H0V!P-S-?yQ_<^paUHtCD5p9&5mrBvNQ#zgoteKZ4 zN7u%%!EZ3=1bSs@FCa!V-PJ%9{SGLGTDA`ata(9Fgl1@GxS7zM0<CnU7+@R^?3`7@rS4$W_lfk*5jCiqKDub&;c?xKVo<_+y~-QfF>oeatOzb z;AT*lnPja7A=ee57(M-O1bSkR2ikr<0Q8CLZlLdWHiP&1wEY*3rI&vI;=;0da=pUm P00000NkvXXu0mjfK}2=6 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-previous.png b/flokk_src/assets/icons/2.0x/icon-previous.png new file mode 100644 index 0000000000000000000000000000000000000000..51f70af4d560dfa774140c51139311351ba60b9d GIT binary patch literal 413 zcmV;O0b>4%P)Px$S4l)cRCodHn*k1jFbqYVH}J&b5%i)S0XvbUAr=Z#Lg6hjR#&C}_f?F<(<$I; z+qTKKfTh=${1GpA?{zE_L~`!@a2>-0QTaXdN18nLZ<1yQ5~n2?CLBY2Z_mJlV~HP_@DuSbgd=;|VSgOu00000NkvXX Hu0mjf0!pz; literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-refresh.png b/flokk_src/assets/icons/2.0x/icon-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..8267ef60b829be3c52f18f4f09c74553d31c915f GIT binary patch literal 1793 zcmV+c2mbhpP)Px*yGcYrRCod9n|p{h+?Mm3I;5xVl#z7V2BP}>@gjFfNO(YW1m9J3v z`S1+<4#k#z1Y86|%WecnY8<0d zyT@Pw^vW~Far}3|Q8)(5p>K-8{O<$#$O)X4#}cj)r>utLI|}`MAp7h1ZL$19=?K;z zK7lZzqx2mthFTcp*9rCn41pWqY4{Pso>pJtn{$0YcM1FrX*tHmNWVOsHX06xU(=C% z{%^GN#wukypfQR9v5h$%X%Eps$MyP-hoamz)%!GsBCy!vPf+oXh ze&`fvd@J~!hikA82pzCUj`TSYbUSp3a@MJ1$>dOJ&~gm?WkpEoUgCezKklKDOF7a1 zqoBEgB`*E2z&?mp4ZE$V==8C=KQKs%9O(OUcpEea(dl_N_#G(B8Tp4TP1W6kLl4-H zY0`c}x0D)p>(W~2dlWRcPpMTGzP0eLM{n)w`NCgl^{Uk}rMttwb!n~S@SIO>GWlJv zWPc+&!<>%-4ij*AAloTxdm*!^x~%=q*lY^uG-!6~o&{38ZZVpDS)zxXpx^JFO9e*l_0=p9C`V3-e1^s!TE0EQb? zH8AJb+uPWSa{yvrd8$ASz}ZHz+YDVSR9xKkK4CIcs~}zctcRRKv8dKl1Vt}FH8-U` z&i<4x{AmHN%<{CY_+1Lrk@w10odPF~>JAvXN>^QM6fj%^u*PH1)jy86z?Z=k1`7 z0nmE`m+WyFI!ON-{Y-T9^&n5Y{%^V%!A8eN$E((@(z__39$jBY=OtCsua@?_04`Y+ zm;fz%gY^};E9i0zNtgz=fjzMZ>^YhP{q~1d;1V6I-~}EyjdeuW@6b!V4hBUlq43u9 zeI9HDm;8dkdKH%2DUQ<}QLaGmHwap&G%Yt`=`{4G^-MEBeY-@HprN6&z4*ZL z*L_v@dOul>(fXn_bPi!0>7y1l`6Yr)v)TNn?KIFi?UnWEq%b7GZvm3p>KgJUT$*lI ztpCK+x}VP=NaU0MG@V8ZjL1)A7l6GV=tzf=pKzK3!?I)KvrXG1%!Q2*Mqb7#uW5Pa z>PSOU%_UmhuxqbO$muERJw)goYmXg zi=YP1fiTjH(`<6pJfLt~HumL(-z9518&i8heMBJfs{f@`)R#d71 z+D70Gz56(aibV9=oEe~>$dy`trh_}7Jl|50*cf;PiuwCt%|l*+A zGZG$&LoHkedeYP#A?V1p;Ik97u74eT4x38#)m=#kfW+Gg1JVP9uIy)muKGeb=qI$| jAT&~J(2pW;D~|jJ%oof&&ekl?00000NkvXXu0mjfAe(Mq literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-relationship.png b/flokk_src/assets/icons/2.0x/icon-relationship.png new file mode 100644 index 0000000000000000000000000000000000000000..9b71ecbdd590110ddfd94266d11051a2cbeb2b93 GIT binary patch literal 1820 zcmV+%2jlpOP)Px*)=5M`RCodHnQ5q1RTRhHOP>wm)Zmx~sTD<>a(7&w4UaW)9d$t-g7;7-?h(h&%5=kv*6F! zd+oLUYwvaU-e>P~Yie@IGmvK>&p@7mJOg@Cb_U4?eB?S)|1qkkv`+v{hF_HGcN*`A;!WKK;b2e1Ym<`Uf1QV8 zki~)RJ>a;kz!fdcSKwPk>_6ScaQ%#M z#Z$J{`3aA0lsbvey%1bvkZeac74%|2w}9#3HtM~B*8FDRN>3CIxysaavUn44CGqPk z2nd0-q3Iq`6l~VHfvE2Q8jM$H?+!KtSHAT+C2fFln9EwI>++LGupi*z7#a}J-UC=0 z-}JyH>WS~|o)`n7{9@Z6)%kzFK|U|mxnO{=b&A}FzPQ#Y4>w|HGxMG^!tt@|01g@) zW5afCId%_VtsTYbW7m=TJc4yI^d%~6v{^k;qC8ny1NX6zUhCPFCTw(Sj1}yTW27s% zD;96jCN=>D%lC>NrwTfCEjU&6mSkg{(B5@CtfQ=T^mg1zs@80=cuSmOEBuOD2HSxp zPob=HNu&b{EeCYlKymuZm-+}`N#rjW#Klp^ZY>#C#sxN+p0LhznM3s-C_e!v7of6q zKG7wqL@?~*F&`itQUt}ABwAPk`w6Y9`$W4uQ z-!$Gr+vQfr&|eHT0!zkNK5e2S+B6V%PgkdOlG8CZkzlK9wk6Fd?+53Lh^G!tcY{5^ zlFyO^%(Om;s-64>Fa>C{=?5eY;CrwX)EC~-6ypWXOR)M1bdIn-LR+Vp_L0P0A7Rse zn@GY8kVPJ7zoSdoGe$ofSa*Y{#Aw5OIAMtPZ^mH8gH2H*4z>M6Sy$v#l6nsyh&G|C zz!0FjyVkw_5<3e7yZm9whrn+@A3}D3Z@_xiWfRZDLOiYY8DJV14LX28bj)1~bXIsB zZpBO`i4s63v@y*Blfad!B9t3{hiU~_OovrYEc8Q34ies)+)4(WCg50t>YZ<$u~BE1 z6)=>16iM8bj9Fvc`Yzfej2^hZ#di$KJq}P<5$&~&e%uj!G zbRG!K3qju)w9o7-U=PoY`0nPJN=gzyu!(r910`2g595CH`nya}=k?*@0FdZju7ixe z*sAk`Kvxha`lvC5fh-RU=~I8on?SI^22Ive8|>F$C0GK_PRq#D5ojpTXDXj)AJCee z19a+3CHUyVqND8lAnN^ofcC4yW4v6(Tsbr zWC$p(_jqUjSEVG9ze4<3o<8V}6e;-W2kZw%gGa$Ca0K||7!5j6o)jtz4a;5V&J1j- z{UlaLu+`|tirVcxiPRl zM9$6J61}g?-@Y4}P(@(begX5nV7`Np)j$ohz*CH0O#ARGFl37@A{{ z=u$OW2`IjALq&p@7mJOk}31AhaTfVOQNEQKoo0000< KMNUMnLSTYA+jTzx literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-save.png b/flokk_src/assets/icons/2.0x/icon-save.png new file mode 100644 index 0000000000000000000000000000000000000000..2da7a4bd83349efe055c78de50d37cd3f06ba5ed GIT binary patch literal 605 zcmV-j0;2tiP)Px%7fD1xRCodHnZHT{K@i68L>sZQ&?nH&E}d_oVkwBNf3dK$*F=rAjh!GU(Pyv} zOYs2&AwGc?@f+cqWar{uZo;@T3qy2vc4y`{-ziD59={f|z(RP3KcZ@9J5c_BYhu8Y zj^h&J*csMN$^fYMHX!VlK}a0{^?m^edmID{0I2tKK-dpKumXU3KLdn=eh8EOjuC!u z;_TH3=VOj;A^0$G;2pj>7}r+|5OS0OTeJzY3~T0VVmyy9EgMXmAZ#Z(*DgP7#wQr+@-AAawBa zD(tK91zu0o0KhbkVV?nO2MYg_3lJU&f_BO9&&BZFq!G_Qa<-wrqMMrM;mJ$z${30Vl- z+hAg&-E{(>cU@$4uVq|FCbG;w0uDe#SO4fz^9rc)NAMK`rcZ7(E~+hRMFYS`Oh-`} zln0xC1RQ{Jg^HKw3J^!EJb^1f`GCaBa|MVaR-V8WpnO2$<+%dH5i3vN3Q#^E@$y^& z;)s~WhG{N^74 r2VgP0l#iq(W00000NkvXXu0mjfRJ!-f literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-search.png b/flokk_src/assets/icons/2.0x/icon-search.png new file mode 100644 index 0000000000000000000000000000000000000000..727a3bb91ba332710b162aab4c8c349d3fe3ead6 GIT binary patch literal 1534 zcmVPx)xJg7oRCodHnq7!hRTRhP)@a(dAB|aK7Wk1l5Cm2P(S0z3q@H?lf*yQvirz9y zpL#0MAWAACeTW`>k)(VmDl^Ck2_}kQN`erztnnlJl1v?cf9}2D%(_a5cCB`~&_1hrxa@0=@wIYPH&F zJ}*9@)BRu__y(lPzc}s$kAZ0yMHL`A4{QTxK%R1hU{8T5l`I6rW`dW&DNv;RMDSIh zR+&OTW(fQNIw`{>TT*HfATR~I)yZB@$aRwcuPmYnZHE_$^=97z?vEgFhPK1t5cstT zz5VBax!^{ir+O<0m2)&)&up_IzIpofDqAB+71T6jF9BCTMC{BUxHA1mxjF| z@iVm{NgoL5yr!_1!1Y-Y;=c@h3PNN{mRxOpVK5c!4Pf#%ZEk8CFroqRmV@sCa<7R9 z8`qTNn%{k*DR3|@YItj6PY3!s`Q$XldU({pmIQs;mlfL~uq-fKre@?>56%Khj$)Xf zDanP-1e*>1w6dW;4EithDf(~nJ>lUa)Armr5bPCCG7bB?b4wNxh`gIUyv|{}D-2 z3SiCc`bqntk*I97^jffG$DkT8bsAzP0!WOOn`%ybHl`ix~Ph z5<`!7BarUo_~eE09>xC;GS`9;4=J4w_T|EaKsBH{IhJVac_^1;0YS)h9oTJ=Y3c_9 zLWMUW=n|mqaGz|!81=I=oI#@{@ipv!@R7jwL2TTh_5@xDtdpV^C*9`A_Tn+v5ceT) zqLs+=SvNvtSCe#|CvnRplFxzZ*)#U^5a)LA9tai9{ZX5sQ9KE*3rQiOdjmrt=@bdS z0k9QViyTa*6juaN_JUW<)RPVBz~|r@a3`3wL5WV&Z9mYw{u=lhWR>J11kLNPTg}jU z6QnFPwR@}I=-PSGMuy%SL3wExBf5`R=hvXMzY!B_a$Aa^V<+EoIqOsO`M-~`4)mmb zk~|V7_t>E!^IWhEq#4Xz>hE**p{JjX2TLh7Tgw_f>K~eHIfnNtVv^wAVL|2U> zGz)PrgmwYzxEfQG=<TZzl45QfDA&Gg8PI--l z94U1^RJRD!yjz5B5gK2;?nvm4gs72_e!aGlrrQ6u`8xcF-M4I^QbN kgd$v8ou5#IJrjrhc_8bN-no&(y8r+H07*qoM6N<$g2{c?X8-^I literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-setting.png b/flokk_src/assets/icons/2.0x/icon-setting.png new file mode 100644 index 0000000000000000000000000000000000000000..4db18b3cd6310db6bb69c5b2ddbb13e73ff90bcf GIT binary patch literal 2363 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 FV1nB1?i&CA literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-social-retweet.png b/flokk_src/assets/icons/2.0x/icon-social-retweet.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0baa19967fd43eecee7e17fec2d583da4ed027 GIT binary patch literal 1270 zcmVPx(ut`KgRCodHnoCGkK^VuqDHuI0qJ(Ux(4q$f5o$q1wTN~-%nXdXih^2HtEgQ> zv?*HIE()wgwJ9p2e5LeoQ;SwXv@)=FY9*E4exKdBo-@w5o^#I}A2c8Qotbau{J-z} z-#O#CkD?-HP64NYQ@|d$4qkzzYy{$)V7V!NB0hpi@sEMmrcwmS z<2N{(NWorGg3JYa@wi5s23r(mUZ_2ARwy71Mf41S!5#MG9!Ag9s-IDL(HZ zCB;K}4{QuUKERr798OR4weXbVI|)kkxsYSYa|w{0RuOPb27e9ldjjU8xutl}0iu}f z1UdZ^F}PFUAds`iWF1xl!(2%5DxpM0kOB!*1wN^OTDvxu2$0PI?HXy+;WsX*iIvC% z7sKBWkksi3E)AZB&_?kpugMUhM+Nh=UBMNOpP8jxQat^;V3YD`ZHG2i!>6jFwPlPS zz?qg1V;0I79@A%|xug}z^)~0=n z7%;EzgeH7>pE`ApFk?7l?|@t!$dm}(^v4x13-OyQog?vdSg1ruq<9HM40{4(32Pvo z@2SJrHC2x7 z*b8PoUAF_QOFF{{-42*xFPQao-43uWsYODb^j3q1V37@4c?N_6z+_4U z-%c^ zQjl*an2MAiPni6;M_>89{wNVf5STteevf})1e!=o;g+3nAH+3zP-?SqFBjZ}?gTjq*Y5)KL literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-social-star.png b/flokk_src/assets/icons/2.0x/icon-social-star.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd46db1b3fc884106f64193b934c19e38f4a1ba GIT binary patch literal 1169 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-star-filled.png b/flokk_src/assets/icons/2.0x/icon-star-filled.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd46db1b3fc884106f64193b934c19e38f4a1ba GIT binary patch literal 1169 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 D_#OQ_ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-user.png b/flokk_src/assets/icons/2.0x/icon-user.png new file mode 100644 index 0000000000000000000000000000000000000000..1db25175e269d36406be6b4073d66ab0710c00db GIT binary patch literal 1574 zcmV+>2HE+EP)Px);7LS5RCodHn_Y-iRTRe^%PdpVO3S{+fj+c|(9}L4B#L@aBg8@oQy(IN@FAj? zppro7AtMSRgFpz3LW8C&!fEV8gnE3(OHw9ztezkgh>$2)7CbM86&&ON7Q z!Jl*QfA6*Sf3G=r?|t?@(>7#)tWv3rq^Vh8Hs}DCfr~*8*k8p)u4~%b+P>xb-!M9U z4R{M21!?VbD&AM>4A6nG;3e=E$ZA_~oKd<&AbJwmleO1%et+`)q0%G)v3G#q>N*kP z>+=L@3!R9d0TFlu0yl$m6NK)d{7dj7I1jXgTflG-XU{M|E{&_uvNAe94(tVOF4>SN;wxXXyD+v^CvsA*Z2WMv0hVLW5vg44Gv&IeThmaYTLbz^lVcy1w zp*zU37xTsr;*YXrmO8k{LNq{}c3`a{zY7sRcMQbs2KAg?RXs{x3$vc7@p_o;c? z7@8*lA~fGmGGctde0|j5vr?-a$7v3qn$DE~TDjC|X_LcerM-Aw`>ET>n}AE4mh^ZV z%($Dn3D#!>^x8M7+Em^IcuU^Hc5}JdBZjxvzERbt@+RP*9d^k14xfo;tkE;e7{l3X z->7O+rAPqMM+0j?RoDbvZRa~PdzIta+5|8-X+Q55L!2IML)xuQussf+n$G(ZP(z;> ztxe%~JJR5@Qnwk7$KkdZd_z=-1Z*@~90oVv;2Wk$3na2WrUse#q z*5*lUa9;!t1N#l3qB?;!hsWx`=Rx3Yi`^CL+=@cPE&`ruQ^Wcln^LK(?J({7Shmh| zDguexxQ)?WluwV-N%|lmC9d_;n7sLeB-2DdF4SoQc<~o3; zx_RIn;MpRkzLj2KA$XE79W>))=;=aqFpUTjFctg?LfMmP+AUNadOjI^nll61S=K_R zoQC+JUIxU6uye{bIOq-e-{Pbu%s(RID z?du-{+S!Ssm+x98Yq>1wb(*~lk|($ZwIB(g!y3)CmcIw+wYG5}wDl2i7g!5AK^FOetEPS(=Ua)!(tRfNXvjoWGL&vWGuYhBqD7G0P&D|uSf$`u~ zP^69{=QP{Ox0#LnWmDa@1l2*u+aT+4vpnM7}OEX3!CVN&Sr>M4$|0mDm?)txM@cG5#WBX8uWoA`-%$LPO5R#(_50gPlfB7*5jDKw5umf zJvkl*akh@aGh#yZFT&wwV7-}jvLU_Ce|vw=foIS$0jvPt7CJ?h7g8&uvTiePk6*#o zfYe*usTbu3sRdMAP- zPG9^7H5|GPryjV5Uw3bHPSE_C(HBv(qS|T$8U@;k)iG7Qb+Ve$lC^B6rMqP}MafzM zAiaN2+ZuH!(dTWBRyP6HISxA=zR)yxZ4Uyqt5k2-Mv3ShFg{uk`K&$rvYMs+w0@>Z zz)xlEJ-UB3w4cRzr+?M^*OC&@%dPas$;u_XdVjpyU67OjFF;vx;pwlf1^%xIsNDho Y0Hky3Yi$uINdN!<07*qoM6N<$f{nlLApigX literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/2.0x/icon-work.png b/flokk_src/assets/icons/2.0x/icon-work.png new file mode 100644 index 0000000000000000000000000000000000000000..c157f57aa5d4807934cd84fd4327256107d792cc GIT binary patch literal 534 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zFL=5*hEy=V zjj|3pY#`9C} zH!v|W-#&kSYW16wEpBWl7$h~0I9xB~?g{VV@42LAcl7(BfL%}TD6G^x#(gY6ZR4`1 zS|`4=q)c-T{ilA;$oQ?Y%@Zp}r}7UQ5AQhn^{Vjy=C9usTh7nhG5Kk@y8E_f_5*Et zaYj>T2w9&_i+mCP!RFCp>CZ-9H+1KmurTlZTV{9j`3@Gwjb}5MEA75|s%;aSepBjs z*r}fpIjJk{LLUiTu|b!U++)1nB9bKZ19+O&+C|QQqmKZrR5)|GjMub>U`|_KR02gzEO3nd1dR_ zud8?X&bstn?#-fECx7qNcAjXxHsBrOx?4FKZCnNuo^d&`?#NocP(tf~!z^tM(Fd#M zwk54#V9s2p5Yn)^OsZ=k6VH;JO#wg+nZ#-6{3qYwfAZJ&66Xoi6dm`?+&(Aa?VTO$ zSJHNr{tt0@ExT&&{5!1ove_5b8#%DeN`1h)`y85}Sb4q9e0M%>k A%K!iX literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-add.png b/flokk_src/assets/icons/icon-add.png new file mode 100644 index 0000000000000000000000000000000000000000..f9fa685b63b3ad7d0dbda4e609c8a1b6f1ae6ba0 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}g`O^sArYK! zryb-xV8FwC^^)zb|9&r(t3_g@FR`{L&Npt^GsPmkQE8^Apz`(j!!~ZqwclL2$iSk& zz{uh7;Dkl-71~ cn0|BCTxZa6_Lv~O3urlmr>mdKI;Vst0F$&o&Hw-a literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-address.png b/flokk_src/assets/icons/icon-address.png new file mode 100644 index 0000000000000000000000000000000000000000..1a806b6bad8bd73b27f938527f60d7d8ca86584a GIT binary patch literal 850 zcmV-Y1FigtP)Px&3`s;mR9FeMmd%S#Q5eVPj`1=WnZhJWQZ{PJ#%9Wlyd+U(VS(gNu$hG-3roZ- z6bpZVyv>kV*obB!(v&jAG_e{X+_8J+~0HVJ?Gx*XMRt8o#*BIe9sx@{LVd5 zQ$>s8ID*;*_JYk|6<7u)!2}ovgEB@@6f@4AG5Hqo7*w$lNZV#*c7&S28PBZm$vp%^ z$vElZ^pl%Y_d;lv$pQ3V*cm$cN%kR$NOG|Q>a8TF-L6KKyBNs!+S)Z}2wuc+K0 zc4-&mooolW`QSYG4a8);02X+-a!A#BvUP6^+wT3&EQ$IlRm_ZMJ>0E^b1qx=#x&@E z{}=pumP9PS49WX!ieyWM-$G6fu-J&Lso$)Q8Rdo(d&!M9{nt(Zm78yI8o5p@;R>6g z{}=Iil2ctvY4R;#dBTt@)-eR%l6d1JYr#9}uWDiHsg5i@XTAkYB`oK!F`dVZZ{6cI zFn&kke>1tT%U+Gm>==6;Vo^T;o`PvG3Jw);^-_8f;y8K4t^&2SPB9ZeD*SCzU#&un z1DW=j(6;MNQN% z8twyp=i^k=8>}I+2Iy^u8z1(O$sd$rV)6wnyu^GO!5m_}s>~>#UFV5LEKjhnKy6=8 ztlk33_8~GxyhOAZ+kl)8wcNv`-Z`B<)a5+f(^(jA0C_)NF*!Le|G)3f%qBp*15B6+ z?;HO${z^k{jLRhQX#Hs>7FXi##?0tZWwIkOtFb;0t+6R4znm=KT4QGls5AK@a2>P- cD3#KG0Dv|cFDbzer~m)}07*qoM6N<$f+W0=1ONa4 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-birthday.png b/flokk_src/assets/icons/icon-birthday.png new file mode 100644 index 0000000000000000000000000000000000000000..0db5e614f47123bd3212306ccfa22b2b58ce04a1 GIT binary patch literal 1059 zcmV+;1l;?HP)Px&-AP12R9FeMmq|!fQ5eU4npuezWn>mvK?Am^AVV4u#VDGnY!iV&VMRqn8;KxD zl!zh-S`^f(gce26DuOmG8jJ=AqQSI5%O;1k($wttzuxmY@4ox4?}dKwd*__*eCIpE z{m$@`k_K7&`uYl>6C}F_a-Teqfwvx~v!MXey>)K6gR~b~pxM<8PC}=d@ZIHt*DHEw zLZo?6WY<$pg94?tKA}8~v*8^`E}F*VcfwPsg@ZWILt22%21jTXtQ-d7R|K78t9>qz}L=Z%|Be>lcu3bqzj|Zb-P(pawX! zXMf!7=p*TR*bX0DotFOsBo_EI2*G|>={FGcPoNvRz(@<3UtnhbgZy;}2O#-Le*U6# z7>#;6Q5Bgr@L8^n0@=fTXl zjl2d`3A2n-@(M<+hLKiN7c<2&1*%O8(pZBir>+CEL#q57qStCEK(!+t!D2tV2pvX> zdM%^mXMYm;InWh?K9i&#rbRfh3e@GoG6-4f*jWs3faD7t1=EqU5|k%^4jILOY<9)= zmS7FeG&6I6+##O~>%cpR40LsH*zSU|j_wlJ2YX-*#JWT5rp^JQ?ROg_IzW~i3-VEe zFm+0)*UmWyI<`$^EVkStTm=N-U+Z zb6=Q=`K3`?fkwkItbuvZ1Sg>#f@BGm#gGkpgq#nBLgl213j@%%)zbcf%kg@^HZU;b z@`IC+@C+o{YIEai=o(?a0!;8ZpM&zSARpe!Qj8~q-gNgM2M0N%14$1CYFh{+T;p-1 zWl#Y5t}ZGG#{eB=Q2P*OLO1Af*$4580!}xcV&ElA1;x&0;^8r=uh=WF0}BO_Iu$`D zmIj^z_T!?B@_VR+E3g`72X#(;lCuKLUd#0WWWGzSAZsBFw!w4I9}&rKcncMf>F@17wK%K-o%a%5 z7Wx$C7Sr2Jx7sOCkPeOD+#Uo)=MvJ2=vtjVG`)Jf(vb$C=a){wOEAY{GW10{t%UhQ d-&21Ne*sVvN`fO}sRRH3002ovPDHLkV1g+x;Kcv{ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-calendar.png b/flokk_src/assets/icons/icon-calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..fcaeae6a67d8d2e4062f44086af77233280eac09 GIT binary patch literal 564 zcmV-40?Yl0P)Px$?ny*JR9Fe^m%B;>K@^6w-tUTnh=m}cg$4xeENuikEv>~u!QMg}pTSb>Yz2FL z1+kHcXp_bp1dU=6jqCSsX2OzWmjv8Y`@^?$J#%Kx%w{KvM1Wk^%|j8S{(x?Q)!1}< zmZir_2I@1Q_IH?oMm33nY^9k}QvGyP#Uzs?hcFNAAdNvA{K7N*KqHdvC}TGKx@E5AD-{saPbww(gK{oa8O^JftoS{tk-O;vyw5c=(-u!-TxNoFp6eKTO$(w z2{glTl@I?G)zi1yL={fXSaW$$VMV9bjysK z)0HemVH%o!9&}yzuH{R{xh|x3JIF>R`N+T>jQjytN38&Z>hm)I00007Fi*ArYL( z2@Px$nn^@KR9Fe^l|3&7K@^7X^^qWi1c^?F2!%o+3Z+hRE1}R)D-{}v(CR4o0sI9d zYViXkl$3%3g>UP5Wk=TLjy0LRTgaT`$?VRY^S(Q0XS1bJh|q!1ff{unilSlIfYusW z*kv&-!wI~@6;y25b+!f1`334nLHeCA0L28m?S^|$yuvBe7vqi#W_$1iiZ>W5(tI*D zmH8uVd7C3L1C3ci=HNUPSumff{ z5}dOYur>tBQ9Q$eE%(p!i1fe>n1|5rMyd%ge+)06P+o7fJm)!tCcx}Wquz0QQi%I` zNSZGt*S)V1UrZV7b6=J)V;9_kLZ93@GPx$Wl2OqR9FeMmoajKFc3u<7s;e>CRGmM8~6%2sY^FW>n=G#4w2SXI{a36$ASR~ zNgvIuB_!DQEI=B%?q2%7{~#{J-uu)wx!;K&;yB7phr#~|E8m1%f}95bC9GVDL4rmM zw?QjX3G&780N`hkpmFh@NiC5e=N#Nor;gU1FxXsak|1FU{>k`rcot~LC04`zX;exS z!<7=%aD_xOyhTC=uaS_$OC&afuavNL-IrIIqw;vqJy~r{+SEERqTUa5aF;HS(8DJZ zHtkF0i-BQz^@}p~E;BwIexc)a+8G_c(SC}Kbxr}ups ztrKVaFgX(TnG_cZJTnu201x3D8nJ{Fz98{{M<Z%i9y9KKSv4kl0%V_+%q<%kK}XzvfDa5pL~y|Q+*O;>8x_-WVP3tZs-aCfu? zj20%bTUg=;;@C`Neqe5KnK9}IgHc&Jr*Sdr2NO*k$u>1&j9sRNC|ch#TKynia`*mw zp6B=c-rp~GDiS_iSG%tk!?3zwfQzCLl-@nN(N~|E`UMTmhCgl$Dnmw^*C6HAH!Y@Gq;JcxDgLM!6p^S!IvVqR`BVm1G*Up<#Ljpt`0zx6hn|b1l4ILDVB7xUEN^&!BI3# z7-FN`z;-OOa^oY0p|S*#PNyB|PKTlm6BNTB4Vs{7J3`p?N!j2tc3E#LD{xRxYNBe0 ziVRAMd_tKp+&FUjAO%US$jbWmHK7Y5GQ3Jq4ziR|85j!vKU9(`Xx)gyfBgQZupXOK zArXbTGNC0=;fC5up;XqVLEccbn4*l8Z!t2W7>YiksDMV6K>Kk~7L>HUe~SJT7na%Truzn3DGr=MrC4Y_mKCbxI< z)EBq{Ue?lo8{%&Cs&&8jvfZz znG&f3k9D{%O}g^!yZx({_UQ)eFh(78vVmR2SH$J!+?|i4QKB2U^JW>@mwcn|-l5ZeqWF me&Jrf9Xs;V(cG~;))QD?;dOK1RD7lMLkjxC+|~XQvws7$l&{DD literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-darkmode.png b/flokk_src/assets/icons/icon-darkmode.png new file mode 100644 index 0000000000000000000000000000000000000000..87cb8638e5820caed04f2caf56ba5985c30278cb GIT binary patch literal 986 zcmV<0110>4P)Px&lu1NER9FeMmu+Z`VHn4E_F}BXFk@_H#$wTY(UK2Kn$#vAyey*jVX4(h_)64@ ze3{~djG`2>q!1~@C@(EzR-0+b%r>@#c^i9q{Qi&o&e@#joTHuduitas=f3Xey07Qn z{kE8x5ON$R5mv%ccmW@wEW~SJyW_oD(n&17C9nrJLJ~+047#OgJ?LCtT>)J%R#&K) z60N>t2%ZFI;U`G_@Z2pqP7hY25*-md8IGCGWFEs-WA*zCBt)fm0&Cc-U<9Q5Fdvq} z07$E%(z${XycoW!7gPt?roPgxah%uKIZ;V~z%$_qNNtd7JEB~zN^~3SO0e#6TP-zd z3oM6WIOOyBTCrBsOrake@#PoGS4}5ysp+H+TWiYJ*u6r@iHJ%gP+(BtbA0`075vm| z%3AxA{OTi8R06BP2kmeJ#;VIyq+%1tI>-B43FMm~P1wEw0UJzR9yTX{e_T~cAk#!> zX7~pJL~Eq31tvgA0ROnEl)zLIp~oYV=D;K4+r*@e=w6@%?7?Cu+o(Jkl_4r>K+AA3 z>>vrvnTSXUd^3@>9KBSJKf+jUYub?nk`%pgKPlq&} z0S`gC06~Wqe-ZS7)DD^xnw(*a_HnQt)bC9tptE0k39~~*qD>jR1L+H#0*y}4V;aA9 zU9~#`_R#B80^7hU4dF;ec zqaZ)+vfwb-cPY9WH69)N^V~^CLEG#tNQXPHf%X3h8@7lsnZ_9~&)6AQ?HwOLJ81`O2CX)Y@_wiS zcR1q-ps%nxP9fQKM(9DjWzcLoc#0jpqf((sbKNu;!s>n)ktB$d4|dY_QZ5SkT{v>V zW;smxB-pbe;5)%8c~^5}1=wr7F1NcN&htH-1)w3ax<_Fhgta;WXpL0?-A=&K;ekm*D`ku(C$5;fo~nH`Hk8YOakXTCWt0Y8tCgvAO})FqojMHMnU_AM&|+4L7T@73)f%$26#I4E;@~07*qo IM6N<$f|DN14FCWD literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-dashboard.png b/flokk_src/assets/icons/icon-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..2b54de8347ee0e8536f0a2aa4e2d81a707f68456 GIT binary patch literal 557 zcmV+|0@D47P)Px$=Sf6CR9Fe^m%T~@K@flwIs74wqG%Iez{*BTv6F~af~8nU()$>Kc>+7Jv{BGn zEd$~^IO5JX^2DU+0_(Aa=Tq+rWo;5s? zxq`&3m3a6B*UnE>0tZ^)LAN8ERE?u&#+G%OF;2kWHnL@lYt zLaSUZ@7hV)$eT^W@1)5TZx278YW|PJ&o#^)5y%^j6m$jFOlElr1y5KKh(YNC>FT5` zj4sf2Q7Y1rH>!h@geypcJ%A^!26=iB4Recv?&v)I;IiOr>YHKGgf!nghBF?3c#mXe(P`luY5OOvYy}8ar&Yrri zfEIeuRPG&v4KE|39I66?#7=C2R6sn@AJUX_iC4ErhswPMNr2!h#C!y0dpZMl%}`6Q zNmQ@kCd)>U3gAq(r-dVkZ#&5t<>XxjE1?q5aV}WfqAS_HNnrF>vQRysE8sX08n6@4EzhL0|fP6$o`g{Hd-sZZh5sKBC00000NkvXXu0mjf-ID## literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-dropdown-close.png b/flokk_src/assets/icons/icon-dropdown-close.png new file mode 100644 index 0000000000000000000000000000000000000000..68c022e64f3fc6d33a6b8c186029f053fa34ae9c GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}J3U<-Ln1ie zP6^~{G2n5D&fk9hrm)VB_3rD0*K)Hh%`z5MYz&g}zW2IDqG`JN1I|5`jZ-f9UsKLM zQIJ!-bt*$p+`84hEGw!%gtlo1HWaJ!Jz)N|spO_wy(3?P?j4tS9R77xf910kY`Qs1E+l*Y ztzZ9Y(ak^!W6m>Y15E5^vwgfU$+f1f{~Jq>&Px#$4Nv%R9Fe^l|c@KAPhyhhpr~^{zu>Px%en~_@R9FeUmb*_BQ542muro0+qGE$6h$d=nLIG%Rs0cCfk1(3}Dzq`N@lj~h zhQd-R{0A&7D2N()M2yW!hf3qCv2gvJ$^G1u%P`LD-ti>gp2wZ@edpep+1;L=8m!f7 z?F9Eg6KsNcFkFMwR!W5SffW$jcM9WMI}%n9F!9w$`IpOo5KknOY*RrTi+`gw4hFyy zkl7HE?ao9Iq%Wip{5esR_X9t~Px8}RPvRjw4n6_dI>C_0iSvdyqVsi9co<;84KSs9MXl&*?|$b&d=R1EVF3F<=?nFXp(f{FwKU>E=#muh zPu%YPt5}bC7+}#2aK;UAp87j*&DGNFJcu81;`YxbJAMgz&stjXFu)Zzz#}iH*oFdU zf&WQeBQO7+i!An#yauv6TBpzpCc$Ii|MQV{@ScmWK7idVtmu7vWMAw8O>NbN1KlNrhDOI6ze(TpQoA)Yfd q8jTOGUSG%#pMe|TSbZwnGyegrlK(EY#qQq#0000Px%v`IukR9Fecm%VNiK@i972ssEO>JULo5s9=wy1YQ3h{Rh^<^fW{3*-$_Aqv6+ zI33VXMuHXsB|-rSQQ-W3$Bw-|-(AjMc%=XB%M?0Rq9?X;x9V9-N#7wmy8u$jQn z`I>OXcmn#}Zubx4{6ydla0GsUwxq5$8#8Bs@j5sJKS7zC`vguCeGu|8EI82Hw2 zK~A3$UVulSTXx9YT3S;_-JJB*t{NzAgWSP)^_;0nO51_9gV@#e2COs@cW<7WC$WUJ(uf$=j z6(ft5K2EXwc4gVo*#R#TcE%i52>JwZCX6-O3Iu<%K?fD~6H_QZ4FmZJg^CIEJj_8y zg$hy+#3kb)X?5Dsn0q^#p*TF1t z%wz1CfFBm=7kF22%YD30v5c~HjfY<~>6{V`{;{Jc`(%<;l+Sw&=kib=pMQq}j550C zu=l`b2jK!pr%a3ybNj{0e2@JxrwGPME-xyxE*mUS9=HWI6PDw4MIcM{s$$-$JK#ZD zb6>wCzC7roOtJ0XEJr_;!`o@%Gh4O{8QrPx0d0)|;@0iE1-4PrP4KYbmisVhI37w`~?sTU!xu{0yT{oc_uuVac#m5$+?ffubPmr)6>Uf8{QN=U&GjH*tAC9 s2zw>9{&PCb$EQbP_K&u33;TP13E|eYkU*;Y>;M1&07*qoM6N<$f`tlV4FCWD literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-form-addlabel.png b/flokk_src/assets/icons/icon-form-addlabel.png new file mode 100644 index 0000000000000000000000000000000000000000..5053e6430b295a8b0e8c6be768428a6861d6914b GIT binary patch literal 584 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 bHAVV2(ffq>!}TBe00000NkvXXu0mjfds}Dj literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-lightmode.png b/flokk_src/assets/icons/icon-lightmode.png new file mode 100644 index 0000000000000000000000000000000000000000..d5eb4e6e88b1df01c9a5f71b88bfce4df0f421e7 GIT binary patch literal 1151 zcmV-_1c3XAP)Px(IY~r8R9FeEm$_?HQ51(K#>B!Uid$h3!BiS8Qo1l2P{G25REmX#e}JuGCn|zg zK{23$h#*lLtwamKrLa<5VQ`6>!nm)XQOEBa-ksd{GFt|J@bT`w=iKw|yUV#Vxm=Sf z7K>eQ4+^lX$uPM|wK@{G4f>#?g5Lt#d~p}d&D!ZR8G2ww*4A*H&imja3_@$%k$N72 z@)?^0KM(dj8r!nvnlpg&%!Ktkdo!K?Qhx_;;bX?OhWc8tzkbb$(RafzsKGc2^+~V_ zHbP6r=8UN!=#FjK^5kqoTyJS;LE1Ma@YuqAZ)NNl%K*SxDCId6CN>uBG205B{Sd{^uxF*qpcM-!&MlCYSO09 zYG}>Al{S~uceuI7>{L81?pXB__CslQczT=;!v_c|P`C^y5-i&m^q#_QC@nG1b~pfG zKl!drje>ciEb4g(Ghqz#!Nf$T4KNC7H~8f)#~)B{;5wWEPe)3$*+&^;L(14l zg-*xqjS8?3oc8eL_bIP{^g2d?v2}ud)$z!bD!Tc+P`pe$yC#tP$=UUst0yo7+rbNH z1a{$bi)Ssp#AshHt5Pi9<=U?Te3P`?0klJ{Y#${+&>F6S@S|6~I2z>GoQn8nk zgE6fSKuE>zy)j|vNQ_<->IIm?9mEm%3CgcB!xRK z57mB3+px*JJIgCZUTRrr}7DPce`>wja$+0jpXHY4X#5h^SRe}xY=Tx{#U@h z)h@T#zjB$c@aMX}n8(g+;!2x8G=o-WBVg!&K4{C@{!5*}OQ8UFp{v=T{{V!HFI=Ch REL;Ep002ovPDHLkV1mldB~kzY literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-link.png b/flokk_src/assets/icons/icon-link.png new file mode 100644 index 0000000000000000000000000000000000000000..75081c7b78cb5ccebf17fc5d6c6d470266a5302d GIT binary patch literal 816 zcmV-01JC@4P)Px%>PbXFR9FeMmb+^eK@`Sg67vv22v~@=Hbwfu`*ijer}VKh9-G9Wy5fBh{&woL`%;L=)9ZL;>Sj{vf*c4o8WOq5JDc1wQ#;=s zu%`vSleTD5*UN`kPiDJ`$K0K=THpEnPX|Iw@z2im#X2PrGpzoSlv{t@*JAk%An0(O+W z^9f}d3;tLbi#_%S#9MZ|6CvIYHWZD!JZ-oUV6Cz^#l1OURfpm!qy7m$IC8{JnH;(K z%JDCNvsHETe2TvTXUFpa&mqBmd{}X9D%q@;p5CQ+p-J)oXSl4Al#{^SfJ3HE?z*zt z!Z8Z<>FjK*Fwq;JK&Qff5pDKT(z=l7yWQDqoSu|Q@^-l*S{=EyDRn^(g$E6hT-{Wq zlVDs&@;Pw!A|S33faSVl%357Y(Mb^Z?*pxVZxy{DHzR#SYwZ@Dmh(+tmy7@JcQqia z6UfN@NxUI`1Z)MzzP%Tlv2vWV{vcF{A8|PO< u+)f4o9kbg&H|0+-3v_J<-+H#Ls{aoShz;neHirZN0000Px$v`IukR9Fe^mOW0xKoEs(3`jW#)HwnY9TFV{7vKPNAcdMxM52g9M=n5@DhJ>M zv>-|cG-8P4ET2!d-0%a1?jIAJJ$? zpQjeRzB>^h#E6*kbA;FR+-t~_4rBA)ie)bH&JML?9MPNdj+A|k1a$a5vLK$>n6T_MZG_54J1#GLrAL0`= zb`8G(K5DR#GcGMVTXdx{CRWp5nui`i-OP)&U@Eu3TYw9>hzKIUl{|=m|B&Ybo~aRA z>9?TO7SLqlX&168qh>1X*uqNy4Qk2B%SAWA=eYb27-Kxdlhy(#t|b>HFb8;H_l8{u zMV4RZEdbj{o(niu{U0>1i50*}0Qd`4BVl&EnuaPM*C=31;a$UX1srd@;S{JYY$M=~ zhHv<#FL@?REvM5K)Xm1uh1vp}$7|eX3%m&J;$A?%0{sf;kJ14bN7t88V!w9wSOomy wJ9%PY13DbbSNEF98MwtoL`eIf`K*fI4_Lzud^~O?cK`qY07*qoM6N<$f)ZibCjbBd literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-mail.png b/flokk_src/assets/icons/icon-mail.png new file mode 100644 index 0000000000000000000000000000000000000000..baeed99c8faf69f581d3bf153b3a201a642344b5 GIT binary patch literal 713 zcmV;)0yh1LP)Px%gGod|R9Fe^md{I7Q4q(UK7WKD=0ZqAQ(Ux(prx6Jf{Rv)3&}tcrCNk5|9}X0 z(jp;hnIa`_bm1R8ZK=8Ln#Th*M+hE5wflq@nErZu3Ji!9K!YmXMKlj$u9Y6+E6Xwwrf)Q{C z)P6#SYz=WENa+9~`~)sKqC4ci$fB_sc)8UnCtnK|jaKM7xTzZP#63Vh(2*TL;(9Ce z#8=6`mqlZr;SE+x+zH(0=M6dkWW9bhfp3up&`(NLKltWXrza`WZCc}c)^Z3kt3Z)JoX@F;@ zSZLN8&>f1Jhfa?dkp`fs&nX;tn@5f5^U~=xK%DUex)8{#Qf&otA?k*%j#_!AENL^m zT)*8W4qU~1W>MZ`SKOw##`LHL+otb7?-uz*l{mQvh<4GCW-dC$5aU^FdA%8|u8E&K2F z34RHz%ik_oD=gslVC`CAgYyZWwXHdw|iI+7q?|1VOg zcIyJyKBjxOdNL(`mpV@T-Lg6C-0H8BkIVnv{=m<&!;UFGm+M>+WAXjdFV`Mgef=}@ Yg06Q?wVnaNKvyz&y85}Sb4q9e04%~<Px$yh%hsR9Fe!RxvLHK@h%^Q+Th`zLt(xNF-DmiNr5Z`3+j3dyPh;;5R%vDhYo; zLn6^>NQ4AY;3XvI8`-&=J9f^q>)pmClbM~Fo&9cScJ`u3j5JMGKm#2^V*gsiMA`Kn zwl~G@VjAJa8i0*Bj@Q`HCr6H75bqO2a49$dvTO6T7e2o_s92N&zG?}C#R_yi)WQ+@ zz_$rDM{*zI1ncjt{)|N7SG*WLV~U^6^yLHLn4LfnMYzjf2tE#Kn>iKXIq2TZiN!*G zf_y0EQk=o0B^5uCaWt|Ocgl-kmnk?c+j$PZE{I3?DPZ8lw?I2a@m(91DKKtstk8;a zU8w&P*+yzJ{8mqWV7p@RBY>?MA9(^TW$jc&%-qbCqVWIU2bS~mh!!9(nfX5W9*CY! z9=8yrKkGGqrWp%1q(SWi1!so|_Q_gt;T9k!<@?ygzI50l?4|Mq>VJ%YCc9>qbGtzw zn6}uQ)l>uhzgo`Q<^gI?0Rb2lw4P&&HjREl=)8*w^83J1Q4h~7gTG3f(0dijeLx1E z2cU*jc$9}ZmIi<-|IezQ0n}cE@_ncO{z)L4Wpsn!AI5C$`h_8|m;e9(07*qoM6N<$ Ef)GpQR{#J2 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-phone.png b/flokk_src/assets/icons/icon-phone.png new file mode 100644 index 0000000000000000000000000000000000000000..5958b373e025c7fb971ea05680041122662e0586 GIT binary patch literal 890 zcmV-=1BLvFP)Px&G)Y83R9FeMm(7b!aTv$vj%!$WnWkx!G&D$4vypize}I~rB36j9ATKowN|Kc# zg@tJr-iwVi3)u;YWTgpHgasjaZ7__&Fh1Wq=ea%S+;dKI?>+O>=l-7G^LpNX=XY*R z%@oM^_;>?cgYR%3dSUJqw2CiDvy%{&Q4B|*E@;?CmaQC@!WV8%4Lc!gtb&5cejC9ZicX%SS;y-6lP0$pn20 z0*BM$ChenGlXVV?PfJS1uVrd7Seq1BrhSBXA!&p&bV#bbst`5tbI5`X z?jW$;1e5OSx<<08x*hyM^!pHe%bZ`&K|bj+`Mh%UQv^S9316Kqbr0kM+qqmWHx}sG z44lypF!_K|Zk}rgP zt@CNG&`O!Skf3!wGcE(Wnm+@R$0)^*5A;TOXHLf6xH=^^0;j`fus7TYdi1h(V$;1g z(O%GO#n5Zvx;Yu|f<1&579I(xhkf8T7N!N!659qj*abhqMDcCD8uLTuWYnc!?EN7f zXEPiJooQ4)JA)45p_@y60>v{|Vdj2CC}(x3p-pf!fL@)pL{N)z8?6WOaIt6&E0>uT z?|IOC12+E!bkO>hj0EcI)r%4bpu-0<*ZtI|mB~kxO+H3Cww>UcpN__a<^=x$iIPr0 zODMoi@aZ7*#d{cvFByddKH0tK>Ll)rh0+ArQ?A5{J`~B*QoEr7PIOz-n+Hd}+b0!{ zs*E3U*MWZt>48hW=h4~(>mjt|G=|<8jftBRr=9I8c+pZ@6BnOqBk7o{@)W%(DFI(A zoQ3GB(Mx7YQeLW^#2GLICNEIhEeU-gY=v8(OYB8wt^a=2ZS53jgAwqeclZ}?aJshC zekgBav9pRBDYgP$Lz?JIMt?H1-OufSC_EbufNqH%&S4mYKIn$L#bz=72fi9m5xN&$ QV*mgE07*qoM6N<$f=*PF`~Uy| literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-previous.png b/flokk_src/assets/icons/icon-previous.png new file mode 100644 index 0000000000000000000000000000000000000000..cf4872288ac6d83af6b899d4b7181183cdc6c23f GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}O`a}}ArYK! z!yUN}DDX_)o6G-sS9p2o8P{!98{SGRQD8l~r1#~)pe84mtZ2s%W^WX(Us2x9u{3Ay z`NCVO)^oL93;%q|l7DzYO;yRMJn6LWQ`#0kY-5tydN=XacYg6H9uxf2<$5=AXfd)* uc*zMSJMA?lem1QRT$E&Q%Ac%vGT+m2x`5h8o*bZS7(8A5T-G@yGywp=T1qeg literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-refresh.png b/flokk_src/assets/icons/icon-refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..16fb326f447f109ad0bfdf16b08a891bb622eb4f GIT binary patch literal 849 zcmV-X1FrmuP)Px&3rR#lR9FeUm&t2XK@f*CQH126C>}(Of&o`lMDS!#QDamPMbLwK3NG;w!9PGz z1Q#L_bJ0T}ipxPFL9?8SrL*>rz>C!T!6QbPd?yigE|;nMC!sJN&{C`T1chZ>j#p**CsFO^F5%1GWinuE}UtxL8XA!s{%29s|nXJK(paF&6X zWzY;?!Q?y2HignYb;jorkn(UfpL|v9!`OY6<7aw5T02Y&G?f=($+@;M%ZC|tIMULw(QQ7X?8|Z zV(JXMrz6f79dfk<`G!-M__TOe1`)mJW4tq_q8v~U_aR&Knk#&2I`@Kz)!s2m3c0J{ zDD=5H&wOeOQ@}RIUGMl03UyMj3ikW-boPKrgLfpQP`TYz*D6d)s;<@1IX%;L200qv zm?NoH6PW6X>0D1lSm_y{vSimU1HI>q%TGzd+w&^ty^ zA#W9Y0m&<$noc={S1<)=LX9xl2bQRis|`#VeL5`qx5_8F5AN{6F%@#?c4W7$=jgT% zG6%yZ454T>bcZwPj9E7`j3o0Qylri@e75QAU@*Hb3-93~On_#HB^1{6UYl*aOK^t& zoc2gEf-Zqccs0|kb(4*IG2O-3aBtnDpL^TF*aMPxps%4T>ICuteR*Wo1v^e#c|lZg%+( b+M?tSJ&Sd*2-Sh200000NkvXXu0mjfCIf+_ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-relationship.png b/flokk_src/assets/icons/icon-relationship.png new file mode 100644 index 0000000000000000000000000000000000000000..f696b02eda96de649da60e38e6bc2ad0d8055d0d GIT binary patch literal 877 zcmV-z1CsoSP)Px&CrLy>R9Fe^mP<%fQ5eT(k~Ax`r@d$+WgtauqB2@W5CpvzJ)odmghUZk6m69Z z1)(-=S{M|Di@-p4Z7K>ZFnhPEMMQ>aRH&IvzyJ07hSSVkox)vy@SE>{zQ;M2d+xb+ z5{XHhyaO?JAeBlL!8y1CJ%+SmMKNs?6J~)5cnxu;+=_`=En^lYE`SHY%5Txl#=9V{ znkgCW(UACTsDhPHkgFy(M#FA!)57URq~V$;@w>u_7;l2EATK!pO)xX8jnx#^f!pHD zLJ~_niLdiKdO!RMa+&f4fnu+Z^%UK-&c3)J^8HrRq8juf_-wIZ{AJh+HSieRn&Re6 z$Em#N)%dL2rdW`#w+pBaVu#a{A&3{l6U%=JbJFSk4HC}-y))1*!+n2d!L{Z`@U31b zpG+nPaBUWw&xI^C9l2Z=&`ze`it1@t?G2_c*jQWC;km#M1={7Hi@ZDw9S65TgkC^G z+U=N6M&PIi@l_soPwckkW1lOpjXcGA7wB2Y^;9dSJCi=&=v6`OUG#LH5WO|X`Br#( zY;VmS`1eLTeoL+{;#a}#6`~PtfKG)>zA{(ugv6M90dztx)8gqZ3l~g=gHY2@%6JXT zgE^Md9`-^vPq#m)mWqyCA%j||2Jd-G)~?$24kYL9I98_0?Mj zCE(u*WR`s(axgtP1D$EN)9FN>g2ofxjBivMemm%8b{;N48|VTdG^~9IYVxHeL%gN21Enp9X!5barK5 zN8LaD`oiP?;YcK!SwZg-*=Ak9)JP^0fA__*CUe8)b^d+6KPzm+3HXV;Z^PwD8V=at z4arW^f905C9Ss%Mq+_Q41+hl`Mv~>AqdjT=`5pKTEFL6Ofy@5s00000NkvXXu0mjf DoEM@u literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-save.png b/flokk_src/assets/icons/icon-save.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed5b10404f2ac94ee89ebdd9e83f11170386612 GIT binary patch literal 387 zcmV-}0et?6P)Px$JxN4CR9FdP_>T&N8K3|td;?XAD!ek7`7oLZ#-J133G_xevR(9c0LbnRpd%_^ zj$nZ?2+-a@`I7|Hpi7$r1-3#3p8@H&K&%Vpw*wu)2n6lKI^ZKvF~|U-0nmbvNQyrL z*-k*b7l`$s;%y*D5bFS_9_$p*peUe>3{-X<(6M*WRRYD{0M)@9p%0aBrHTW9hGhe> z71YohKpMjVAURMd0v+KGWIh1#L4aC`@IS;jqR21Es;K1vWHU)(k2+w$Lx9*^04lxS z;fY*LB)Mv!+GHSK2uTbllUN7X;4}eK!VFUgx5%K5f@+|<`Ek3QBpKvl8C4@NzK{XD zJ%Fl;dOVPx%#7RU!R9Fe^m%D2eQ542^f@q@RD-aZfL{o@@l1iJ{7%YS&;6IT@EYetrifAJQ z{{Ras(aJ{=EEGY6sA#Kbr66b`M$}4OU*qqKdw0GWW@l$NLn=S`m~-xV+_U$+QLPQ) zI3C1h0v>@o;5N7hzK8GN12_wxMo|>=tp;?w3toq1@f^p=W%o{!2%d$%U^lo+(3Y}= zMD9r7I`k{>sJA08Kn?R8oQHL&sn`oOJtNTZ8fAhhdEt$PGM(#}--3>LlqtBXC>Z-F zd}t*x#(IA-yV1YI-a0t!4?Cj-O%S;owpCnNlV;G=s1z%mTtoP zrbR3um;UAHO#d|EZ&}#x2oH*2D+X6Oo}hVB1CF!Nl5~M20(bI6zv$T=5 z+ONU^sBNfD9i0`Sp(c6*JO=MTO+^-eXm|!^;Lb2Tjo5062ubNcb3P15;bAxe`-462 zi@n++@;YhP_P>ZQLM=u@|F%{RnIg2E$5yWQMo*0*W<%$H0bSu`&WWm{RsaA107*qo IM6N<$f+6K;RR910 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-setting.png b/flokk_src/assets/icons/icon-setting.png new file mode 100644 index 0000000000000000000000000000000000000000..bc6b05fe72bae6583f250fc33e8b737ed842cf75 GIT binary patch literal 1260 zcmVPx(rb$FWR9FeUmpzPCMHGPFTLG6CaAT~jUVzxiUqVB&KthLTVl1Q)5*iZArJ#et zhDHM?Sil27Wii8VFsQEG};W%1E7tz_Ob64xCl!7Bv34aqi`D(2Vd_S zQaZ5@U>aVIw;oq&lWg};R!dH~9?D5L(Ph~O4=dp;D1SjUcsBSSD*A-KL2;~lhS6ZO zN6@%*bps|ro8NjfxLOzBQo_1z>LO$Ev}tn{^{F_9*-;l7b#CM;e!o4X1<$7Dr_hIS z(nq1qD~-N>4t*-0L!M;*4&83|5sJms@jm76;e>V_o`p@Y0_Ncg%z@H_H&gi$j!RS?tfYI?x!vGWm z!vHZ*@?k^048q-&rzL){k94G33qlVoPt26L4l5VK4j)%6VvRL{97xROv{WKb3Xx&7Gh&Zd&6uA~!q7a?HHa z)kJCVCZo7HZ7XK)0N;U*6(?a@o=#YgH+Q1i<_w@d4YA9f48NB7EWp5kjJNU}_kLH2 z>4SbJ4cno zjB@vlSUo3imRy3!bE;Xw$I^orZxWO6&xB%NehH>%q|#OD%|9lWX;a)wwDo!yLA^kI z{F}$%QDWSM<8Thlj_PeGKZHf_ZEWA3I6`Tgx_$bgoB(ZpgM$z$9>YAnq*Lu?%(J_f z%dhy2|4CR^)Ol~r!gI|>R-{Vah?)wY*(~lg+OP3!CJbP8L+8fgzvX_}-r}QFcOC=V W|1P)SO04Su0000Px$*-1n}R9Fe^m%mEGP!z@+6-5*UMX^o}PA*dL0UU&`;^62eE9L$reykx!bBD>=lY z@r}OO9KB{s+w;76GnnR&P~ZZ*%bbfeu(gEKQUUH@UqfPA#eU6@ zVz4^f0h!LsGh_ZO{#=BFQQ(w7K;p>2xWixWlQ5Fb2?Qh#!09Ti2kceJnZJa6Vo3&# zRdRdiWKvB+yh(f`$gQy6Fsm--q$PC+C~oS8g7#ycw_qlC3MWhEBLKCI?xGVJ8LU&k zt$Nx$-`K*`BTxgZO)zTctHKhy)*GOLVmc=vKxjO;Fc4HFP6;q~FnE~+tiVeq&{8}5 zcjf}BB+qN8+6S6`kd@oM#b3QvY_(!3rn5W1tSY)MYbfBe*ld^o=Y%@1ET-{002ovPDHLkV1n?z^Kt+H literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-social-fork.png b/flokk_src/assets/icons/icon-social-fork.png new file mode 100644 index 0000000000000000000000000000000000000000..e27041fe9cc11850994ada5978dd017a9499427e GIT binary patch literal 644 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 Mp00i_>zopr0FH8^umAu6 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-twitter-active.png b/flokk_src/assets/icons/icon-twitter-active.png new file mode 100644 index 0000000000000000000000000000000000000000..919d7911c2458498a01e4ae3a597ee7d82aa6eb6 GIT binary patch literal 555 zcmV+`0@VG9P)Px$$!3S1d3tBoT6dxcu_#cR)Ac(FGItvbt3c85} zU0g*3L2(tdE`m5H=pSQ@|GoqM zVs1btlc}U%9J(P5Nx$EJ&6o{5WoVySK{~+LFXePP{$99*-?5HR0}+^mNnL%8hN%nQ zVI(IZoZySWD@gHVB+eK^5D;4Z$QUM!0=0;7TQf;KCx+i{cqF+72heKU6T=jkV~3Nl zt_Z!!Y|L}~K)y%UCr85+*ECXBun3)IGv~t^uTFYFjF@ZHvG^;%d`w`>59sABH9tuLcNf8Bdc3#3GEIT zZ?A;K?M>J(sGJ*L1zSaW0MxT2?Y6uwidtYAQs5xC&+s!V0{(Si!2;xX=WXt9SlF0gKqitNtH&4;pnq0zSY=Y+$ngPx&gh@m}R9FesmrY0&Q5460e&knVA*D%+3MvePzQ8_&7D0=kA`HV;wW+8Uf#5P| zA+(63+J%LylA={bMUYafNTHIbHW`Ib5foY(eZ7AFY0h)r+?nycXPXZE-Z}T2bI;tF zd*{x5MMeLMq|@nQXn~WkRpUlC!Z^Hu9=jLpVzZ~xQzlX@OqiXk5Z4kHor@`+0>|pVUTpW837Lo zn)3mu54fjoQm+A?!NJ&K1S>#~{1%4%?jyoXwyGcQ#m`wzJ}caoOa| zQa^YJA3*D8Iq0U^VVR#-hJ64Ig==_i0-E<~3u0Hn8(3?;uqIXxParIM6+gjks8K(3 zEqsG_ka;2s%mHW9z}Ey46>1M(+%J06%ZUE@fqMvcT3_r-e(E~&X#m<@zd&=wi9vfV z{05Wj7#l)4mn|5hy^YNJkh2st-C0kdABUvD5>4Z~=tZ)Bp3~HvABG3nA*WSowPH10 zdf{F;0p9}9q8WigWGq}$Z3^v!&ZtLM7op2HHyV zkt>-CBp5aYL*#sfxNpE!V)GK}ghQ&;5q7H09jt(DFuCv0r~&Up6V=J@xR{*t@CuUT zC&BFrb!;Qr=;Y8*dv)Y{>&K3uwT;G!w%??SYsYoBV*d_T5*&duHZttha0>3gdq|Q2 zf=$*pPLs0(_BwH#!OwB#p4+;A~=P^sJf&c&j07*qoM6N<$f)A_4sQ>@~ literal 0 HcmV?d00001 diff --git a/flokk_src/assets/icons/icon-user.png b/flokk_src/assets/icons/icon-user.png new file mode 100644 index 0000000000000000000000000000000000000000..af608c51e9d594b09cd48d94af023eca286f2e57 GIT binary patch literal 796 zcmV+%1LOROP)Px%)=5M`R9Fe^m%D3JK@`TbQ8Xl?h{Q*u_`;-6Fbbj|h=_{Tf(WTZPz$lK5e3CR z!6KDl;RAeNW2qQB6KoWTMnP;6j4#xviI`;leaoD1?t1smy_-$vfsZ*e=R4obJ@?M+ zY*SM~E0@b#K@S)NzrYvJ2hM@^f^zxkh_`~PU<%Z-Zv>9zSIx;pv<>uE&8mf{3L{nH z>R!qzosWj#EjP(;{4-#&W#g{}cY(LV7N1dz;%=w<6ThpLAhENKJA~g_i<^5Kk$X<` zR8}Iq5_shJ-C6u-454PArf(*I88{w%Kt%^qQf_7-GJ&?@9Cb+M>FwW?p703xlK|90_{UMMRb82A$xaQ_!A@*dnk4oCdvM5_r2w zXRh%REdf3GfMaXo^Pnw3EYKl$9q<=gy5-BM5(M;T!%XGfluE2)5Ut~2!o+F!CS(}U znLZu}D%+L>p#dE<^)Z_DCL|d>VG-IZiC}{|=(d1iH_viO+l6GCo9Djs8|HE*j3f5I z30CH`1?Ye=dt%Nkw0%xf2ikN6mWF_Cvm?QujmGYm(yq*D6|e<-q*QtC{`D^Iy-Te8 amH!J2-H-Ke*}RJY0000Ypjf-^b8J7hEvr_D}QpP)T=kt zE3W+Rl$4w*^q4_TWo}$gPfyGbg8%}Jr z+g%QZ_9cZH@tmG9tqXoe1nJo+s!w?6z*_i2WTKM!hrkArnEHk{Y$|qU&tg|Rs8on; z_GO%y#OqM1ld#p};MZP{vm)Bew|?@by>D}iU>;(z3EgK y>ph2YjX`S9f-1>lk{ne5E{+!+e$-sJ!O74wPjg->50^dA^9-J@elF{r5}E)~u5nfX literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/Bear.png b/flokk_src/assets/images/avatars/Bear.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd16a6d29028a4ddbb99d1862c47fccbd0370de GIT binary patch literal 17735 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/Fox.png b/flokk_src/assets/images/avatars/Fox.png new file mode 100644 index 0000000000000000000000000000000000000000..a844f7224dcfa5be04214a422f9e2ac9bc2b7d1b GIT binary patch literal 17530 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

)Q$C4w_XCT9izK)1v6FRq;}==uUzR5S4~N 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/Tiger.png b/flokk_src/assets/images/avatars/Tiger.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfe8a61bcf72aa65163470b32504a2420d7a255 GIT binary patch literal 19355 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_bg1.png b/flokk_src/assets/images/avatars/avatar_bg1.png new file mode 100644 index 0000000000000000000000000000000000000000..eff8720553423fea3db8dd4fe8413ac3d409df9d GIT binary patch literal 2348 zcmeHGJ#W)M7`_IIs;XU>LZ_3v03x<8A5LP`tyYd5AI`IQg84(L`PUDn;Adw7NxaHnEz0dPL_rA})-rIe;y1cdw09dW= zs5Jl*EKGovp|C8~QWZ zBo1#xIeh4N3=P1>R_GaK2UB>2TehokU*BJF(6$urAg7DESH^97XW--g!EW6gbj+f~ zZEeDhP-X-UrUne1V>ggPg&Xq9ERL=P4h~ajN8xTnHS|4LCO(EaUP_rLTY&i@kEE=a zk)FV`h>C((5Kty1B3YE=Tpo@V$Ex{OQ?99%Q7v{-xHhGpEC{_`kMCu8;$?D^yUeUH>P!iQJYx9gwXH=#Ea3B z;zV8ld#dA%vjbYgw|f6b9Mt^YZn1@l*vJcx$11DXx1VFH;u8lB-z?jcwd5x9jj+~aEz(4+z{CjA zWPh7cc!&;k&bF3(XZd3mw&;q%Kk z>h@WsrGV@2_dybXd*E~d9D=FB`NEm#S;Wr{PtMS~VaKQMd_1stpOR@tIIB8e3nWkP s&e;PqI`F@R=4~PN1!kP#Kf}*6i4|})SgdT)A1%OERohkHZ6Ch+1@~d4mH+?% literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_bg2.png b/flokk_src/assets/images/avatars/avatar_bg2.png new file mode 100644 index 0000000000000000000000000000000000000000..38c95abbb6ad03d297feb7f753e9b6e3098b6332 GIT binary patch literal 2347 zcmeHGzi-n(6uuS}m8$&%+JTyIdM&MGVk(#N(wXcoU+Gp%5aSIb0 zLgG(AAZ98?BnG-NFd_keLnYW)c~0Y$fgq6#S-9oio!H6C3sfn2hgwRxV z)vO^j3gIXkPq#-ir8lrm^Kyf4upQpABZ>@{ZBtzJ?Oj@6) zbC@sMX^xoqA)pajT24aS*`pk9(_Jsnh41e_2-tIVVY6V#R#>7fToBJ?3?_}8$P2m00-Q41+w6er0w_Iuf**EigSgWsXqc4Pp+rPE zeNvWaS$|LU{cd*5YxG?2ABp4oVMwJKjoCruz~FY~(o&&Tim1(5RA+2I>*9KoaTYgO zh!v28uWWjO%Ubc(Ho&s9Y7lcfaA?)k1)vZ;&($gw!yqL^Rm)|Qkg~CoUnv=6QI%yy zA$g^eVNK>7_%z@d);-5A^u(rK@I$C<(#U&A-AcrK+_12Q_$=AWUy|om2VkHnG zrIY<_(%BW*Ck?y4g+tf*GyuCt;Onig=oq1~7gf`!C*Mv#lMy73pS&f;yYl6&A18N& zSNC3DpG7|(UqX}ctFyIXT8UAH@k>zTF}RJ-oPKPkuBrPw{xNq-2aM*J-ZdM z`lKw;vi_dx`-AM5)ySFNKN83F!;lCy64Qgofx+!Arlmr)91)w*s7~o#*2T>>Wi)Qn z5a&S>zOn5EF73uQdjQK)D?!Zcz#$b~dBX{pQQ;TP9MLON+;&ko$tr@ zxR(!Jsn^htCzsJId@FQ}kciF|ju#H1M-e|de0GG^^*Vn3&SwM5_H#0g2#2cUwZQD1 u$uWCiLP@yNHjwhZn<}-_kHiX_r80vTf4iwxVnfCTCVQs zb%bUioJ9-C_GGpE2DTMuG}#_)v7QwYRCMSe!Bx*{lRB}SlSdy(0in5!+i0?;d0(}u z$6HAbAA13y5h`rQfn|3I!-u5p`WpBB>;s2gN8|Q4OwkO=q~q?KhGg%w*04{zw&HNx zTeuLbK;RK(;n+L!BQ@5z0j~;iaxHLpkixnecP^@F?&2~H3Etr4tSznQ@utE{^18St z-^MvnQUozCNNZV9Qbk$a*u=xdLAB6nsdc?FtOX~H>o69mg3#;r_}&^%!?qwP3UK6v zTrLY4+33V)R-E;tOv<2>$PV3rxzxuAqjgA+nZ|+A^Cx)0h}MsWZGwggu@wjsFD6e) z6HW8)sh&5=j#!;s==~#c)Hn%pQd;-5LN)Q?2?DvwWLWb&UfG-gO;SES2&(rDDj2VMvlu%;$|_MK| z{x<3K3ha}FBj3VdcvL<_1kA@28j#(cT(|vaqHoa{ypyX zgUs1=^z-Rev;^M@^$`-$rNZgLLG&czCxoeVCjBIrU~Itb-ET-Zrs?!R7vd6NI0s}NXw`y zs_R-EfLR*Og1LBmvQ&Oaw_8MSl1d3SY9)Cmy0IsB+Mw2v+ zhl+(=){Jx5$n_~2fWlhjn^p%AxPx{bPi20*ea}G0R++7w!5e-VwVn0D0Bs)D8rEUQ zl5J+~J}g8EC2$cjVdU<4p%SS~pI4!Ae9bYipF%n+b1tfBY``)O5X`Ys#u8TYa8+gn zX@wW1Wtim!nd9@EAZB<$;Uy)v3I~g!)dIVv)V0c>7Cosbk@1kkrwI-oFxujRPNXbrj-mV9~*~(s3zYDF?_TIA~zJmvnKXjR_9h z*oRpv3EtjvJRA4IJAHs*C{-^cre~q5rZSX*bsSp}#MO!{NxG!#x*+Jqd`Z-`ip1-p zF6Z*4a)Q;c)pe0a60CiJt&GIRUT}R{Swn%dkL*f-UD$uK;*8c(9?3Vr+M~5-Be5J6 z!^M;RW75eLwND%leM=8R=Od5WJ)pjR@#gh208*z_t=NdZeETHK0DkVnnNa+B^EmbH z>+y+JI<4%h;QOx|U=e_8;AjSHgR#Qt!l~#<#7_=ioS=36j*s8@WMIiYCews)T6MY> wSUkEqWe-f~!2cGSwuR^ym~e*w3_lZRuY>Kosn7RL9xVg9s(MX(RoZ^~8-*F9UjP6A literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_bg6.png b/flokk_src/assets/images/avatars/avatar_bg6.png new file mode 100644 index 0000000000000000000000000000000000000000..3ea02baf686f346c5829f2e537954b278a62dde7 GIT binary patch literal 2347 zcmeHGF>ljA6uuS}m8xZL7f#Ls60v{%=u*aQwRzjTtJ=&H ztt3Z`y#UY%t**s^W$#mtcj%t$Yr^+;?*;5Sny|fW%4Sfd9e4dCq+2JAmVL5sD~_;s z3$Mm15O|bZIQ9Z&EMUqPr$!BGv%0+c~1rL@0)k0@iZR*CL7MwJp!+D@eQn%X`yLpj?dlFF;;K)h2 zToy92(Xr31IO|85ltHJF9l8N`nU51jYlj_iO#r2*Pw;{vtsf2A1Pzm7E0BmNCr?Tf zP4nNWo;S>nc$1##{VQ?QIu5ARq!Bv`Z5Z5cCMgxD)sR}8g)PPo(k^ax7-vz31vm$i z@bzuicUU*N(Fd5OTK6Mv`8KWVngA4{>pChak)l!3%f(u)Mo6u!7{o9L$;*|BQP2x3 zDOP9pkw<-=Vx2Q=Wh6H7f)_w#ordls>KGyOaR1G!J6cO=B;Nq*jMk!z#7ZDWN+$cq zq|+;~PZAD&3x}cesSkD!!Pmy~uLlUtyr}EtR{Z(fM>2)v+1^`H{#7YF_|e-CUf#>R zx`uu}xq{~5TcI98GCEf{SvZIuNBsEk`7v78@A&yUpAIbD&&f0<9I8&%0`s@0C+vYS o9e81(Nm~fMz?d`qZ}_LhsmthoVTOO%IJ}Br)oTs?P37U!-)(!N0RR91 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_bg7.png b/flokk_src/assets/images/avatars/avatar_bg7.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c4eca2da7274d3a5624dc5d2c70b4d870d0b1f GIT binary patch literal 2347 zcmeHGzi-n(6uuS}m8$&%+J(a%0EyVXr1@bhrX;aTBXFtGNX>+B?Q3JT_8I$1+<=7C z4T*(+00}XJ5Gw;^_`kqu(9%-#wi1-L^EXJmV0-4-}k^mtW>lWR%9y%fHy3CE&Z<~pvikm9^p$k=45go}zu z3QKaXa1Cc=qDXQ{BDsuARJow$i@3i8s1`cgYC~V?*MgHKv^ft{N$PYuVkalEa7QAF z0vuT>o6SH*COYuB6=(ctF=fzcWQT6RUFPG2(b{7BToXX)@e{mYKf z%E^<`MAJMy)$<0~5pU2Fy?-T+ng;=u8Z=`2p$&uEUQ9{_YAvJ|XJM1Ey|jz#ZN^#D zW&zHEBz$Gl^&QrUuJ!(d^rB+aluE%c3_^@bHJ>Y1bVDvF zE7j^!k)&9i+4~;#d5U#Tu+^d1#0y>km311r52&*eG7tCOth&Rsl!o&4vCeQU%22EX zVx(lUe@r^P0{bN4z_)N1IG_4p_Yi#Dow;;~(A4v~UTMZ(zJDSUNS;1=Ln_}sl<)pL zx+T20^YZOQ^y|?DGz;Gf9U&y6Glk=YgXmGjj}D(5p>@5EpS|Ub?M vdt-9U9vIPq|1C6b3&9r{afbg4|2#i&9$kJqWk1%ReMPY9#+v@RdhhTzrAMR) literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_bg8.png b/flokk_src/assets/images/avatars/avatar_bg8.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f3b47e9cf0985f61f27a033974529639017e2c GIT binary patch literal 2347 zcmeHGzi-n(6uuS}l`0)zYZp%L0uu4B{Agmulwdn;1TIw?DVY$ieQm7PK4V{r8<^M_ zVBilxLd+n<2m@XD1CS7Z0|*2IE6-`1GBijuLl$nicc=G#@4NTDd$h5>IzP8KhY*^t zujvhhrXie0v&nXUQF{s70yEldlWw!F6%tf+=oZ0s&)OjkVmSwQKadJSXO`S%o3+iG zicLM9xM*3h0eCp&})NQa8kJrV}T+F-ENof=6D+J2vWHW z9I_zGS;)vn2R^gntRF3<3_6MI&<&VNeVi~_TXdhP94I|{f)@;F{b z@}xA;H2ZBo}&4k&onbriXz7xOh;DjJ3%Nk+9)F3B~ml-CSd zF6h--iq)yT?-8G+SmzikkHjWk@B*l;lhD0KoLWdd+<&v;j?|*nM)D1?&S)*-NUQ*2 zgk-XROgg;+`y}Dew{RFbpZH++5PbdQ$Kw`4GtcUJwHbf@@==;X;_TsTsoGvWfBXC4 z4et4^7jG`2Uk}cq416neh>(a*6;2ioqQ?-rr(edp7GrTZzF#)L!F$yy+D vZF<5U7}J6OEi`Eh!50{FhW`xzv@mrRT?l60R-XR+ieS}^b^X=#I}d*Y(KV!} literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_fg0.png b/flokk_src/assets/images/avatars/avatar_fg0.png new file mode 100644 index 0000000000000000000000000000000000000000..81582862608afb0b87302568263cf9f33427c349 GIT binary patch literal 10179 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 MU$Uw`>vi-00Gz$;RR910 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_fg1.png b/flokk_src/assets/images/avatars/avatar_fg1.png new file mode 100644 index 0000000000000000000000000000000000000000..fc3e234a3939ef8d7bd6a6bc1a0b8bca29c5616e GIT binary patch literal 10148 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 Ob39%BT-G@yGywnzxS^r| literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/avatars/avatar_fg4.png b/flokk_src/assets/images/avatars/avatar_fg4.png new file mode 100644 index 0000000000000000000000000000000000000000..021eeb2920f6a4bfee6ebc114d4b525bb55fbfb1 GIT binary patch literal 20358 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 JS?83{1OVNX)wJ2#HFSjs+D$5j)i=y#z(N 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-hummingbird.png b/flokk_src/assets/images/birds/bird-hummingbird.png new file mode 100644 index 0000000000000000000000000000000000000000..d19ca59c50cb03f73e6746c156ce8084f2361536 GIT binary patch literal 2552 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 UM|QWF*Z=?k07*qoM6N<$f(d=OZ2$lO literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-parrot.png b/flokk_src/assets/images/birds/bird-parrot.png new file mode 100644 index 0000000000000000000000000000000000000000..96577d49a744751ced010931bfdb7ddf0cb90762 GIT binary patch literal 3232 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-pelican.png b/flokk_src/assets/images/birds/bird-pelican.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea2299d64daa30b1be3068f7e406e7c9221e06f GIT binary patch literal 2822 zcmbuB`9Bkm1ID+6k12B03N>Wz9OcZMxrU+1Img^L%Qe@;T$@C0K177vxvvrXq!>+K zWk}A=6**FlTz&g||Ap@l&-1*VU*50R^V>r-H#N8j;sXHyfQxWLUF4q(|5typ{Bcz` zrH_At4P$5<3;$@!O7cXK-%B>gXgTGOzeroDx=ZunUZ-#qS%!)q$^k5BBTW=(B`U0v_rR#rxvi@W} zR_8E-*McP^<=J_jqD$QLDbxPZpHD{7+=H*x`baHKa|X@agV^o4WyZl))b?a`Qc_Z^ zwye)eZa_YI*cmU8%vLENnjiFkl_EByqGH;L+&L{az`}*_~ z1nO$u%-sehR-qewIF4_fY%7Botu>>7HP+VsD77=A-JMo*on4rr!I(|tr*}t<+xz}i zj=dmz9PZ8bhoZZxCqLf){Uo7a29mpYnZE;1S z+hwYhN|olJtjf<{o|yXHi^bvV-f~OJQkZE5t6pT*aB*a0(HY5LOk@veXf-x~auy$K zP{i&T;!;GIKTSLnQ_N(s22K$;mIcFJ@pFjUT#Ia5krB;znakQ3&qupI4dFGAGif~O zsZqpIZZB};qdzx|*ha>&%-V{(6 zX||``*a|v04Q?vfs2iLFs-h|rbo`F0Xe(aacMBJ-4sK!Q)>1nikjPAfyqa1W6s$w$ zZ&;dv;hZR2Kq>r#A#1NTNHD{Vs4(#NhA`vI`$%2Md#PIyqzt>+z1V0+AfZb^Q*}d6YY!K)Z}qu zHG)EcFV`s~Cmjk)8yUV6kD`~4Uo+YDB4CyBQ>lvGf^>l5$8qlfuEbQ<=%o@fX@lK*tsc@(l!+mnQmfA!O+oQ*J zY_DAI{B&TaN9&G6{^A0Kx;D2Gmwd`MMjfkWvGlp)?d~|^E)g1j|cDc3$48=o?HpOx$O2Tkq+Xr>u1cqdJJ1)RY1B&m8DF+q|GR`6& z-Rr&Hqg;|>tYC?6;u10VGUz%oR79F$S(R;{{SpxKonG~6+{fa%*VacJRXq#EP^c?+ z*Y-vlmQ#J_wO20DW*RuAYLOT1|G6Uy+>~%nD`&ymwu4w6UvYr?68}QIDMb_!sek3Y z&Ck<42rjz6t8Z(&g$RiiC09$p2WmW1iwuPKk4BQKTfpuw!S4fWUPZmchfI(ERqQHg z5h)+U@p>PxTY(k1O1L~K(Pp#mqnu%q2O@VB5C@C`XT>}XPH$PTkoz49p9JRy-i&Za ziz3@0gr${K2o=~=-*IzLcIu=%GLvB^H|%icwNxz|-8D^5NHe`{iEF*;`6y7GxPCW) z+0{HTNRbUosE7y{XtRc&qlLD{S=%dxEP0y6CLZ|?e7bJDLp2rq?)n`F_2j)^)@gjH zP~SdhK_Q372+|8=-s0sg3Z2UnBVGN zSl>L3!S+888F{iDUosS9pFVhTww`LKGl-EV3;aNwl$1`H_km$B>#sKxH~-1=kZ05u zpwnjjVx-svx6Wd!a2p6>a7c-$v4LwZ1xdfC;sE5I_uU_c~w0-xXd+xHf6?%TKu4GEX8br9@=?daJIv0`?Xv19exTR4^_G9 zL}H$7vLESnseHg#SBrbjZoF~MA||+41Baq|1e<7t$$BueGJHF-gV|H^f=8GoiMWpC zrHTerL*;z$e)|02fTs9`heH2?-VRY@7OiS?x+OVb-n E3(DVT@&Et; literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-penguin.png b/flokk_src/assets/images/birds/bird-penguin.png new file mode 100644 index 0000000000000000000000000000000000000000..513e196f40ed2a07311460ca88c27ba726a898dd GIT binary patch literal 2373 zcmV-L3A*-)P)l%YDjP2W@kCk_)sfowRI1!90Qy zLY*u+RORL6P`zrE`m?L+G<2Qr((<);Fvg8mmyIbzFsqGDTwtrWy83z?Pbm1v(WChD zwl?*3+o3ib2n4hoyO!lSv3g@EmsEd)R?DqkRjmqrwytjSJ-^?t%0BqPK`r~}mV)&O zZe|g^yPKQv`v>2j_Wsi7QdPXhC~go%Fw0IBleTSHGzvXEJ=5O5*mF_+8C@3DvKwLA zVJ3nRLJh2X%@=xlAR3)6acOj^`m^W4bonz-MTc_Ehf($1&Z2rITXb18V;j8xt^K*| zt3`w=n#nK;AvDNx+*?;)4^7QYkV>VXH`xo-tE%CLt}fW}(iRvR8q%~6e;&HtyzRk# zR+sg&qhnWox^Q}2Qr5GV z@4>sD{RN+XJDTYuFO81l1ssy5?j|A>f@ptU1}+4;#MxM$fMIV2qp1D5G6CHiCm*4{Tex z0=BKJoKdReKO8BTMC{(0C#6^oI7%>y+5_v>s@1VX8;%iNSyBW?>Nd)#%@IcolcZez za4%TOH3rv$rCj51E0}bs-dnd;$~6eLf_GIv4$Di5I4Fs;;ZiWEnzyd3 z$YVEuhp(>Rf{}FEl;aZVWNX~f2z`Bh@Wr7o;KYgJj=$TGtE)+*=bYI3V#ePO-%G4~&rVFOGs&wa?f^cf}OyusnqVOtr0us$`&J`2nvroWk?SBn z;#soU5!`7cc_?Xf_g!|B+zGgqY?@$%P^+QLu=D0Y)1}{dua>hxBx_oX&Jt4uBZM~5 zVT5kd{y@g5MhDT#TgS_=;3@5{Zpgj7>HMrWTsegxmCVf$%8Up$oC0{!qRcZ`4y1~n z6D}|$n2vY18`(#3aWQzkUgzqZne9q4!NpybMkCnp|J1UwGNZfT6)vi3-GXV`YpB;) zP*5OZ^iB}wA>Wpf2sZp&1yVf=PNUsXY(%i3|D7(EOO0T`3ECaSx&+he+0f%|Sjx3| zbZu)C>y2Q;Jw!70WyL*|HQ$BR1Zf&&Td+-VUS1xvzn6pgG25zXy@Cx-$FUSV2DU~p zA#B$arY(Y5%H;@Ks%gD~4GoXnZsBsjXu*~%O*soTdt~MBB zOp>i+PAVzk2Hl-3`nd5uQYGIQ>P6G%`h7eH&XZ#?JWRqEH%Q6+V#+vJO6C{SCOW8O z*(P&_sWVx$O_sfDjxc?ylJ>6G%E=Huuw*Wpj+4pCg_r}+iBMQ}u>oTorz;3M=jN&9 z152+aVT=bc#-zI5OaAGg^CApPE*D~qcafBo0B~b&oYt%yW_d7X*Ml*}3dWc`bz?_5 zo&JZ_aXEryI$s;E2r<1-!~B9j#<-=wzuz@5FrcKJoBTT$$Y^3uxFQq@SA>}NM{HZs z5s$|s@pycNz@k%h;)jT}ExoX<*-&oZzI~3Ifa2of%JQP3qi(;yOo03yL~IM$!WE%G zy9>ibx*ICGoQU@MeD4+%6s*q6%X8X#u^1KG&V$$qxXNclMXL|fDlIL2H9tRpXJKJs z3CB^LqK`9Z4OfJ^IVjIGxJ_6!Ffi~Y0FVvB;qW_NulMQv{QTt}k0<9c2hGikNqWQW zWCAB#5o$Mc$5!BojAV+UOg=Us6bh|&yWI^QkEhn_^)B@Jd=FTB_!xbXTPKz3sK?AY zF6CSzkvIteC#Sv_i9{ORZg&krsKD#>s%egWK3~w~a;Zrw1HtU~dkqf{<9Ix-UK~*r rB{u%|_#dfM>Uh)c-K0%*E&%W^(#P}7-_GTc00000NkvXXu0mjfAWf6d literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-swan.png b/flokk_src/assets/images/birds/bird-swan.png new file mode 100644 index 0000000000000000000000000000000000000000..9805a7b65ad589329b8555d7f3a02909fe137716 GIT binary patch literal 2871 zcmV-73&`||P))v#qk6yjwe`gJi&_N3053W zu;O@v6~_~-I9;9eVGX@7vCp51p-5~=@a_mf>ANZoy^sWeDF8sRqb)ENMH*3SETyZsQ4 z3YTl)8p*;1r!%<(X$U=McO8P$@_u0BD=GUqS?EYsI+MdxyhI}xrD9sPE4NrG!MDFV z3EjOz=1=_HCfEg&z6&KpFgBplncN}(T%_&73`PQG1l#51U%mo=yYYAP-T3o2um6r_ zcb+r!!X(WKc*9*VX+))HqSgYtLjyf@yG#+W`>{Xs>UTJZ{#?KUv4jpwI%thgR7f?3N2a_(gj z!R=7XzXr7jf8e=^3)*;oj^_rL3nn8{OOylsyTIthC>F+c4yynD4)3jD%1&tGd2U@T z9wD*FS}uweDi@=-xF}*XePjfW8%zbKGdbHMQ_bLf5n)fv29+2RJh#HE6-~~&ud-TS zJ))x*sr+>es@aoN>j*q~>q6jb?;kXrnW5Uq0kG^QaceAeJ22$z|MFL%n!QT3j-8ud zSd9GqFI)v41d|k<&g7 z1q7aX20+u=*)6L&@xyEgg2}NSAI4GTdKDacJhzk=;9w)7T-YH?Xp=js@AT9qT zvY_xK*&b4}C73*wzyhwVW+HT=ZejVF3EZ^ujc`C5Uwwhb!Ba9a!IJ{=`zS zD*(~nUAF__0sNk!7v}ME(>{MJtzgnJUT{OiqR3B6y7{xTQHFKB#YfQyrs#+UeZ86~ ze6TM9VJ(P_u}M5X)AXgK6wGNlBxYcA=GPuV{?m0>D{Y#;(}3?^E9vH9(W3?7_+WJS z)Y1NHQ7FuZA~9PRWTX;I#)Ri&Z5gi>b@=3d(Oh`*d3hUd-CZ-69xeFN@gw;k`F*}0 zj*g7nXlK*X2qr0ck<&e1RG`pXch=fYy{s^0-&s2f0B_&9f8(vPQF-zF*@>10N~91> zT8&H}H)R2);q=Nq^9z=RvQaq)0Ou}WP2t3BGY5&bbzd~O*l>-(XP$jB7R+$Iuexop zv6NoPKXy)(m{~lnoj*IV=Xt}?esDPCOUfqqqwFeNe|N<#a)AudE?vHw+VcvZqk?<7 zeAE-Ouwt{k4cFgUft%TaEW6YWI7o8s^3~L?M~ECv(KsaoPR-ync&=Ug=q`14hZX*S zAGB@_cB(tDRo-fMt#~bZ(n{GKFBrQaAFSjZ*>*S_hH#_@dct7{2D=~_4DS2dYPAaG z@)m5B%ck_r&Cg+bd*8-imPlUes44v$!Kf9{r>&>2FABYfdd;OB{C+=#!#(C=fuc*L zb=Y{g(I^{J_HO~;n;k1yq+Cq7hYt_Hz~KQ?6f3&5ZWz*HFmyC#O8)FY5jHnBt+oFL zI;|*&g($ha#O{Ta6)<(L-e1M&Hpj0!PB3S6VO*L-I_`Cr+MdI=m>FZDYGS`qY`% z>Nl&bV2s|6?>^wR{v)x$$A%51V8_^XJCCx0F?xBmnlWkzj|_5Iw_UJt)#Zm58sDy@ zVBXPtEPjmJy6sZgDrdj)r8EC(e7mE9{hTHl#a1(~=ru3#NtT*1dV~JjxxN18s9>7< zN6oVsz+!9V`|3I>>gCiw=>_Cux}e%&9PqR zpJH%1%k5UUu`9UJ&Wlklre+T+a1yo2cIWJ{dk#*w`a+Ca+N#|iCX;q%$Fud#k0j#7 z?k?Z2n!N@KN@7V^Pc9Rlw>uFFRbi~`y?pB7R`s!2a4;R?5_X_ssG`h_=cqo)S@o zMaVcJ`5<_)_KJw@Ne+Go2~j0>ghX&Xqye_zf(j|D$&#oQS}04nU<*Sp%#f<1s;BJ| zsgq=TJedZ^1jGL)0H0P=bcsxEK1W-3fd)qfTPP-43b7Va2(}=iCy8k3W_~|_Wg>P_ z2C)`W39hHE$mEp7QEk;CTnI&CTq~*CMOwl2kbd-p!xcp>vSb)GfPILHgEKS$1n`d;GoC)NWPsMo^?#(p|P{-faT_{{;f~ V1?8Me%JTpK002ovPDHLkV1g8`b~pe4 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/birds/bird-toucan.png b/flokk_src/assets/images/birds/bird-toucan.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7a1ee6799f2cd4e28fe65908830b7b5cc80ffb GIT binary patch literal 3063 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/empty-dashboard-favorites@2x.png b/flokk_src/assets/images/empty-dashboard-favorites@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4de49339df4df93fb020abfef578ecaec68f0714 GIT binary patch literal 18791 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

cCRyz;d`N1GIiXl!WktQYvZ~%9Aa}N z>~8eLKamhD3RnF1OOKYlthH~yK@#G#?}@jpSs0t}ub9o0%8QvRCYB;6eDwk)hsNgn zte1hR`j(2s%gpWrnFL9x7g%GJ`XHIETo?O7Bf31|Kfr{^O~3dx2ok@y#(%6>ldHib&fg$vqgRxE`& z+H*S1ge2!sG%GB{XV0X=y_|M;F%Mb!vCP1O=+|YZu*l$J6_z^4WKZzXPoJ$}*Q{$`3`N6g=dACw zXx@jFn74KY>eb2*FtxW9_IUs)-o{4#W>;gbS(TSsig$kE5=YxcyfH7oS2Naq;2EtO zH|Z{(ocdYw5kJDm*4JipbCzf(zF%kPs|dyTVpBEst_mhd+h-&h{Zg>b{N zK5?>pOzs5|!Ze~FkeYy{@w~7s3sQ&>Mz?%5Nf`A-z>~XCo?n;aPgT5N{2qT66kd`) z><)Uf{U}>3|4}G_6otRUgIl&2wx+W%UnF9aJ4}{-3hgl$e>eK02>ey*v4FFq-8f2G zz5A-Tq}Gi0ua7bry4rA<8BKE#8dLS;_-~A{rbxiRB zk(M}aqfWuvBk9Dc@EC?u(ML6cJCg=CGogoHHGgPg-=##popgb3cbQgrT?E@_(piTF zyh0#|s-cj{8?3wUZn9m*p|n%j+!DrP7br-wr*+7!3NvE^7y)rW?9r%Rb=ar&pXMkR zt^A$F2h(j%#Vzcb1a|x<$Y(T>Rkqu~3JAz`z7l5xnr_va&O4}phe?R$?WPcD6AB5N zetmf|m!^>_lhWznEqc&d;?8K_*T_CVN0@!SidPK^sBn1_dBST5Bj~C5mA%S=>8c1(JuP>G`Nw5hl_{Z8Pb?T(Y2$ZYyq2r}zt~qIm zuuD-Z6Yv|@A#vb*;iMn3QCrZWoW<=QVRu8=lOREp9?g^`oGGh%Ebpac0rdn%mcD1@ zq?qWhyAok|@WcK-Xga_D3_~Hvm#UgGhJIxnC9=DW1R`_PW$7zb8)i!%j7InEf+G&H zm7AK@wtaN;8!^*(A|@8u^6l8Hh%R+1)Ey7l5j-yEbvKMQ-nE8y0-yWmmM%CA@Oqw) zaHb>sGX2L439JKft=A3A7MC-tJ6o9=A_iJfuPFT&zG*?$7*~r~BL2p}Ep^J*FQlt>rGB?+JSI>PWeOv7qzNAmJNm$C^cVWR$j? zZ!v-=P2}l4*eTqLlFV}zSwma`kuwTvi|!uCNBQwpWD4WG^Q$p|+{YC>$J>>UiOv-316s44_CPre$*}5IG)4ZPHs@HL zAP4uieYiM@>rH0bx#~6XjsVGgC;TFhg9)%p72vNH*5w2=ul~daJa$Fj7rgD?_~SiThTmV|_#Jb7FnY*1x9u9Z zdRaF6D?lv)*+zk+OeCcly;lO2l37^2`E94FnmJ$H^$lNaa#5=oCZhA3s|RKpa^L}m zt|)&r*3O&iu8^TBPOr=ibBypZ|Cchnv01q0W}g(ubmJif(`yvL1BWA<>6QyoACFfR zDndbbZ44w*>oi=I_a$!sz+0XpS2lA%?kl(!CWG55iw$|Fu_Fm+D6Yy>i{&>hV1#n! zqT`d5I^kv-m{Kt>Z&5ujKV0|5vEZ7OMp2s8jAET^0I?+Bexenhn-m@_c6~z<-bOm^ z8Q0)V2@=!5NTz0p#&SN~Z@Ke)g2(QY(qLQ;tluH8p^o^!HJYparBP}s)~N;%4ai1g z6~16P?i4&T$icn_@E@R_%CMpxJ3dO=P7xb|eF6V>4tFH2MS6Q@QReu^S&gLR#};)RWIl_<>h zcgkLls)Vgvmodb>Vl$u9B;AFmhwnw6B`4xzh01>4lV8|`ym9-qU`mPV(CYwh0gO^U zwYfe(`-J~a*60g6Ze_lzNKlFr6;I(%JEdvvJH@UpTPP3&0SvH3mv1xf%pHdhwy*bl zsW9_WS&L(M+K2REFBw?()|{`nr;Fxw04G z)sJB@V(27aSHD*tw#OH$@c->gy{_<*H=OgmS`+(ApmF6(3owQj7Ts#~9ax}e+b;Wa L&S&v9SJM6mAhq1x literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/empty-dashboard-recentActive@2x.png b/flokk_src/assets/images/empty-dashboard-recentActive@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1e5d7b8ef1202831208815ff8f902fdfeb5418e4 GIT binary patch literal 20169 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 Q@Hg>rw0E_`+4?{F4=vjmb^rhX literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/empty-dashboard-twitter@2x.png b/flokk_src/assets/images/empty-dashboard-twitter@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe55c3fd76dfe62110de2eda0aff59e8eb669f3 GIT binary patch literal 18460 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/flokk-logo.png b/flokk_src/assets/images/flokk-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..709be6874fd152af27dbc8fb5c471cf4efb9f45f GIT binary patch literal 7064 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 rVdKW(lNUY6BVTTj \ No newline at end of file diff --git a/flokk_src/assets/images/google-signin.png b/flokk_src/assets/images/google-signin.png new file mode 100644 index 0000000000000000000000000000000000000000..6ec94b156b4f51126a24a8c0b477e463b7512f90 GIT binary patch literal 7009 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/onboarding-birds.png b/flokk_src/assets/images/onboarding-birds.png new file mode 100644 index 0000000000000000000000000000000000000000..61285462f2818b8eaf0114d3f44f81bcdddd8b9c GIT binary patch literal 89265 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

ml7LW7HTe+llP%W4F*}tB=UNZR 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]r99>QU%ZhdzV>?R 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 Z7W3BCq=RO~N3n>QI_C_u^3P&!{U5U-P(c6y literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/sidebar-bg.png b/flokk_src/assets/images/sidebar-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..322980b261817d642519a00e5c9ac1fccb0b957a GIT binary patch literal 6729 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 literal 0 HcmV?d00001 diff --git a/flokk_src/assets/images/sidebar-logo.png b/flokk_src/assets/images/sidebar-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2fd3f81beb76e4d2c1cfc30243044ba576eabac GIT binary patch literal 10221 zcmXY1bzD^4)4zmtm*mn2N=OURpe!v20@Bi5(zPm~G=g*pEZq%K0>aYWOSq&+cL}_g z=lA}x@wsPa&b<@gnKN_0yi!*r#G}On0Dw>ls-Oh`=&|7c2^=i&TV#W^8T`R@f$F;h z06y9M2W@;Y@E-s$0ZIz8+TQ8Ai$M+-tcLw3BKRF{O zbMBy;4k`+{^4E&4tay%^4&CKk6tgib8JzEb-uAJC@2+&nD;IlhS7h^ltDhBslj=Wm zt>z%z!qT7QjQ*n>?I5NLXH!nNSS1R(k{W0CQCeagac|r7$vnqrA}|oRTI9A zkJxfjMPLD)0_WX#qbBJFv({8eo|M*`jC{j1YM``-9Az$0rb8=paA8Q%n>iXjI_%ddsgSY zsGKSPtq=c>wqw$yFUE6Hnwx6>?Z-&X`lDDG9sV_q5Cu9a-~0xCVw}jJ7eWvH+h(W* z>({gEQ@d8XFMamuuHA$FX&yI8XS6dw${LnZn(t2A+g&%jg0{O&G$o$_2bgGNKl8&k zj{|zBk&?4kcTTHIMmnPNAMUOhCa$OAjl+6_j!iNJOm2JXs)IazJk7SZoriC5naKd0 zSU`js<=S}S?6_-FQal&<^tpXc;QOBRClrHQCF>ZeB6N`U(@)!UknX6Nx@5f5PLArXO{Mq;`{2IkJ*8`+2YWxI%(OWkeOEn+RFwapz>R7K5>6tb;CeiBq>q>K>k^UyYpxU^G3H?x4YBas;2hpQaS9 zv*(*Vk-X8PC-U21^Q_ds)hMdwVd6_eh$wIY18_|r6#dvMgzM1G8>k*XV*Fx>aXY44 zY!Y6WKH)qf`I3(fR?94du2)u(N;NlsDzg(>y}N*L4h-V0-S@g(8Q%{(8v>ZHz`dOA z{esr~Ob5v_ly&=guDY3Bgz&O`X}0xUL5gqd%~GdgofJM`!z6>wIb~pP?=a$t;7|xW zz9!5Llx|ibjEKO1l7numB`MtS@_2fkM1Mdeto-KB!q8~Y$_VenyS)7@I-pYyhWV=a z46t)53m=Fwm{Bur?SKe`;g@SHcK?zSJgPW&q(P6@5&aHhQsb5?Zc_Owog zw($erpIa-@6zqIbvdXasSGFRoZcnbQP>j4Zf(?b!e{?It3}i3>TLl>AZ-v#>bDkjm z2y4ES?uLS)@so6};f2Q2<)v1uaOnV+EBU5jM`Gab)GKZ(TLr+A2+s3etZ0r*_ilB& z>gq*p+tK626hP~XSS;`=jl7l)R?8xTF5`%0D+<`YfMHganrV1OCKk>fPU{-ywE}P| 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 bAK#%h@5cQJX^wgbUI3I{s4JAqnST5~3L~j$ literal 0 HcmV?d00001 diff --git a/flokk_src/lib/_internal/abstract_api_keys.dart b/flokk_src/lib/_internal/abstract_api_keys.dart new file mode 100644 index 0000000..4e9203f --- /dev/null +++ b/flokk_src/lib/_internal/abstract_api_keys.dart @@ -0,0 +1,15 @@ +abstract class AbstractApiKeys { + String get googleClientId; + + String get googleClientSecret; + + String get googleWebClientId; + + String get twitterKey; + + String get twitterSecret; + + String get githubKey; + + String get githubSecret; +} diff --git a/flokk_src/lib/_internal/components/animated_panel.dart b/flokk_src/lib/_internal/components/animated_panel.dart new file mode 100644 index 0000000..07bf4bf --- /dev/null +++ b/flokk_src/lib/_internal/components/animated_panel.dart @@ -0,0 +1,53 @@ +import 'package:flutter/material.dart'; + +/// An animated sliding container, optimized to hide it's children when closed. +class AnimatedPanel extends StatefulWidget { + final bool isClosed; + final double closedX; + final double closedY; + final double duration; + final Curve curve; + final Widget child; + + const AnimatedPanel({Key key, this.isClosed, this.closedX, this.closedY, this.duration, this.curve, this.child}) + : super(key: key); + + @override + _AnimatedPanelState createState() => _AnimatedPanelState(); +} + +class _AnimatedPanelState extends State { + bool _isHidden = true; + + @override + Widget build(BuildContext context) { + Offset closePos = Offset(widget.closedX ?? 0, widget.closedY ?? 0); + double duration = _isHidden && widget.isClosed ? 0 : widget.duration; + return TweenAnimationBuilder( + curve: widget.curve ?? Curves.easeOut, + tween: Tween( + begin: !widget.isClosed ? Offset.zero : closePos, + end: !widget.isClosed ? Offset.zero : closePos, + ), + duration: Duration(milliseconds: (duration * 1000).round()), + builder: (_, Offset value, Widget c) { + _isHidden = widget.isClosed && value == Offset(widget.closedX, widget.closedY); + return _isHidden ? Container() : Transform.translate(offset: value, child: c); + }, + child: widget.child, + ); + } +} + +extension AnimatedPanelExtensions on Widget { + Widget animatedPanelX({double closeX, bool isClosed, double duration = .35, Curve curve}) => + animatedPanel(closePos: Offset(closeX, 0), isClosed: isClosed, curve: curve, duration: duration); + + Widget animatedPanelY({double closeY, bool isClosed, double duration = .35, Curve curve}) => + animatedPanel(closePos: Offset(0, closeY), isClosed: isClosed, curve: curve, duration: duration); + + Widget animatedPanel({Offset closePos, bool isClosed, double duration = .35, Curve curve}) { + return AnimatedPanel( + closedX: closePos.dx, closedY: closePos.dy, child: this, isClosed: isClosed, duration: duration, curve: curve); + } +} diff --git a/flokk_src/lib/_internal/components/animated_state.dart b/flokk_src/lib/_internal/components/animated_state.dart new file mode 100644 index 0000000..6c28e05 --- /dev/null +++ b/flokk_src/lib/_internal/components/animated_state.dart @@ -0,0 +1,52 @@ +import 'package:flutter/material.dart'; + +class AnimatedTextSpike extends StatefulWidget { + @override + _AnimatedTextSpikeState createState() => _AnimatedTextSpikeState(); +} + +class _AnimatedTextSpikeState extends AnimatedState { + @override + void initAnimation() => animation = createAnim(seconds: 4)..forward(); + + @override + Widget build(BuildContext context) { + return Opacity( + opacity: animation.value, + child: GestureDetector( + onTap: () => animation.forward(from: 0), + child: Text("Hello Fade:"), + ), + ); + } +} + +abstract class AnimatedState extends State with SingleTickerProviderStateMixin { + AnimationController animation; + + AnimationController createAnim({double lowerBound = 0, double upperBound = 1, double seconds = .2}) { + return AnimationController( + vsync: this, + duration: Duration(milliseconds: (seconds * 1000).round()), + lowerBound: lowerBound, + upperBound: upperBound, + )..addListener(() => setState(() {})); + } + + void initAnimation() => animation = createAnim(); + + @override + void initState() { + initAnimation(); + super.initState(); + } + + @override + void dispose() { + animation?.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context); +} diff --git a/flokk_src/lib/_internal/components/clickable_extensions.dart b/flokk_src/lib/_internal/components/clickable_extensions.dart new file mode 100644 index 0000000..91a25ed --- /dev/null +++ b/flokk_src/lib/_internal/components/clickable_extensions.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; + +extension ClickableExtensions on Widget { + Widget clickable(void Function() action, {bool opaque = true}) { + return GestureDetector( + behavior: opaque? HitTestBehavior.opaque : HitTestBehavior.deferToChild, + onTap: action, + child: MouseRegion( + cursor: SystemMouseCursors.click, + opaque: opaque ?? false, + child: this, + ), + ); + } +} diff --git a/flokk_src/lib/_internal/components/content_underlay.dart b/flokk_src/lib/_internal/components/content_underlay.dart new file mode 100644 index 0000000..7ee12f4 --- /dev/null +++ b/flokk_src/lib/_internal/components/content_underlay.dart @@ -0,0 +1,34 @@ +import 'package:flutter/material.dart'; + +class ContentUnderlay extends StatelessWidget { + final Color color; + final bool isActive; + final Duration duration; + final bool animate; + + const ContentUnderlay({Key key, this.color, this.isActive = true, this.duration, this.animate}) : super(key: key); + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + tween: Tween(begin: isActive ? 1 : 0, end: isActive ? 1 : 0), + duration: duration ?? Duration(milliseconds: 350), + builder: (_, double opacity, __) { + return opacity == 0 + // Don't return anything if we're totally invisible + ? SizedBox.shrink() + // Use a RawMaterialButton to stop hover events to passing to buttons below + : RawMaterialButton( + padding: EdgeInsets.zero, + onPressed: null, + child: Opacity( + opacity: opacity, + child: Container( + color: (color ?? Colors.black.withOpacity(.8)), + ), + ), + ); + }, + ); + } +} diff --git a/flokk_src/lib/_internal/components/delayed_builder.dart b/flokk_src/lib/_internal/components/delayed_builder.dart new file mode 100644 index 0000000..fcbadaa --- /dev/null +++ b/flokk_src/lib/_internal/components/delayed_builder.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:time/time.dart'; + +class DelayedBuilder extends StatefulWidget { + final WidgetBuilder firstBuilder; + final WidgetBuilder secondBuilder; + final double delay; + + const DelayedBuilder({Key key, this.firstBuilder, this.secondBuilder, this.delay}) : super(key: key); + + @override + _DelayedBuilderState createState() => _DelayedBuilderState(); +} + +class _DelayedBuilderState extends State { + bool show = false; + bool initComplete = false; + + @override + void initState() { + Future.delayed((widget.delay ?? 0).milliseconds).then((value) { + if (!mounted) return; + return setState(() => show = true); + }); + super.initState(); + } + + @override + Widget build(BuildContext context) => !show ? widget.firstBuilder(context) : widget.secondBuilder(context); +} diff --git a/flokk_src/lib/_internal/components/design_grid_overlay.dart b/flokk_src/lib/_internal/components/design_grid_overlay.dart new file mode 100644 index 0000000..d0e7b77 --- /dev/null +++ b/flokk_src/lib/_internal/components/design_grid_overlay.dart @@ -0,0 +1,101 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flutter/material.dart'; + +class GridLayout { + final EdgeInsets gutters; + final double padding; + final int numCols; + final double breakPt; + + GridLayout({this.gutters, this.padding, this.numCols, this.breakPt}); +} + +class DesignGridOverlay extends StatefulWidget { + final Widget child; + + final Alignment alignment; + final List grids; + final bool isEnabled; + + DesignGridOverlay({Key key, this.child, this.grids, this.isEnabled = true, this.alignment}) : super(key: key); + + @override + _DesignGridOverlayState createState() => _DesignGridOverlayState(); +} + +class _DesignGridOverlayState extends State { + double gridAlpha = 0; + + @override + void initState() { + super.initState(); + } + + @override + Widget build(BuildContext context) { + return widget.isEnabled + ? Stack( + children: [ + widget.child, + //Main View + _DesignGridView(this), + ], + ) + : widget.child; + } + + void handleTap() => setState(() => gridAlpha >= 1 ? gridAlpha = 0 : gridAlpha += .48); +} + +class _DesignGridView extends StatelessWidget { + final _DesignGridOverlayState state; + + const _DesignGridView(this.state, {Key key}) : super(key: key); + + GridLayout getGrid(BuildContext context) { + for (var i = 0; i < state.widget.grids.length; i++) { + final List grids = state.widget.grids; + if (grids[i].breakPt >= context.widthPx) return grids[i]; + } + return state.widget.grids.last; + } + + @override + Widget build(BuildContext context) { + final GridLayout grid = getGrid(context); + final List content = [Container(width: grid.padding)]; + final int numCols = grid.numCols; + for (var i = numCols; i-- > 0;) { + content.add( + Flexible(child: Container(color: Colors.red.withOpacity(state.gridAlpha * .4), height: double.infinity))); + content.add(Container(width: grid.padding)); + } + print("CurrentBreak: ${grid.breakPt}"); + return Stack(children: [ + if (state.gridAlpha > 0) + IgnorePointer( + child: Padding( + padding: grid.gutters ?? EdgeInsets.zero, + child: Row(children: content), + ), + ), + Material( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text(" ${context.widthPx} x ${context.heightPx} ", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 10)), + Text( + " ${(context.widthInches).toStringAsPrecision(3)}'' x ${(context.heightInches).toStringAsPrecision(3)}'' ", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 10)), + ], + ).padding(all: 4), + ) + .gestures( + onTapUp: (d) => state.handleTap(), + behavior: HitTestBehavior.opaque, + ) + .alignment(state.widget.alignment), + ]); + } +} diff --git a/flokk_src/lib/_internal/components/fading_index_stack.dart b/flokk_src/lib/_internal/components/fading_index_stack.dart new file mode 100644 index 0000000..bcb51b7 --- /dev/null +++ b/flokk_src/lib/_internal/components/fading_index_stack.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; +import 'package:time/time.dart'; + +class FadingIndexedStack extends StatefulWidget { + final int index; + final List children; + final Duration duration; + + const FadingIndexedStack({ + Key key, + this.index, + this.children, + this.duration = const Duration( + milliseconds: 250, + ), + }) : super(key: key); + + @override + _FadingIndexedStackState createState() => _FadingIndexedStackState(); +} + +class _FadingIndexedStackState extends State { + double _targetOpacity = 1; + + @override + void didUpdateWidget(FadingIndexedStack oldWidget) { + if (oldWidget.index == widget.index) return; + setState(() => _targetOpacity = 0); + Future.delayed(1.milliseconds, () => setState(() => _targetOpacity = 1)); + super.didUpdateWidget(oldWidget); + } + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + duration: _targetOpacity > 0 ? widget.duration : 0.milliseconds, + tween: Tween(begin: 0, end: _targetOpacity), + builder: (_, value, child) { + return Opacity(opacity: value, child: child); + }, + child: IndexedStack(index: widget.index, children: widget.children), + ); + } +} diff --git a/flokk_src/lib/_internal/components/listenable_builder.dart b/flokk_src/lib/_internal/components/listenable_builder.dart new file mode 100644 index 0000000..36e9b4f --- /dev/null +++ b/flokk_src/lib/_internal/components/listenable_builder.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class ListenableBuilder extends AnimatedBuilder { + ListenableBuilder({ + Key key, + @required Listenable listenable, + @required TransitionBuilder builder, + Widget child, + }) : super(key: key, animation: listenable, builder: builder, child: child); +} diff --git a/flokk_src/lib/_internal/components/mouse_hover_builder.dart b/flokk_src/lib/_internal/components/mouse_hover_builder.dart new file mode 100644 index 0000000..1c4915a --- /dev/null +++ b/flokk_src/lib/_internal/components/mouse_hover_builder.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; + +typedef Widget HoverBuilder(BuildContext context, bool isHovering); + +class MouseHoverBuilder extends StatefulWidget { + final bool isClickable; + + MouseHoverBuilder({Key key, this.builder, this.isClickable = false}) : super(key: key); + + final HoverBuilder builder; + + @override + _MouseHoverBuilderState createState() => _MouseHoverBuilderState(); +} + +class _MouseHoverBuilderState extends State { + bool isOver = false; + + @override + Widget build(BuildContext context) { + return MouseRegion( + cursor: widget.isClickable? SystemMouseCursors.click : SystemMouseCursors.basic, + onEnter: (p) => setOver(true), + onExit: (p) => setOver(false), + child: widget.builder(context, isOver), + ); + } + + void setOver(bool value) => setState(() => isOver = value); +} diff --git a/flokk_src/lib/_internal/components/multi_value_listenable.dart b/flokk_src/lib/_internal/components/multi_value_listenable.dart new file mode 100644 index 0000000..01fe769 --- /dev/null +++ b/flokk_src/lib/_internal/components/multi_value_listenable.dart @@ -0,0 +1,70 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class ValueListenableBuilder2 extends StatelessWidget { + ValueListenableBuilder2({Key key, this.value1, this.value2, this.builder, this.child}) : super(key: key); + + final ValueListenable value1; + final ValueListenable value2; + final Widget child; + final Widget Function(BuildContext context, A a, B b, Widget child) builder; + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: value1, + builder: (_, a, __) => ValueListenableBuilder( + valueListenable: value2, + builder: (context, b, __) => builder(context, a, b, child), + ), + ); + } +} + +class ValueListenableBuilder3 extends StatelessWidget { + ValueListenableBuilder3({Key key, this.value1, this.value2, this.value3, this.builder, this.child}) : super(key: key); + + final ValueListenable value1; + final ValueListenable value2; + final ValueListenable value3; + final Widget child; + final Widget Function(BuildContext context, A a, B b, C c, Widget child) builder; + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder( + valueListenable: value1, + builder: (_, a, __) => ValueListenableBuilder2( + value1: value2, + value2: value3, + builder: (context, b, c, __) => builder(context, a, b, c, child), + ), + ); + } +} + +class ValueListenableBuilder4 extends StatelessWidget { + ValueListenableBuilder4(this.value1, this.value2, this.value3, this.value4, {Key key, this.builder, this.child}) + : super(key: key); + + final ValueListenable value1; + final ValueListenable value2; + final ValueListenable value3; + final ValueListenable value4; + + final Widget child; + final Widget Function(BuildContext context, A a, B b, C c, D d, Widget child) builder; + + @override + Widget build(BuildContext context) { + return ValueListenableBuilder2( + value1: value1, + value2: value2, + builder: (_, a, b, __) => ValueListenableBuilder2( + value1: value3, + value2: value4, + builder: (context, c, d, __) => builder(context, a, b, c, d, child), + ), + ); + } +} diff --git a/flokk_src/lib/_internal/components/no_glow_scroll_behavior.dart b/flokk_src/lib/_internal/components/no_glow_scroll_behavior.dart new file mode 100644 index 0000000..4482df9 --- /dev/null +++ b/flokk_src/lib/_internal/components/no_glow_scroll_behavior.dart @@ -0,0 +1,8 @@ +import 'package:flutter/material.dart'; + +class NoGlowScrollBehavior extends ScrollBehavior { + @override + Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) { + return child; + } +} diff --git a/flokk_src/lib/_internal/components/one_line_text.dart b/flokk_src/lib/_internal/components/one_line_text.dart new file mode 100644 index 0000000..02d8e69 --- /dev/null +++ b/flokk_src/lib/_internal/components/one_line_text.dart @@ -0,0 +1,13 @@ + +import 'package:flutter/material.dart'; + +class OneLineText extends StatelessWidget { + final String text; + final TextStyle style; + + const OneLineText(this.text, {Key key, this.style}) : super(key: key); + + @override + Widget build(BuildContext context) => + Text(text, style: style, maxLines: 1, softWrap: false, overflow: TextOverflow.fade); +} diff --git a/flokk_src/lib/_internal/components/pinned.dart b/flokk_src/lib/_internal/components/pinned.dart new file mode 100644 index 0000000..8024c20 --- /dev/null +++ b/flokk_src/lib/_internal/components/pinned.dart @@ -0,0 +1,92 @@ +import 'dart:math'; + +import 'package:flutter/material.dart'; + +import 'pinned_stack.dart'; + +class Pin { + final double startPx; + final double startPct; + final double endPx; + final double endPct; + final double sizePx; + final double centerPct; + + Pin({this.startPx, this.startPct, this.endPx, this.endPct, this.sizePx, this.centerPct}); +} + +class Pinned extends StatelessWidget { + final Pin hzPin; + final Pin vtPin; + final Widget child; + + const Pinned({Key key, this.hzPin, this.vtPin, this.child}) : super(key: key); + + _Span calculateSpanFromPin(Pin pin, double maxSize) { + var s = _Span(); + //Size is unknown, so we must be pinned on both sides + if (pin.sizePx == null) { + s.start = pin.startPx ?? pin.startPct * maxSize; + s.end = maxSize - (pin.endPx ?? pin.endPct * maxSize); + } + //We know the size, figure out which side we're pinned on, if any + else { + //Pinned to start + if (pin.startPx != null || pin.startPct != null) { + s.start = pin.startPx ?? pin.startPct * maxSize; + s.end = s.start + pin.sizePx; + } + //Pinned to end + else if (pin.endPx != null || pin.endPct != null) { + s.end = maxSize - (pin.endPx ?? pin.endPct * maxSize); + s.start = s.end - pin.sizePx; + } + //Both sides are % pinned, use center - size/2 to position + else { + s.start = (pin.centerPct * maxSize) - pin.sizePx * .5; + s.end = s.start + pin.sizePx; + } + } + return s; + } + + @override + Widget build(BuildContext context) { + //Check to see if we have been provided some StackConstraints by [ PinnedStack ] + StackConstraints constraints = context.dependOnInheritedWidgetOfExactType(); + if (constraints != null) { + return _buildContent(constraints.constraints); + } + //If not, we need to find our own constraints + else { + return LayoutBuilder( + builder: (context, constraints) => _buildContent(constraints), + ); + } + } + + Widget _buildContent(BoxConstraints constraints) { + _Span hzSpan = calculateSpanFromPin(hzPin, constraints.maxWidth); + _Span vtSpan = calculateSpanFromPin(vtPin, constraints.maxHeight); + //Hide child if either dimension is 0 + bool showChild = (hzSpan.size > 0 && vtSpan.size > 0); + return Transform.translate( + offset: Offset(hzSpan.start, vtSpan.start), + child: Align( + alignment: Alignment.topLeft, + child: SizedBox(width: hzSpan.size, height: vtSpan.size, child: showChild ? child : null), + ), + ); + } +} + +class _Span { + double start; + double end; + + double get size => max(0, end - start); +} + +extension PinnedExtensions on Widget { + Pinned pin({Pin hz, Pin vt}) => Pinned(hzPin: hz, vtPin: vt, child: this); +} diff --git a/flokk_src/lib/_internal/components/pinned_stack.dart b/flokk_src/lib/_internal/components/pinned_stack.dart new file mode 100644 index 0000000..63ab34e --- /dev/null +++ b/flokk_src/lib/_internal/components/pinned_stack.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; + +class StackConstraints extends InheritedWidget { + final BoxConstraints constraints; + + StackConstraints({this.constraints, Widget child}) : super(child: child); + + @override + bool updateShouldNotify(InheritedWidget oldWidget) { + var old = (oldWidget as StackConstraints).constraints; + return old.maxWidth != constraints.maxWidth || old.maxHeight != constraints.maxHeight; + } +} + +class PinnedStack extends StatelessWidget { + final List children; + final StackFit fit; + final AlignmentGeometry alignment; + final TextDirection textDirection; + final Overflow overflow; + + const PinnedStack( + {Key key, + this.children, + this.fit = StackFit.expand, + this.alignment = Alignment.topLeft, + this.textDirection = TextDirection.ltr, + this.overflow = Overflow.visible}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return LayoutBuilder(builder: (context, constraints) { + return StackConstraints( + constraints: constraints, + child: Stack( + fit: fit, + alignment: alignment, + overflow: overflow, + textDirection: textDirection, + children: children, + ), + ); + }); + } +} diff --git a/flokk_src/lib/_internal/components/rotation_3d.dart b/flokk_src/lib/_internal/components/rotation_3d.dart new file mode 100644 index 0000000..ccf8db7 --- /dev/null +++ b/flokk_src/lib/_internal/components/rotation_3d.dart @@ -0,0 +1,29 @@ +//Takes a x,y or z rotation, in degrees, and rotates. Good for spins & 3d flip effects +import 'dart:math'; + +import 'package:flutter/material.dart'; + +class Rotation3d extends StatelessWidget { + //Degrees to rads constant + static const double degrees2Radians = pi / 180; + + final Widget child; + final double rotationX; + final double rotationY; + final double rotationZ; + + const Rotation3d({Key key, @required this.child, this.rotationX = 0, this.rotationY = 0, this.rotationZ = 0}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Transform( + alignment: FractionalOffset.center, + transform: Matrix4.identity() + ..setEntry(3, 2, 0.001) + ..rotateX(rotationX * degrees2Radians) + ..rotateY(rotationY * degrees2Radians) + ..rotateZ(rotationZ * degrees2Radians), + child: child); + } +} diff --git a/flokk_src/lib/_internal/components/scrolling_flex_view.dart b/flokk_src/lib/_internal/components/scrolling_flex_view.dart new file mode 100644 index 0000000..67de8d5 --- /dev/null +++ b/flokk_src/lib/_internal/components/scrolling_flex_view.dart @@ -0,0 +1,35 @@ +import 'package:flokk/styled_components/scrolling/styled_scrollview.dart'; +import 'package:flutter/material.dart'; + +class ConstrainedFlexView extends StatelessWidget { + final Widget child; + final double minSize; + final Axis axis; + final EdgeInsets scrollPadding; + + const ConstrainedFlexView(this.minSize, {Key key, this.child, this.axis, this.scrollPadding}) : super(key: key); + + bool get isHz => axis == Axis.horizontal; + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (_, constraints) { + double viewSize = isHz ? constraints.maxWidth : constraints.maxHeight; + if (viewSize > minSize) return child; + return Padding( + padding: scrollPadding, + child: StyledScrollView( + axis: axis ?? Axis.vertical, + child: ConstrainedBox( + constraints: BoxConstraints( + maxHeight: isHz ? double.infinity : minSize, + maxWidth: isHz ? minSize : double.infinity), + child: child, + ), + ), + ); + }, + ); + } +} diff --git a/flokk_src/lib/_internal/components/selectable_link_text.dart b/flokk_src/lib/_internal/components/selectable_link_text.dart new file mode 100644 index 0000000..d160818 --- /dev/null +++ b/flokk_src/lib/_internal/components/selectable_link_text.dart @@ -0,0 +1,77 @@ +import 'package:flokk/_internal/url_launcher/url_launcher.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +class SelectableLinkText extends StatefulWidget { + final String text; + final TextStyle textStyle; + final TextStyle linkStyle; + final TextAlign textAlign; + + const SelectableLinkText({ + Key key, + @required this.text, + this.textStyle, + this.linkStyle, + this.textAlign = TextAlign.start, + }) : assert(text != null), + super(key: key); + + @override + _LinkTextState createState() => _LinkTextState(); +} + +class _LinkTextState extends State { + List _gestureRecognizers; + final RegExp _regex = RegExp( + r"https?:\/\/(www\.)?[-a-zA-Z0-9@:%.,_\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\,+.~#?&//=]*)"); + + @override + void initState() { + super.initState(); + _gestureRecognizers = []; + } + + @override + void dispose() { + _gestureRecognizers.forEach((recognizer) => recognizer.dispose()); + super.dispose(); + } + + void _launchUrl(String url) async { + UrlLauncher.openHttp(url); + } + + @override + Widget build(BuildContext context) { + final themeData = Theme.of(context); + final textStyle = widget.textStyle ?? themeData.textTheme.body1; + final linkStyle = widget.linkStyle ?? + themeData.textTheme.bodyText1.copyWith(color: themeData.accentColor, decoration: TextDecoration.underline); + + final links = _regex.allMatches(widget.text); + + if (links.isEmpty) { + return SelectableText(widget.text, style: textStyle); + } + + final textParts = widget.text.split(_regex); + final textSpans = []; + + int i = 0; + textParts.forEach((part) { + textSpans.add(TextSpan(text: part, style: textStyle)); + if (i < links.length) { + final link = links.elementAt(i).group(0); + final recognizer = TapGestureRecognizer()..onTap = () => _launchUrl(link); + _gestureRecognizers.add(recognizer); + textSpans.add( + TextSpan(text: link, style: linkStyle, recognizer: recognizer), + ); + i++; + } + }); + + return RichText(text: TextSpan(children: textSpans), textAlign: widget.textAlign); + } +} diff --git a/flokk_src/lib/_internal/components/seperated_flexibles.dart b/flokk_src/lib/_internal/components/seperated_flexibles.dart new file mode 100644 index 0000000..a842444 --- /dev/null +++ b/flokk_src/lib/_internal/components/seperated_flexibles.dart @@ -0,0 +1,83 @@ +import 'package:flutter/material.dart'; + +typedef Widget SeparatorBuilder(); + +class SeparatedRow extends StatelessWidget { + final List children; + final SeparatorBuilder separatorBuilder; + final MainAxisAlignment mainAxisAlignment; + final CrossAxisAlignment crossAxisAlignment; + final MainAxisSize mainAxisSize; + final TextBaseline textBaseline; + final TextDirection textDirection; + final VerticalDirection verticalDirection; + + const SeparatedRow({ + Key key, + this.children, + this.separatorBuilder, + this.mainAxisAlignment = MainAxisAlignment.start, + this.crossAxisAlignment = CrossAxisAlignment.center, + this.mainAxisSize = MainAxisSize.max, + this.verticalDirection = VerticalDirection.down, + this.textBaseline, + this.textDirection, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + List c = children.toList(); + for (var i = c.length; i-- > 0;) { + if (i > 0) c.insert(i, separatorBuilder()); + } + return Row( + children: c, + mainAxisAlignment: mainAxisAlignment, + crossAxisAlignment: crossAxisAlignment, + mainAxisSize: mainAxisSize, + textBaseline: textBaseline, + textDirection: textDirection, + verticalDirection: verticalDirection, + ); + } +} + +class SeparatedColumn extends StatelessWidget { + final List children; + final SeparatorBuilder separatorBuilder; + final MainAxisAlignment mainAxisAlignment; + final CrossAxisAlignment crossAxisAlignment; + final MainAxisSize mainAxisSize; + final TextBaseline textBaseline; + final TextDirection textDirection; + final VerticalDirection verticalDirection; + + const SeparatedColumn({ + Key key, + this.children, + this.separatorBuilder, + this.mainAxisAlignment = MainAxisAlignment.start, + this.crossAxisAlignment = CrossAxisAlignment.center, + this.mainAxisSize = MainAxisSize.max, + this.verticalDirection = VerticalDirection.down, + this.textBaseline, + this.textDirection, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + List c = children.toList(); + for (var i = c.length; i-- > 0;) { + if (i > 0 && separatorBuilder != null) c.insert(i, separatorBuilder()); + } + return Column( + children: c, + mainAxisAlignment: mainAxisAlignment, + crossAxisAlignment: crossAxisAlignment, + mainAxisSize: mainAxisSize, + textBaseline: textBaseline, + textDirection: textDirection, + verticalDirection: verticalDirection, + ); + } +} diff --git a/flokk_src/lib/_internal/components/simple_grid.dart b/flokk_src/lib/_internal/components/simple_grid.dart new file mode 100644 index 0000000..42c59a5 --- /dev/null +++ b/flokk_src/lib/_internal/components/simple_grid.dart @@ -0,0 +1,54 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flutter/material.dart'; + +class SimpleGrid extends StatelessWidget { + final double hSpace; + final double vSpace; + final int colCount; + final List kids; + final double kidHeight; + final CrossAxisAlignment align; + + //TODO SB: Refactor this class to support Hz scrolling + const SimpleGrid({ + Key key, + this.hSpace = 0, + this.vSpace = 0, + this.kids, + this.colCount = 2, + this.kidHeight = 40, + this.align = CrossAxisAlignment.start, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + //Build a bunch of columns in a bunch of rows + int rowCount = (kids.length / colCount).ceil(); + List col = []; + //Fill each row with items + int kidIndex = 0; + for (var i = rowCount; i-- > 0;) { + List row = []; + for (var i2 = colCount; i2-- > 0;) { + if (kidIndex <= kids.length - 1) { + row.add(kids[kidIndex].flexible()); + } else { + row.add(Container().flexible()); + } + kidIndex++; + // Fill gaps with hSpace + if (i2 > 0) { + row.add(SizedBox(width: hSpace)); + } + } + col.add(Row(children: row).height(kidHeight)); + // Fill gaps with vSpace + if (i > 0) col.add(SizedBox(height: vSpace)); + } + return Column( + crossAxisAlignment: align, + mainAxisSize: MainAxisSize.min, + children: col, + ); + } +} diff --git a/flokk_src/lib/_internal/components/simple_value_notifier.dart b/flokk_src/lib/_internal/components/simple_value_notifier.dart new file mode 100644 index 0000000..2f34aa3 --- /dev/null +++ b/flokk_src/lib/_internal/components/simple_value_notifier.dart @@ -0,0 +1,20 @@ +import 'package:flutter/cupertino.dart'; + +class SimpleNotifier extends ChangeNotifier { + void notify() => notifyListeners(); +} + +class SimpleValueNotifier extends ValueNotifier { + SimpleValueNotifier(T value) : super(value); + + void notify() => notifyListeners(); +} + +class SomeProps with ChangeNotifier { + bool value1 = false; + + void setV1(bool v) { + value1 = v; + notifyListeners(); + } +} diff --git a/flokk_src/lib/_internal/components/spacers.dart b/flokk_src/lib/_internal/components/spacers.dart new file mode 100644 index 0000000..001511a --- /dev/null +++ b/flokk_src/lib/_internal/components/spacers.dart @@ -0,0 +1,19 @@ +import 'package:flutter/material.dart'; + +class VtSpace extends StatelessWidget { + final double size; + + VtSpace(this.size); + + @override + Widget build(BuildContext context) => SizedBox(height: size); +} + +class HzSpace extends StatelessWidget { + final double size; + + HzSpace(this.size); + + @override + Widget build(BuildContext context) => SizedBox(width: size); +} diff --git a/flokk_src/lib/_internal/components/spacing.dart b/flokk_src/lib/_internal/components/spacing.dart new file mode 100644 index 0000000..02cf7b8 --- /dev/null +++ b/flokk_src/lib/_internal/components/spacing.dart @@ -0,0 +1,29 @@ +import 'package:flutter/cupertino.dart'; + +class Space extends StatelessWidget { + final double width; + final double height; + + Space(this.width, this.height); + + @override + Widget build(BuildContext context) => SizedBox(width: width, height: height); +} + +class VSpace extends StatelessWidget { + final double size; + + const VSpace(this.size, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) => Space(0, size); +} + +class HSpace extends StatelessWidget { + final double size; + + const HSpace(this.size, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) => Space(size, 0); +} diff --git a/flokk_src/lib/_internal/components/translate_and_align.dart b/flokk_src/lib/_internal/components/translate_and_align.dart new file mode 100644 index 0000000..605fae4 --- /dev/null +++ b/flokk_src/lib/_internal/components/translate_and_align.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; + +class TranslateAndAlign extends StatelessWidget { + final Offset offset; + final Alignment align; + final Widget child; + + TranslateAndAlign({this.child, this.offset, this.align}); + + @override + Widget build(BuildContext context) { + return Align( + alignment: align ?? Alignment.topLeft, + child: Transform.translate( + offset: offset ?? Offset.zero, + child: child, + ), + ); + } +} diff --git a/flokk_src/lib/_internal/http_client.dart b/flokk_src/lib/_internal/http_client.dart new file mode 100644 index 0000000..65e0a20 --- /dev/null +++ b/flokk_src/lib/_internal/http_client.dart @@ -0,0 +1,89 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/log.dart'; +import 'package:http/http.dart' as http; + +enum NetErrorType { + none, + disconnected, + timedOut, + denied, +} + +typedef Future HttpRequest(); + +class HttpClient { + static Future get(String url, {Map headers}) async { + return await _request(() async { + return await http.get(url, headers: headers); + }); + } + + static Future post(String url, {Map headers, dynamic body, Encoding encoding}) async { + return await _request(() async { + return await http.post(url, headers: headers, body: body, encoding: encoding); + }); + } + + static Future put(String url, {Map headers, dynamic body, Encoding encoding}) async { + return await _request(() async { + return await http.put(url, headers: headers, body: body, encoding: encoding); + }); + } + + static Future patch(String url, {Map headers, dynamic body, Encoding encoding}) async { + return await _request(() async { + return await http.patch(url, headers: headers, body: body, encoding: encoding); + }); + } + + static Future delete(String url, {Map headers}) async { + return await _request(() async { + return await http.delete(url, headers: headers); + }); + } + + static Future head(String url, {Map headers}) async { + return await _request(() async { + return await http.head(url, headers: headers); + }); + } + + static Future _request(HttpRequest request) async { + http.Response response; + try { + response = await request(); + } on Exception catch (e) { + Log.e("Network call failed. error = ${e.toString()}"); + } + return HttpResponse(response); + } +} + +class HttpResponse { + final http.Response raw; + + NetErrorType errorType; + + bool get success => errorType == NetErrorType.none; + + String get body => raw?.body; + + Map get headers => raw?.headers; + + int get statusCode => raw?.statusCode ?? -1; + + HttpResponse(this.raw) { + //No response at all, there must have been a connection error + if (raw == null) + errorType = NetErrorType.disconnected; + //200 means all is good :) + else if (raw.statusCode == 200) + errorType = NetErrorType.none; + //500's, server is probably down + else if (raw.statusCode >= 500 && raw.statusCode < 600) + errorType = NetErrorType.timedOut; + //400's server is denying our request, probably bad auth or malformed request + else if (raw.statusCode >= 400 && raw.statusCode < 500) errorType = NetErrorType.denied; + } +} diff --git a/flokk_src/lib/_internal/log.dart b/flokk_src/lib/_internal/log.dart new file mode 100644 index 0000000..8a22f79 --- /dev/null +++ b/flokk_src/lib/_internal/log.dart @@ -0,0 +1,37 @@ +import 'package:flokk/_internal/universal_file/universal_file.dart'; +import 'package:intl/intl.dart'; + +class Log { + static bool writeToDisk = true; + static UniversalFile _printFile; + static UniversalFile _errorFile; + + static Future init() async { + if (_printFile != null) return; + _printFile = UniversalFile("editor-log.txt"); + _errorFile = UniversalFile("error-log.txt"); + } + + static void p(String value, [bool writeTimestamp = true]) { + init().then((_) { + print(value); + if (writeToDisk) { + _printFile.write(_formatLine(value, writeTimestamp), true); + } + }); + } + + static String _formatLine(String value, bool writeTimestamp) { + String date = writeTimestamp ? "${DateFormat("EEE MMM d @ H:m:s").format(DateTime.now())}: " : null; + return "${date ?? ""}$value \n"; + } + + static void e(String error, {StackTrace stack, bool writeTimestamp = true}) { + init().then((dynamic value) { + print("[ERROR] $error"); + if (writeToDisk) { + _errorFile.write(_formatLine("[ERROR] $value\n${stack?.toString()}", writeTimestamp), true); + } + }); + } +} diff --git a/flokk_src/lib/_internal/page_routes.dart b/flokk_src/lib/_internal/page_routes.dart new file mode 100644 index 0000000..b9fed32 --- /dev/null +++ b/flokk_src/lib/_internal/page_routes.dart @@ -0,0 +1,75 @@ +import 'package:animations/animations.dart'; +import 'package:flutter/material.dart'; + +typedef Widget PageBuilder(); + +class PageRoutes { + static const double kDefaultDuration = .35; + static const Curve kDefaultEaseFwd = Curves.easeOut; + static const Curve kDefaultEaseReverse = Curves.easeOut; + + static Route fade(PageBuilder pageBuilder, [double duration = kDefaultDuration]) { + return PageRouteBuilder( + transitionDuration: Duration(milliseconds: (duration * 1000).round()), + pageBuilder: (context, animation, secondaryAnimation) => pageBuilder(), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return FadeTransition(opacity: animation, child: child); + }, + ); + } + + static Route fadeThrough(PageBuilder pageBuilder, [double duration = kDefaultDuration]) { + return PageRouteBuilder( + transitionDuration: Duration(milliseconds: (duration * 1000).round()), + pageBuilder: (context, animation, secondaryAnimation) => pageBuilder(), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return FadeThroughTransition(animation: animation, secondaryAnimation: secondaryAnimation, child: child); + }, + ); + } + + static Route fadeScale(PageBuilder pageBuilder, [double duration = kDefaultDuration]) { + return PageRouteBuilder( + transitionDuration: Duration(milliseconds: (duration * 1000).round()), + pageBuilder: (context, animation, secondaryAnimation) => pageBuilder(), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return FadeScaleTransition(animation: animation, child: child); + }, + ); + } + + static Route sharedAxis(PageBuilder pageBuilder, + [SharedAxisTransitionType type = SharedAxisTransitionType.scaled, double duration = kDefaultDuration]) { + return PageRouteBuilder( + transitionDuration: Duration(milliseconds: (duration * 1000).round()), + pageBuilder: (context, animation, secondaryAnimation) => pageBuilder(), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + return SharedAxisTransition( + child: child, + animation: animation, + secondaryAnimation: secondaryAnimation, + transitionType: type, + ); + }, + ); + } + + static Route slide(PageBuilder pageBuilder, + {double duration = kDefaultDuration, + Offset startOffset = const Offset(1, 0), + Curve easeFwd = kDefaultEaseFwd, + Curve easeReverse = kDefaultEaseReverse}) { + return PageRouteBuilder( + transitionDuration: Duration(milliseconds: (duration * 1000).round()), + pageBuilder: (context, animation, secondaryAnimation) => pageBuilder(), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + bool reverse = animation.status == AnimationStatus.reverse; + return SlideTransition( + position: Tween(begin: startOffset, end: Offset(0, 0)) + .animate(CurvedAnimation(parent: animation, curve: reverse ? easeReverse : easeFwd)), + child: child, + ); + }, + ); + } +} diff --git a/flokk_src/lib/_internal/pointer_blocker.dart b/flokk_src/lib/_internal/pointer_blocker.dart new file mode 100644 index 0000000..4390bb5 --- /dev/null +++ b/flokk_src/lib/_internal/pointer_blocker.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; + +class MouseAndPointerBlocker extends StatelessWidget { + final Widget child; + final bool isEnabled; + + const MouseAndPointerBlocker({Key key, this.child, this.isEnabled}) : super(key: key); + + @override + Widget build(BuildContext context) { + //if(!isEnabled) return child; + return IgnorePointer( + ignoring: !isEnabled, + child: RawMaterialButton( + padding: EdgeInsets.zero, + onPressed: null, + child: child, + ), + ); + } +} diff --git a/flokk_src/lib/_internal/universal_file/io_file.dart b/flokk_src/lib/_internal/universal_file/io_file.dart new file mode 100644 index 0000000..dfbbfec --- /dev/null +++ b/flokk_src/lib/_internal/universal_file/io_file.dart @@ -0,0 +1,52 @@ +import 'dart:io'; + +import 'package:flokk/_internal/utils/path.dart'; +import 'package:path/path.dart' as p; + +import 'universal_file.dart'; + +class IoFileWriter implements UniversalFile { + Directory dataPath; + + @override + String fileName; + + IoFileWriter(this.fileName); + + String get fullPath => p.join(dataPath.path, fileName); + + Future getDataPath() async { + if (dataPath != null) return; + dataPath = Directory(await PathUtil.dataPath); + if (Platform.isWindows || Platform.isLinux) { + createDirIfNotExists(dataPath); + } + } + + @override + Future read() async { + await getDataPath(); + return await File("$fullPath").readAsString().catchError(print); + } + + @override + Future write(String value, [bool append = false]) async { + await getDataPath(); + await File("$fullPath") + .writeAsString( + value, + mode: append ? FileMode.append : FileMode.write, + ) + .catchError(print); + } + + static void createDirIfNotExists(Directory dir) async { + //Create directory if it doesn't exist + if (dir != null && !await dir.exists()) { + //Catch error since disk io can always fail. + await dir.create(recursive: true).catchError((e, stack) => print(e)); + } + } +} + +UniversalFile getPlatformFileWriter(String string) => IoFileWriter(string); diff --git a/flokk_src/lib/_internal/universal_file/universal_file.dart b/flokk_src/lib/_internal/universal_file/universal_file.dart new file mode 100644 index 0000000..94b91fc --- /dev/null +++ b/flokk_src/lib/_internal/universal_file/universal_file.dart @@ -0,0 +1,14 @@ +//If in web, this class will write a string to the prefs file, using filename as key +//If on desktop or mobile, write to the appData folder + +import 'universal_file_locator.dart' if (dart.library.html) 'web_file.dart' if (dart.library.io) 'io_file.dart'; + +abstract class UniversalFile { + String fileName; + + Future write(String value, [bool append = false]); + + Future read(); + + factory UniversalFile(String fileName) => getPlatformFileWriter(fileName); +} diff --git a/flokk_src/lib/_internal/universal_file/universal_file_locator.dart b/flokk_src/lib/_internal/universal_file/universal_file_locator.dart new file mode 100644 index 0000000..dfa6270 --- /dev/null +++ b/flokk_src/lib/_internal/universal_file/universal_file_locator.dart @@ -0,0 +1,4 @@ +import 'universal_file.dart'; + +UniversalFile getPlatformFileWriter(String fileName) => + throw UnsupportedError('Cannot create a fileWriter for "$fileName" without the packages dart:html or dart:io'); diff --git a/flokk_src/lib/_internal/universal_file/web_file.dart b/flokk_src/lib/_internal/universal_file/web_file.dart new file mode 100644 index 0000000..56c629d --- /dev/null +++ b/flokk_src/lib/_internal/universal_file/web_file.dart @@ -0,0 +1,40 @@ +import 'package:shared_preferences/shared_preferences.dart'; + +import 'universal_file.dart'; + +class WebFileWriter implements UniversalFile { + SharedPreferences prefs; + + @override + String fileName; + + String _lastWrite = ""; + + WebFileWriter(this.fileName); + + Future initPrefs() async { + prefs ??= await SharedPreferences.getInstance(); + } + + @override + Future read() async { + await initPrefs(); + String value = prefs.getString(fileName); + //print("Reading pref: $fileName = $value"); + return value; + } + + @override + Future write(String value, [bool append = false]) async { + await initPrefs(); + if (append && _lastWrite == null) { + _lastWrite = await read(); + value = _lastWrite + value; + } + //print("Write: $fileName = $value"); + _lastWrite = value; + await prefs.setString(fileName, value); + } +} + +UniversalFile getPlatformFileWriter(String fileName) => WebFileWriter(fileName); diff --git a/flokk_src/lib/_internal/universal_picker/desktop_picker.dart b/flokk_src/lib/_internal/universal_picker/desktop_picker.dart new file mode 100644 index 0000000..1ea2051 --- /dev/null +++ b/flokk_src/lib/_internal/universal_picker/desktop_picker.dart @@ -0,0 +1,44 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:flokk/_internal/utils/picker.dart'; +import 'package:flutter/foundation.dart'; + +import 'universal_picker.dart'; + +class DesktopPicker implements UniversalPicker { + @override + ValueChanged onChange; + + @override + Uint8List byteData; + + @override + String base64Data; + + //accept: filters for files (ie. images, etc), expecting the same format as that found for html input accept https://www.w3schools.com/TAGS/att_input_accept.asp + DesktopPicker({String accept}) { + // The desktop file picker plugin doesn't accept these input accept strings, + // the pickImage function has a hardcoded image filter in it + } + + void _openPicker() async { + final imagePath = await pickImage(confirmText: "Upload image"); + if (imagePath == null) + // The user most likely pressed cancel or we don't have an image for some other reason, return + return; + final bytes = await File(imagePath).readAsBytes(); + byteData = bytes; + base64Data = Base64Encoder().convert(bytes.toList()); + + onChange(base64Data); + } + + @override + void open() { + _openPicker(); + } +} + +UniversalPicker getPlatformPicker({String accept}) => DesktopPicker(accept: accept); diff --git a/flokk_src/lib/_internal/universal_picker/universal_picker.dart b/flokk_src/lib/_internal/universal_picker/universal_picker.dart new file mode 100644 index 0000000..0cbc889 --- /dev/null +++ b/flokk_src/lib/_internal/universal_picker/universal_picker.dart @@ -0,0 +1,21 @@ +//If in web, use the FileUploadInputElement found in dart:html +//If on desktop or mobile, use ... + +import 'dart:typed_data'; + +import 'package:flutter/material.dart'; + +import 'universal_picker_locator.dart' + if (dart.library.html) 'web_picker.dart' + if (dart.library.io) 'desktop_picker.dart'; + +abstract class UniversalPicker { + Uint8List byteData; + String base64Data; + + ValueChanged onChange; + + void open(); + + factory UniversalPicker({String accept}) => getPlatformPicker(accept: accept); +} diff --git a/flokk_src/lib/_internal/universal_picker/universal_picker_locator.dart b/flokk_src/lib/_internal/universal_picker/universal_picker_locator.dart new file mode 100644 index 0000000..52b0dee --- /dev/null +++ b/flokk_src/lib/_internal/universal_picker/universal_picker_locator.dart @@ -0,0 +1,4 @@ +import 'universal_picker.dart'; + +UniversalPicker getPlatformPicker({String accept}) => + throw UnsupportedError('Cannot create a picker without the packages dart:html or whatever is used for desktop'); diff --git a/flokk_src/lib/_internal/universal_picker/web_picker.dart b/flokk_src/lib/_internal/universal_picker/web_picker.dart new file mode 100644 index 0000000..04cab68 --- /dev/null +++ b/flokk_src/lib/_internal/universal_picker/web_picker.dart @@ -0,0 +1,54 @@ +import 'dart:convert'; +import 'dart:html'; +import 'dart:typed_data'; + +import 'package:flutter/foundation.dart'; + +import 'universal_picker.dart'; + +class WebPicker implements UniversalPicker { + @override + ValueChanged onChange; + + @override + Uint8List byteData; + + @override + String base64Data; + + InputElement uploadInput; + FileReader reader; + + WebPicker({String accept}) { + print("Web Picker Constructor: accept: $accept"); + reader = FileReader(); + reader.onLoad.listen(handleFileLoad); + + uploadInput = FileUploadInputElement(); + uploadInput.accept = accept ?? ""; + uploadInput.draggable = true; + + uploadInput.onChange.listen(handleInputChange); + } + + @override + void open() { + print("Web Picker open"); + uploadInput.click(); + } + + void handleInputChange(Event e) { + if (uploadInput.files?.isNotEmpty ?? false) { + File f = uploadInput.files.first; + reader.readAsDataUrl(f); + } + } + + void handleFileLoad(ProgressEvent e) { + base64Data = reader.result.toString().split(",").last; + byteData = Base64Decoder().convert(base64Data); + onChange(base64Data); + } +} + +UniversalPicker getPlatformPicker({String accept}) => WebPicker(accept: accept); diff --git a/flokk_src/lib/_internal/url_launcher/url_launcher.dart b/flokk_src/lib/_internal/url_launcher/url_launcher.dart new file mode 100644 index 0000000..65e3445 --- /dev/null +++ b/flokk_src/lib/_internal/url_launcher/url_launcher.dart @@ -0,0 +1,41 @@ +import 'url_launcher_locator.dart' + if (dart.library.html) 'url_launcher_web.dart' + if (dart.library.io) 'url_launcher_io.dart'; + +class UrlLauncher { + static Future open(String value) async { + if (value == null) return false; + bool success = await urlLauncherOpen(value); + if (!success) print('Could not launch $value'); + return success; + } + + static Future openHttp(String value) async { + if (value == null) return false; + if (!value.contains("http") && !value.contains("http")) { + value = "http://$value"; + } + bool success = await urlLauncherOpen(value); + if (!success) print('Could not launch $value'); + return success; + } + + static void openPhoneNumber(String value) { + if (value == null) return; + value = RegExp(r"([\d+])").allMatches(value).map((m) => m.group(0)).join(""); + open("https://hangouts.google.com/?action=chat&pn=%2B$value&"); + } + + static void openEmail(String value) { + if (value == null) return; + + /// TODO: Add regEx check, don't bother opening if it's not a valid email + open("mailto:$value"); + } + + static void openGoogleMaps(String value) => open("https://www.google.com/maps/search/${Uri.encodeFull(value)}/"); + + static void openGitUser(String value) => open("https://github.com/$value/"); + + static void openTwitterUser(String value) => open("https://twitter.com/${value.replaceAll("@", "")}/"); +} diff --git a/flokk_src/lib/_internal/url_launcher/url_launcher_io.dart b/flokk_src/lib/_internal/url_launcher/url_launcher_io.dart new file mode 100644 index 0000000..b5bd52f --- /dev/null +++ b/flokk_src/lib/_internal/url_launcher/url_launcher_io.dart @@ -0,0 +1,25 @@ +import "dart:io" as io; +import 'dart:io'; + +import 'package:flokk/_internal/log.dart'; +import 'package:universal_platform/universal_platform.dart'; + +Future urlLauncherOpen(String url) async { + ProcessResult result; + try { + if (UniversalPlatform.isLinux) { + result = await io.Process.run("xdg-open", [ + url, + ]); + } else if (UniversalPlatform.isWindows) { + url = url.replaceAll("&", "^&"); + result = await io.Process.run("start", [url], runInShell: true); + } else if (UniversalPlatform.isMacOS) { + result = await io.Process.run("open", [url]); + } + } on ProcessException catch (e) { + Log.e(e?.message); + } + ; + return result?.exitCode == 0; +} diff --git a/flokk_src/lib/_internal/url_launcher/url_launcher_locator.dart b/flokk_src/lib/_internal/url_launcher/url_launcher_locator.dart new file mode 100644 index 0000000..3b1000a --- /dev/null +++ b/flokk_src/lib/_internal/url_launcher/url_launcher_locator.dart @@ -0,0 +1 @@ +Future urlLauncherOpen(String url) => throw UnsupportedError('Unimplemented Url Opener'); diff --git a/flokk_src/lib/_internal/url_launcher/url_launcher_web.dart b/flokk_src/lib/_internal/url_launcher/url_launcher_web.dart new file mode 100644 index 0000000..626d4e7 --- /dev/null +++ b/flokk_src/lib/_internal/url_launcher/url_launcher_web.dart @@ -0,0 +1,12 @@ +import 'package:url_launcher/url_launcher.dart'; + +Future urlLauncherOpen(String url) async { + try { + if (await canLaunch(url)) { + return await launch(url); + } + } catch (e) { + print(e); + } + return false; +} diff --git a/flokk_src/lib/_internal/utils/build_utils.dart b/flokk_src/lib/_internal/utils/build_utils.dart new file mode 100644 index 0000000..69929c2 --- /dev/null +++ b/flokk_src/lib/_internal/utils/build_utils.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; + +class BuildUtils { + + static void getFutureSizeFromGlobalKey(GlobalKey key, Function(Size size) callback) { + Future.microtask(() { + Size size = getSizeFromContext(key.currentContext); + if (size != null) { + callback(size); + } + }); + } + + static Size getSizeFromContext(BuildContext context) { + RenderBox rb = context.findRenderObject(); + return rb?.size; + } + + static Offset getOffsetFromContext(BuildContext context, [Offset offset = null]) { + RenderBox rb = context.findRenderObject(); + return rb?.localToGlobal(offset ?? Offset.zero); + } + + +} \ No newline at end of file diff --git a/flokk_src/lib/_internal/utils/color_utils.dart b/flokk_src/lib/_internal/utils/color_utils.dart new file mode 100644 index 0000000..6838dbf --- /dev/null +++ b/flokk_src/lib/_internal/utils/color_utils.dart @@ -0,0 +1,21 @@ +import 'dart:ui'; + +import 'package:flutter/cupertino.dart'; + +class ColorUtils { + static Color shiftHsl(Color c, [double amt = 0]) { + var hslc = HSLColor.fromColor(c); + return hslc.withLightness((hslc.lightness + amt).clamp(0.0, 1.0)).toColor(); + } + + static Color parseHex(String value) => Color(int.parse(value.substring(1, 7), radix: 16) + 0xFF000000); + + static Color blend(Color dst, Color src, double opacity) { + return Color.fromARGB( + 255, + (dst.red.toDouble() * (1.0 - opacity) + src.red.toDouble() * opacity).toInt(), + (dst.green.toDouble() * (1.0 - opacity) + src.green.toDouble() * opacity).toInt(), + (dst.blue.toDouble() * (1.0 - opacity) + src.blue.toDouble() * opacity).toInt(), + ); + } +} diff --git a/flokk_src/lib/_internal/utils/date_utils.dart b/flokk_src/lib/_internal/utils/date_utils.dart new file mode 100644 index 0000000..822e937 --- /dev/null +++ b/flokk_src/lib/_internal/utils/date_utils.dart @@ -0,0 +1,5 @@ +import 'package:intl/intl.dart'; + +class DateFormats { + static DateFormat google = DateFormat.yMd(); +} diff --git a/flokk_src/lib/_internal/utils/path.dart b/flokk_src/lib/_internal/utils/path.dart new file mode 100644 index 0000000..95108c7 --- /dev/null +++ b/flokk_src/lib/_internal/utils/path.dart @@ -0,0 +1,20 @@ +import 'dart:io'; + +import 'package:path_provider/path_provider.dart'; +import 'package:xdg_directories/xdg_directories.dart' as xdgDirectories; + +class PathUtil { + static Future get dataPath async { + String result; + if (Platform.isLinux) { + result = "${xdgDirectories.dataHome.path}/flokk-contacts"; + } else { + result = (await getApplicationSupportDirectory().catchError(print)).path; + } + return result; + } + + static Future get homePath async { + return "~/"; + } +} diff --git a/flokk_src/lib/_internal/utils/picker.dart b/flokk_src/lib/_internal/utils/picker.dart new file mode 100644 index 0000000..8e2a9df --- /dev/null +++ b/flokk_src/lib/_internal/utils/picker.dart @@ -0,0 +1,27 @@ +import 'package:file_chooser/file_chooser.dart'; + +import 'path.dart'; + +Future pickImage({String confirmText, String initialPath}) async { + confirmText ??= "Pick Image"; + initialPath ??= await PathUtil.dataPath; + + final result = await showOpenPanel( + initialDirectory: initialPath, + allowedFileTypes: [ + FileTypeFilterGroup( + label: "images", + fileExtensions: ["png", "jpg", "jpeg", "gif", "webm"], + ), + ], + allowsMultipleSelection: false, + canSelectDirectories: false, + confirmButtonText: confirmText, + ); + + if (result.canceled || result.paths.isEmpty) { + return null; + } + + return result.paths[0]; +} diff --git a/flokk_src/lib/_internal/utils/rest_utils.dart b/flokk_src/lib/_internal/utils/rest_utils.dart new file mode 100644 index 0000000..96ebba2 --- /dev/null +++ b/flokk_src/lib/_internal/utils/rest_utils.dart @@ -0,0 +1,12 @@ +class RESTUtils { + static String encodeParams(Map params) { + var s = ""; + params.forEach((key, value) { + if (value != null && value != "null") { + var urlEncode = Uri.encodeFull(value); + s += "&$key=$urlEncode"; + } + }); + return s; + } +} diff --git a/flokk_src/lib/_internal/utils/string_utils.dart b/flokk_src/lib/_internal/utils/string_utils.dart new file mode 100644 index 0000000..e6acf1b --- /dev/null +++ b/flokk_src/lib/_internal/utils/string_utils.dart @@ -0,0 +1,41 @@ +import 'dart:ui'; + +import 'package:flutter/material.dart'; + +class StringUtils { + static bool isEmpty(String s) { + return s == null || s.trim().isEmpty; + } + + static bool isNotEmpty(String s) => !isEmpty(s); + + static bool isEmailValid(String value) { + if (StringUtils.isEmpty(value)) return false; + return RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(value); + } + + // Here it is! + static Size measure(String text, TextStyle style, {int maxLines: 1, TextDirection direction = TextDirection.ltr}) { + final TextPainter textPainter = + TextPainter(text: TextSpan(text: text, style: style), maxLines: maxLines, textDirection: direction) + ..layout(minWidth: 0, maxWidth: double.infinity); + return textPainter.size; + } + + static double measureLongest(List items, TextStyle style, [maxItems = null]) { + double l = 0; + if (maxItems != null && maxItems < items.length) { + items.length = maxItems; + } + for (var item in items) { + double m = StringUtils.measure(item, style).width; + if (m > l) l = m; + } + return l; + } + + /// Gracefully handles null values, and skips the suffix when null + static String safeGet(String value, [String suffix]) { + return (value ?? "") + (!StringUtils.isEmpty(value) ? suffix ?? "" : ""); + } +} diff --git a/flokk_src/lib/_internal/utils/utils.dart b/flokk_src/lib/_internal/utils/utils.dart new file mode 100644 index 0000000..ba650c9 --- /dev/null +++ b/flokk_src/lib/_internal/utils/utils.dart @@ -0,0 +1,21 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:flutter/services.dart'; + +class Utils { + static void hideKeyboard() { + SystemChannels.textInput.invokeMethod('TextInput.hide'); + } + + static bool get isMouseConnected => RendererBinding.instance.mouseTracker.mouseIsConnected; + + static void unFocus() { + WidgetsBinding.instance.focusManager.primaryFocus?.unfocus(); + } + + static void benchmark(String name, void Function() test) { + int ms = DateTime.now().millisecondsSinceEpoch; + test(); + print("Benchmark: $name == ${DateTime.now().millisecondsSinceEpoch - ms}ms"); + } +} diff --git a/flokk_src/lib/_internal/widget_view.dart b/flokk_src/lib/_internal/widget_view.dart new file mode 100644 index 0000000..3994178 --- /dev/null +++ b/flokk_src/lib/_internal/widget_view.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +/* +class MyWidget extends StatefulWidget { + @override + _MyWidgetController createState() => _MyWidgetController(); +} + +class _MyWidgetController extends State { + @override + Widget build(BuildContext context) => _MyWidgetView(this); +} + +class _MyWidgetView extends WidgetView { + _MyWidgetView(_MyWidgetController state) : super(state); + + @override + Widget build(BuildContext context) { + return Container(); + } +} + */ +abstract class WidgetView extends StatelessWidget { + final T2 state; + + T1 get widget => (state as State).widget as T1; + + const WidgetView(this.state, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context); +} + +abstract class StatelessView extends StatelessWidget { + final T1 widget; + + const StatelessView(this.widget, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context); +} diff --git a/flokk_src/lib/api_keys.dart b/flokk_src/lib/api_keys.dart new file mode 100644 index 0000000..eba269d --- /dev/null +++ b/flokk_src/lib/api_keys.dart @@ -0,0 +1,19 @@ +/* +NOTE: In order to run the the app you must enter at least the Google API keys. +Twitter and Git can be omitted, but the Social features of the app will not work. +Keys should _not_ be committed to a public repo due to per-app API quotas which can quickly be exhausted. +*/ +class ApiKeys { + /// Google + String googleClientId = ""; + String googleClientSecret = ""; + String googleWebClientId = ""; + + /// Twitter + String twitterKey = ""; + String twitterSecret = ""; + + /// GitHub + String githubKey = ""; + String githubSecret = ""; +} diff --git a/flokk_src/lib/app_extensions.dart b/flokk_src/lib/app_extensions.dart new file mode 100644 index 0000000..bf155a6 --- /dev/null +++ b/flokk_src/lib/app_extensions.dart @@ -0,0 +1,5 @@ +export 'package:flokk/_internal/components/animated_panel.dart'; +export 'package:flokk/_internal/components/clickable_extensions.dart'; +export 'package:sized_context/sized_context.dart'; +export 'package:styled_widget/styled_widget.dart'; +export 'package:time/time.dart'; \ No newline at end of file diff --git a/flokk_src/lib/commands/abstract_command.dart b/flokk_src/lib/commands/abstract_command.dart new file mode 100644 index 0000000..8dabdae --- /dev/null +++ b/flokk_src/lib/commands/abstract_command.dart @@ -0,0 +1,90 @@ +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/commands/dialogs/show_service_error_command.dart'; +import 'package:flokk/commands/refresh_auth_tokens_command.dart'; +import 'package:flokk/globals.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/auth_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/services/github_rest_service.dart'; +import 'package:flokk/services/google_rest/google_rest_service.dart'; +import 'package:flokk/services/twitter_rest_service.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +abstract class AbstractCommand { + static BuildContext _lastKnownRoot; + + /// Provide all commands access to the global context & navigator + BuildContext context; + + NavigatorState get rootNav => AppGlobals.nav; + + AbstractCommand(BuildContext c) { + /// Get root context + /// If we're passed a context that is known to be root, skip the lookup, it will throw an error otherwise. + context = (c == _lastKnownRoot) ? c : Provider.of(c, listen: false); + _lastKnownRoot = context; + } + + T getProvided() => Provider.of(context, listen: false); + + /// Convenience lookup methods for all commands to share + /// + /// Models + AuthModel get authModel => getProvided(); + + ContactsModel get contactsModel => getProvided(); + + TwitterModel get twitterModel => getProvided(); + + GithubModel get githubModel => getProvided(); + + AppModel get appModel => getProvided(); + + /// Services + GoogleRestService get googleRestService => getProvided(); + + TwitterRestService get twitterService => getProvided(); + + GithubRestService get gitService => getProvided(); +} + +/// ////////////////////////////////////////////////////////////////// +/// MIX-INS +/// ////////////////////////////////////////////////////////////////// + +mixin CancelableCommandMixin on AbstractCommand { + bool isCancelled = false; + + bool cancel() => isCancelled = true; +} + +mixin AuthorizedServiceCommandMixin on AbstractCommand { + bool ignoreErrors = false; + + /// Runs a service that refreshes Auth if needed, and checks for errors on completion + Future executeAuthServiceCmd(Future Function() cmd) async { + /// Bail early if we're offline + if (!appModel.isOnline) { + Dialogs.show(OkCancelDialog( + title: "No Connection", + message: "It appears your device is offline. Please check your connection and try again.", + onOkPressed: () => rootNav.pop(), + )); + } + + /// Refresh token if needed + await RefreshAuthTokensCommand(context).execute(onlyIfExpired: true); + + /// Execute command + HttpResponse r = await cmd(); + + /// Check for errors + if (!ignoreErrors && r != null) { + ShowServiceErrorCommand(context).execute(r); + } + } +} diff --git a/flokk_src/lib/commands/bootstrap_command.dart b/flokk_src/lib/commands/bootstrap_command.dart new file mode 100644 index 0000000..3bbbd7e --- /dev/null +++ b/flokk_src/lib/commands/bootstrap_command.dart @@ -0,0 +1,121 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/utils/path.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/api_keys.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/commands/refresh_auth_tokens_command.dart'; +import 'package:flokk/commands/social/refresh_social_command.dart'; +import 'package:flokk/commands/web_sign_in_command.dart'; +import 'package:flokk/main.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:universal_platform/universal_platform.dart'; +import 'package:window_size/window_size.dart'; + +class BootstrapCommand extends AbstractCommand { + BootstrapCommand(BuildContext context) : super(context); + + Future execute() async { + /// Let the splash view sit for a bit. Mainly for aesthetics and to ensure a smooth intro animation. + await Future.delayed(.5.seconds); + + /// Display startup logs + Log.writeToDisk = false; + Log.p("/##################################################", false); + Log.p("[BootstrapCommand]"); + if (!UniversalPlatform.isWeb) { + Log.p("DataDir is: ${await PathUtil.dataPath}"); + } + Log.p("##################################################", false); + + /// Define default locale + Intl.defaultLocale = 'en_US'; + + /// Set minimal Window size + // TODO: Remove condition once other implementations are available + if (UniversalPlatform.isMacOS) setWindowMinSize(Size(500, 500)); + + /// Handle version upgrades + if (appModel.version != AppModel.kCurrentVersion) { + appModel.upgradeToVersion(AppModel.kCurrentVersion); + } + + /// Load saved data into necessary models + bool errorLoadingData = false; + await authModel.load().catchError((e, s) { + print("[BootstrapCommand] Error loading AuthModel: $s"); + errorLoadingData = true; + }); + await twitterModel.load().catchError((e, s) { + print("[BootstrapCommand] Error loading TwitterModel: $s"); + errorLoadingData = true; + }); + await githubModel.load().catchError((e, s) { + print("[BootstrapCommand] Error loading GithubModel: $s"); + errorLoadingData = true; + }); + await contactsModel.load().catchError((e, s) { + print("[BootstrapCommand] Error loading ContactsModel: $s"); + errorLoadingData = true; + }); + + /// Reset models if there are any errors, or if the app version has been updated + if (errorLoadingData || appModel.version != AppModel.kCurrentVersion) { + authModel.reset(); + twitterModel.reset(); + githubModel.reset(); + contactsModel.reset(); + } + + /// //////////////////////////////////////////////////////////////// + /// Debug: Inject authModel in web dev builds for quicker local testing + /// TODO: Remove before release + bool sideStepLoginFlow = (kDebugMode || kForceWebLogin) && (UniversalPlatform.isWeb || UniversalPlatform.isAndroid); + if (sideStepLoginFlow) { + // Force login on the web by injecting a known refresh token, which we can use to fetch a valid authKey + authModel.googleRefreshToken = + "1//06TVHZgXSuhqfCgYIARAAGAYSNwF-L9IrPuIVzs3JSYt1xzWSXnK8Vx5cUPgYrEN4FouCtOy1j01hosURDlWogymULquE-e1lXm0"; + await RefreshAuthTokensCommand(context).execute(); + await (RefreshContactsCommand(context)..ignoreErrors = true).execute(); + } + + /// //////////////////////////////////////////////////////////////////////// + + /// After we've loaded the models, kickoff an auth-token refresh, our old one is likely expired. + bool signInError = false; + if (authModel.hasAuthKey && !sideStepLoginFlow) { + /// Try and refresh authKey and Contacts. + bool authSuccess; + if (UniversalPlatform.isWeb) { + // On web, perform a silentSignIn to refresh the OAuth token + authSuccess = await WebSignInCommand(context).execute(silentSignIn: true); + } else { + // On desktop, refresh the authToken manually + authSuccess = await RefreshAuthTokensCommand(context).execute(); + // Make a special exemption for a failed auth-refresh, if we have no key at all. Assume this is running in a test mode. + if(!authSuccess && StringUtils.isEmpty(ApiKeys().googleClientId)){ + authSuccess = true; + AppModel.forceIgnoreGoogleApiCalls = true; + } + } + // Load contacts + ServiceResult contactsResult = await (RefreshContactsCommand(context)..ignoreErrors = true).execute(); + if (contactsResult.success) { + await RefreshSocialCommand(context).execute(contactsModel.allContacts); + } + // Check that both the authCall and contactsLoad was successful + signInError = !authSuccess || !contactsResult.success; + } + + Log.p("#########################", false); + Log.p("BootstrapCommand Complete"); + Log.p("#########################", false); + + return !signInError && authModel.hasAuthKey; + } +} diff --git a/flokk_src/lib/commands/check_connection_command.dart b/flokk_src/lib/commands/check_connection_command.dart new file mode 100644 index 0000000..172e403 --- /dev/null +++ b/flokk_src/lib/commands/check_connection_command.dart @@ -0,0 +1,27 @@ +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:universal_platform/universal_platform.dart'; + +class CheckConnectionCommand extends AbstractCommand with CancelableCommandMixin { + CheckConnectionCommand(BuildContext context) : super(context); + + /// Checks if we can connect to the internet. + /// If repeat == true, recursively calls itself forever. + Future execute([bool repeat = false, double wait = 10]) async { + if (UniversalPlatform.isWeb) { + appModel.isOnline = true; + } else { + String url = UniversalPlatform.isWeb ? "flokk.app" : "google.com"; + appModel.isOnline = (await HttpClient.head("https://$url")).success; + if (repeat) { + Future.delayed(wait.seconds).then((value) { + if (isCancelled) return; + execute(true); + }); + } + } + return appModel.isOnline; + } +} diff --git a/flokk_src/lib/commands/contacts/delete_contact_command.dart b/flokk_src/lib/commands/contacts/delete_contact_command.dart new file mode 100644 index 0000000..c664003 --- /dev/null +++ b/flokk_src/lib/commands/contacts/delete_contact_command.dart @@ -0,0 +1,52 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/google_rest/google_rest_contacts_service.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flutter/cupertino.dart'; + +class DeleteContactCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + DeleteContactCommand(BuildContext c) : super(c); + + Future execute(List contacts, {Function() onDeleteConfirmed}) async { + if (contacts == null || contacts.isEmpty || AppModel.forceIgnoreGoogleApiCalls) return false; + Log.p("[DeleteContactCommand]"); + String txt = contacts.length > 1 ? "these ${contacts.length} contacts" : "this contact"; + bool doDelete = await Dialogs.show( + OkCancelDialog( + message: "Are you sure you want to delete $txt?", + okLabel: "Yes", + cancelLabel: "No", + onOkPressed: () => rootNav.pop(true), + onCancelPressed: () => rootNav.pop(false), + ), + ); + if (!doDelete) return false; + onDeleteConfirmed?.call(); + + GoogleRestContactsService service = googleRestService.contacts; + ServiceResult result; + await executeAuthServiceCmd(() async { + /// Update local data optimistically + for (var c in contacts) { + contactsModel.removeContact(c); + } + + /// Create a list of futures + List> futures = + contacts.map((c) => service.delete(authModel.googleAccessToken, c)).toList(); + // Dispatch them all at once + List results = await Future.wait(futures); + //Request succeeded? + result = results[0]; + if (result.success) { + RefreshContactsCommand(context).execute(); + } + return result.response; + }); + return result.success; + } +} diff --git a/flokk_src/lib/commands/contacts/delete_pic_command.dart b/flokk_src/lib/commands/contacts/delete_pic_command.dart new file mode 100644 index 0000000..4b0e8ff --- /dev/null +++ b/flokk_src/lib/commands/contacts/delete_pic_command.dart @@ -0,0 +1,42 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class DeletePicCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + DeletePicCommand(BuildContext c) : super(c); + + Future execute(ContactData contact) async { + if (contact == null || AppModel.forceIgnoreGoogleApiCalls) return false; + Log.p("[DeletePicCommand]"); + + bool doDelete = await Dialogs.show( + OkCancelDialog( + message: "Are you sure you want to delete profile pic?", + okLabel: "Yes", + cancelLabel: "No", + onOkPressed: () => rootNav.pop(true), + onCancelPressed: () => rootNav.pop(false), + ), + ); + if (!doDelete) return false; + + //TODO: replace the profile pic + //Update local data optimistically + ServiceResult result; + await executeAuthServiceCmd(() async { + //Update remove database + result = await googleRestService.contacts.deletePic(authModel.googleAccessToken, contact); + //Request succeeded? + if (result.success) { + RefreshContactsCommand(context).execute(); + } + return result.response; + }); + return result?.success; + } +} diff --git a/flokk_src/lib/commands/contacts/refresh_contacts_command.dart b/flokk_src/lib/commands/contacts/refresh_contacts_command.dart new file mode 100644 index 0000000..eeedf56 --- /dev/null +++ b/flokk_src/lib/commands/contacts/refresh_contacts_command.dart @@ -0,0 +1,49 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/groups/refresh_contact_groups_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/services/google_rest/google_rest_contacts_service.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class RefreshContactsCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + RefreshContactsCommand(BuildContext c) : super(c); + + Future execute({bool skipGroups = false}) async { + Log.p("[RefreshContactsCommand]"); + + ServiceResult result; + await executeAuthServiceCmd(() async { + // Check if we have a sync token... + String syncToken = authModel.googleSyncToken ?? ""; + if(contactsModel.allContacts.isEmpty){ + syncToken = null; + } + result = await googleRestService.contacts.getAll(authModel.googleAccessToken, syncToken); + // Now do we have a sync token? + syncToken = result.content.syncToken ?? ""; + List contacts = result.content.contacts ?? []; + if (result.success) { + authModel.googleSyncToken = syncToken; + //Iterate through returned contacts and either update existing contact or append + for (ContactData n in contacts) { + if (contactsModel.allContacts.any((x) => x.id == n.id)) { + contactsModel.swapContactById(n); + } else { + contactsModel.addContact(n); + } + } + contactsModel.allContacts.removeWhere((ContactData c) => c.isDeleted); + contactsModel.notify(); + contactsModel.scheduleSave(); + } + //Update the groups? + if (!skipGroups) { + await RefreshContactGroupsCommand(context).execute(); + } + Log.p("Contacts loaded = ${contacts?.length ?? 0}"); + return result.response; + }); + return result; + } +} diff --git a/flokk_src/lib/commands/contacts/toggle_favorite_command.dart b/flokk_src/lib/commands/contacts/toggle_favorite_command.dart new file mode 100644 index 0000000..8516812 --- /dev/null +++ b/flokk_src/lib/commands/contacts/toggle_favorite_command.dart @@ -0,0 +1,39 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/groups/refresh_contact_groups_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/google_rest/google_rest_service.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class ToggleFavoriteCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + ToggleFavoriteCommand(BuildContext c) : super(c); + + Future execute(ContactData contact) async { + if (contact == null) return null; + Log.p("[ToggleFavoriteCommand]"); + ServiceResult result; + await executeAuthServiceCmd(() async { + GroupData group = contactsModel.allGroups?.firstWhere( + (x) => x.id == GoogleRestService.kStarredGroupId, + orElse: () => GroupData()..id = GoogleRestService.kStarredGroupId, + ); + // Toggle the contact optimistically + contact.isStarred = !contact.isStarred; + contactsModel.notify(); + + if (contact.isStarred) { + //add to favorites group + result = await googleRestService.groups.modify(authModel.googleAccessToken, group, addContacts: [contact]); + } else { + //remove from favorites group + result = await googleRestService.groups.modify(authModel.googleAccessToken, group, removeContacts: [contact]); + } + // Dispatch background refresh command to make sure we're in sync + RefreshContactGroupsCommand(context).execute(onlyStarred: true); + return result.response; + }); + return result.success; + } +} diff --git a/flokk_src/lib/commands/contacts/update_contact_command.dart b/flokk_src/lib/commands/contacts/update_contact_command.dart new file mode 100644 index 0000000..5ca593b --- /dev/null +++ b/flokk_src/lib/commands/contacts/update_contact_command.dart @@ -0,0 +1,72 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/commands/social/refresh_social_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class UpdateContactCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + UpdateContactCommand(BuildContext c) : super(c); + + Future execute(ContactData contact, {bool updateSocial: false, bool tryAgainOnError = true}) async { + if (contact == null || AppModel.forceIgnoreGoogleApiCalls) return null; + Log.p("[UpdateContactCommand]"); + + ServiceResult result; + await executeAuthServiceCmd(() async { + if (contact.isNew) { + /// Update remote database + result = await googleRestService.contacts.create(authModel.googleAccessToken, contact); + if (result.success) { + result.content.isRecentlyAdded = true; + contactsModel.addContact(result.content); + } + } else { + // Check whether git or twitter changed, if they did we want to reset their cooldowns + ContactData oldContact = contactsModel.getContactById(contact.id); + bool gitChanged = oldContact.gitUsername != contact.gitUsername; + if (gitChanged) { + githubModel.removeEvents(oldContact.gitUsername); + githubModel.scheduleSave(); + contactsModel.clearGitCooldown(contact); + updateSocial = contact.hasGit; + } + bool twitterChanged = oldContact.twitterHandle != contact.twitterHandle; + if (twitterChanged) { + twitterModel.removeTweets(oldContact.twitterHandle); + twitterModel.scheduleSave(); + contactsModel.clearTwitterCooldown(contact); + updateSocial = contact.hasTwitter; + } + + /// Update local data optimistically + contactsModel.swapContactById(contact); + + //Attempt to fetch social (does nothing if no social handles available) + if (updateSocial) RefreshSocialCommand(context).execute([contact]); + + /// Update remote database + result = await googleRestService.contacts.set(authModel.googleAccessToken, contact); + + /// Since we get back the updated object, we can inject it straight into the model to keep us in sync + if (result.success) { + contactsModel.swapContactById(result.content); + } else if (tryAgainOnError && + result.response.statusCode == 400 && + result.response.body.contains("person.etag")) { + //ignore the error to stop error popup + ignoreErrors = true; + await RefreshContactsCommand(context).execute(skipGroups: true); + //try again with updated etag + contact.etag = contactsModel.getContactById(contact.id).etag; + execute(contact, tryAgainOnError: false); + } + } + + return result.response; + }); + return result.success ? result.content : null; + } +} diff --git a/flokk_src/lib/commands/contacts/update_pic_command.dart b/flokk_src/lib/commands/contacts/update_pic_command.dart new file mode 100644 index 0000000..d5f2b85 --- /dev/null +++ b/flokk_src/lib/commands/contacts/update_pic_command.dart @@ -0,0 +1,28 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class UpdatePicCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + UpdatePicCommand(BuildContext c) : super(c); + + Future execute(ContactData contact, String base64Pic) async { + if (contact == null || AppModel.forceIgnoreGoogleApiCalls) return false; + Log.p("[UpdatePicCommand]"); + + ServiceResult result; + await executeAuthServiceCmd(() async { + result = await googleRestService.contacts.updatePic(authModel.googleAccessToken, contact, base64Pic); + if (result.success) { + contact.profilePic = result.content.profilePic; + contact.isDefaultPic = result.content.isDefaultPic; + await RefreshContactsCommand(context).execute(); + } + return result.response; + }); + return result.success; + } +} diff --git a/flokk_src/lib/commands/dialogs/show_discard_warning_command.dart b/flokk_src/lib/commands/dialogs/show_discard_warning_command.dart new file mode 100644 index 0000000..c1ef701 --- /dev/null +++ b/flokk_src/lib/commands/dialogs/show_discard_warning_command.dart @@ -0,0 +1,21 @@ +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class ShowDiscardWarningCommand extends AbstractCommand { + ShowDiscardWarningCommand(BuildContext c) : super(c); + + Future execute() async { + if (appModel.selectedContact == null) return true; + bool isNew = appModel.selectedContact.isNew; + return await Dialogs.show(OkCancelDialog( + okLabel: "DISCARD", + title: "UNSAVED CHANGES FOR ${isNew ? "NEW " : ""}CONTACT", + message: "You have unsaved changes which will be lost if you navigate away.\n" + "Are you sure you wish to discard these changes?", + onOkPressed: () => rootNav.pop(true), + onCancelPressed: () => rootNav.pop(false), + )); + } +} diff --git a/flokk_src/lib/commands/dialogs/show_service_error_command.dart b/flokk_src/lib/commands/dialogs/show_service_error_command.dart new file mode 100644 index 0000000..9ec1cd0 --- /dev/null +++ b/flokk_src/lib/commands/dialogs/show_service_error_command.dart @@ -0,0 +1,83 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/check_connection_command.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:universal_platform/universal_platform.dart'; + +class ShowServiceErrorCommand extends AbstractCommand { + ShowServiceErrorCommand(BuildContext context) : super(context); + + static bool isShowingError = false; + + Future execute(HttpResponse response, {String customMessage}) async { + //If response has no errors, return false to indicate no error was shown + if (response.success) return false; + Log.p("[ShowServiceErrorCommand]"); + + String msg; + if (StringUtils.isNotEmpty(customMessage)) { + msg = customMessage; + } else { + msg = + "An unknown error occured (${response.statusCode}). Try checking your internet connection or re-starting the application."; + // 400 Errors (denied request) + if (response.errorType == NetErrorType.denied) { + //Default message + if (response.statusCode == 401) { + msg = + "Something went wrong with authorization, you should probably ${UniversalPlatform.isWeb ? "refresh" : "restart"} the app"; + } else { + //Use message from server if available + Map json = jsonDecode(response.body)["error"]; + if (json?.containsKey("message") ?? false) { + msg = json["message"]; + } else { + msg = "Unable to connect to online services: Internal Server Error (${response.statusCode})"; + } + } + } + // 500 Errors (server) + else if (response.errorType == NetErrorType.timedOut) { + //Default message + msg = "Server is down, please try again later"; + + //Show message from server if available + Map json = jsonDecode(response.body)["error"]; + if (json?.containsKey("message") ?? false) { + msg = json["message"]; + } + } + // No Connection + else if (response.errorType == NetErrorType.disconnected) { + msg = "Unable to connect to the internet, please check your connection."; + //Run an immediate connection check, it's likely that we've lost connection but we're not sure. + await CheckConnectionCommand(context).execute(false); + } + } + + //Suppress popups, only log for release + if (kReleaseMode) { + Log.p(msg); + } + + //Show error popup, if we're not already. Last thing we want to do is spam error messages. + if (!isShowingError && kDebugMode) { + isShowingError = true; + await Dialogs.show( + OkCancelDialog( + title: "Connection Error", + message: msg, + onOkPressed: () => rootNav.pop(), + ), + ); + isShowingError = false; + } + return true; + } +} diff --git a/flokk_src/lib/commands/groups/add_label_to_contact_command.dart b/flokk_src/lib/commands/groups/add_label_to_contact_command.dart new file mode 100644 index 0000000..0c3f40a --- /dev/null +++ b/flokk_src/lib/commands/groups/add_label_to_contact_command.dart @@ -0,0 +1,32 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/groups/create_label_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class AddLabelToContactCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + AddLabelToContactCommand(BuildContext c) : super(c); + + Future> execute(List contacts, {GroupData existingGroup, String newLabel}) async { + Log.p("[AddLabelToContactCommand]"); + ServiceResult result; + await executeAuthServiceCmd(() async { + GroupData group; + if (!StringUtils.isEmpty(newLabel)) { + //create a new label + group = await CreateLabelCommand(context).execute(newLabel); + } else if (existingGroup != null) { + //use existing label + group = existingGroup; + } + if (group != null) { + result = await googleRestService.groups.modify(authModel.googleAccessToken, group, addContacts: contacts); + } + return result?.response; + }); + return contacts; + } +} diff --git a/flokk_src/lib/commands/groups/create_label_command.dart b/flokk_src/lib/commands/groups/create_label_command.dart new file mode 100644 index 0000000..18fe298 --- /dev/null +++ b/flokk_src/lib/commands/groups/create_label_command.dart @@ -0,0 +1,25 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class CreateLabelCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + CreateLabelCommand(BuildContext c) : super(c); + + Future execute(String labelName) async { + Log.p("[CreateLabelCommand]"); + GroupData newGroup = GroupData()..name = labelName; + ServiceResult result; + await executeAuthServiceCmd(() async { + result = await googleRestService.groups.create(authModel.googleAccessToken, newGroup); + newGroup = result.content; + + if (result.success) { + contactsModel.allGroups.add(newGroup); + } + return result.response; + }); + return result.success ? newGroup : null; + } +} diff --git a/flokk_src/lib/commands/groups/delete_label_command.dart b/flokk_src/lib/commands/groups/delete_label_command.dart new file mode 100644 index 0000000..de381a3 --- /dev/null +++ b/flokk_src/lib/commands/groups/delete_label_command.dart @@ -0,0 +1,25 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/groups/refresh_contact_groups_command.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class DeleteLabelCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + DeleteLabelCommand(BuildContext c) : super(c); + + Future execute(GroupData group) async { + if (group == null) return false; + Log.p("[DeleteLabelCommand]"); + ServiceResult result; + await executeAuthServiceCmd(() async { + result = await googleRestService.groups.delete(authModel.googleAccessToken, group); + if (result.success) { + //refresh the groups to ensure labels synced + await RefreshContactGroupsCommand(context).execute(forceUpdate: true); + } + return result.response; + }); + return result.success; + } +} diff --git a/flokk_src/lib/commands/groups/refresh_contact_groups_command.dart b/flokk_src/lib/commands/groups/refresh_contact_groups_command.dart new file mode 100644 index 0000000..94dd968 --- /dev/null +++ b/flokk_src/lib/commands/groups/refresh_contact_groups_command.dart @@ -0,0 +1,70 @@ +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/google_rest/google_rest_contact_groups_service.dart'; +import 'package:flokk/services/google_rest/google_rest_service.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:tuple/tuple.dart'; + +class RefreshContactGroupsCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + RefreshContactGroupsCommand(BuildContext c) : super(c); + + Future> execute({bool onlyStarred = false, bool forceUpdate = false}) async { + Log.p("[RefreshContactGroupsCommand]"); + + if (contactsModel.canRefreshContactGroups || forceUpdate || AppModel.ignoreCooldowns) { + contactsModel.lastUpdatedGroups = DateTime.now(); + + await executeAuthServiceCmd(() async { + GoogleRestContactGroupsService groupsApi = googleRestService.groups; + HttpResponse response; + if (onlyStarred) { + ServiceResult result = + await groupsApi.getById(authModel.googleAccessToken, GoogleRestService.kStarredGroupId); + if (result.success) { + GroupData starred = contactsModel.getGroupById(GoogleRestService.kStarredGroupId); + if (starred != null) { + starred.members = result.content.members; + } else { + contactsModel.allGroups.add(starred); + } + } + response = result.response; + } else { + ServiceResult, String>> result = await groupsApi.get(authModel.googleAccessToken); + List groups = result.content.item1; + String nextPageToken = result.content.item2; + + while (nextPageToken != "" && result.success) { + ServiceResult, String>> result = + await groupsApi.get(authModel.googleAccessToken, nextPageToken: nextPageToken); + groups.addAll(result.content.item1); + nextPageToken = result.content.item2; + } + + if (groups != null && result.success) { + //Need to fetch each individual group to get members list + for (int i = 0; i < groups.length; i++) { + if (groups[i].memberCount > 0 || groups[i].id == GoogleRestService.kStarredGroupId) { + ServiceResult groupResult = + await groupsApi.getById(authModel.googleAccessToken, groups[i].id); + if (groupResult.success) { + groups[i].members = groupResult.content.members; + } + } + } + contactsModel.allGroups = groups; + contactsModel.scheduleSave(); + } + response = result.response; + Log.p("Groups loaded = ${groups?.length ?? 0}"); + } + return response; + }); + } + return contactsModel.allGroups; + } +} diff --git a/flokk_src/lib/commands/groups/remove_label_from_contact_command.dart b/flokk_src/lib/commands/groups/remove_label_from_contact_command.dart new file mode 100644 index 0000000..193f64e --- /dev/null +++ b/flokk_src/lib/commands/groups/remove_label_from_contact_command.dart @@ -0,0 +1,26 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/groups/refresh_contact_groups_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class RemoveLabelFromContactCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + RemoveLabelFromContactCommand(BuildContext c) : super(c); + + Future execute(ContactData contact, GroupData group) async { + Log.p("[RemoveLabelFromContactCommand]"); + + ServiceResult result; + await executeAuthServiceCmd(() async { + result = await googleRestService.groups.modify(authModel.googleAccessToken, group, removeContacts: [contact]); + if (result.success) { + //refresh the groups to ensure labels synced + await RefreshContactGroupsCommand(context).execute(forceUpdate: true); + } + return result.response; + }); + return contactsModel.getContactById(contact.id); + } +} diff --git a/flokk_src/lib/commands/groups/rename_label_command.dart b/flokk_src/lib/commands/groups/rename_label_command.dart new file mode 100644 index 0000000..d1084ab --- /dev/null +++ b/flokk_src/lib/commands/groups/rename_label_command.dart @@ -0,0 +1,23 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class RenameLabelCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + RenameLabelCommand(BuildContext c) : super(c); + + Future execute(GroupData group) async { + if (group == null) return null; + Log.p("[RenameLabelCommand]"); + ServiceResult result; + await executeAuthServiceCmd(() async { + result = await googleRestService.groups.set(authModel.googleAccessToken, group); + if (result.success) { + contactsModel.swapGroupById(result.content); + } + return result.response; + }); + return result.success ? result.content : null; + } +} diff --git a/flokk_src/lib/commands/groups/update_contact_labels_command.dart b/flokk_src/lib/commands/groups/update_contact_labels_command.dart new file mode 100644 index 0000000..b75a4db --- /dev/null +++ b/flokk_src/lib/commands/groups/update_contact_labels_command.dart @@ -0,0 +1,39 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class UpdateContactLabelsCommand extends AbstractCommand with AuthorizedServiceCommandMixin { + UpdateContactLabelsCommand(BuildContext c) : super(c); + + Future execute(ContactData contact) async { + Log.p("[UpdateContactLabelsCommand]"); + ServiceResult result; + await executeAuthServiceCmd(() async { + //Get the existing labels for contact + List existingGroups = contactsModel.getContactById(contact.id)?.groupList ?? []; + + //The updated labels for contact + List updatedGroups = contact.groupList ?? []; + + List removeFrom = existingGroups.where((x) => !updatedGroups.any((y) => y.id == x.id)).toList(); + List addTo = updatedGroups.where((x) => !existingGroups.any((y) => y.id == x.id)).toList(); + + //Remove contact from groups they are no longer in + for (var n in removeFrom) { + result = await googleRestService.groups.modify(authModel.googleAccessToken, n, removeContacts: [contact]); + print("Removed: ${n.name} from ${contact.nameFull}"); + } + + //Add contact to groups they are not in + for (var n in addTo) { + result = await googleRestService.groups.modify(authModel.googleAccessToken, n, addContacts: [contact]); + print("Added: ${n.name} to ${contact.nameFull}"); + } + return result?.response; + }); + return contactsModel.getContactById(contact.id); + } +} diff --git a/flokk_src/lib/commands/logout_command.dart b/flokk_src/lib/commands/logout_command.dart new file mode 100644 index 0000000..f1a445d --- /dev/null +++ b/flokk_src/lib/commands/logout_command.dart @@ -0,0 +1,39 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/page_routes.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/welcome/welcome_page.dart'; +import 'package:flutter/cupertino.dart'; + +class LogoutCommand extends AbstractCommand { + LogoutCommand(BuildContext context) : super(context); + + Future execute({bool doConfirm = false}) async { + Log.p("[LogoutCommand]"); + + if (doConfirm) { + bool doLogout = await Dialogs.show(OkCancelDialog( + title: "Sign Out?", + message: "Are you sure you want to sign-out?", + onOkPressed: () => rootNav.pop(true), + onCancelPressed: () => rootNav.pop(false), + )); + if (!doLogout) return; + } + + //Quietly clear out various models. + // Don't notify listeners, as we don't want the views to clear until we've fully transitioned out + authModel.reset(false); + contactsModel.reset(false); + githubModel.reset(false); + twitterModel.reset(false); + + //Reset the theme and app settings + appModel.theme = ThemeType.FlockGreen; + appModel.reset(false); + + //Show login page + rootNav.pushReplacement(PageRoutes.fade(() => WelcomePage(initialPanelOpen: true))); + } +} diff --git a/flokk_src/lib/commands/refresh_auth_tokens_command.dart b/flokk_src/lib/commands/refresh_auth_tokens_command.dart new file mode 100644 index 0000000..53e4ff1 --- /dev/null +++ b/flokk_src/lib/commands/refresh_auth_tokens_command.dart @@ -0,0 +1,31 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/services/google_rest/google_rest_auth_service.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class RefreshAuthTokensCommand extends AbstractCommand { + RefreshAuthTokensCommand(BuildContext context) : super(context); + + Future execute({bool onlyIfExpired = false}) async { + Log.p("[RefreshAuthTokensCommand] Refreshing with token: ${authModel.googleRefreshToken}"); + if (StringUtils.isEmpty(authModel.googleRefreshToken)) return true; + + //Don't bother calling refresh if it's already authenticated + if (onlyIfExpired && !authModel.isExpired) return true; + + //Query server, see if we can get a new auth token + ServiceResult result = await googleRestService.auth.refresh(authModel.googleRefreshToken); + //If the request succeeded, inject the model with the latest authToken and write to disk + if (result.success) { + authModel.googleAccessToken = result.content.accessToken; + authModel.setExpiry(result.content.expiresIn); + authModel.scheduleSave(); + Log.p( + "Refresh token success. authKey = ${authModel.googleAccessToken}, refreshToken = ${authModel.googleRefreshToken}", + ); + } + return result.success; + } +} diff --git a/flokk_src/lib/commands/social/authenticate_twitter_command.dart b/flokk_src/lib/commands/social/authenticate_twitter_command.dart new file mode 100644 index 0000000..2998935 --- /dev/null +++ b/flokk_src/lib/commands/social/authenticate_twitter_command.dart @@ -0,0 +1,24 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/dialogs/show_service_error_command.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flokk/services/twitter_rest_service.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class AuthenticateTwitterCommand extends AbstractCommand { + AuthenticateTwitterCommand(BuildContext c) : super(c); + + Future execute() async { + Log.p("[AuthenticateTwitterCommand]"); + + ServiceResult result = await twitterService.getAuth(); + if (result.success) { + twitterModel.twitterAccessToken = result.content.accessToken; + twitterModel.scheduleSave(); + return twitterModel.twitterAccessToken; + } else { + ShowServiceErrorCommand(context).execute(result.response); + return ""; + } + } +} diff --git a/flokk_src/lib/commands/social/poll_social_command.dart b/flokk_src/lib/commands/social/poll_social_command.dart new file mode 100644 index 0000000..9d3032f --- /dev/null +++ b/flokk_src/lib/commands/social/poll_social_command.dart @@ -0,0 +1,19 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/social/refresh_social_command.dart'; +import 'package:flutter/src/widgets/framework.dart'; + +class PollSocialCommand extends AbstractCommand with CancelableCommandMixin { + PollSocialCommand(BuildContext c) : super(c); + + Future execute([bool repeat = false, double wait = 15]) async { + await RefreshSocialCommand(context).execute(contactsModel.allContacts); + + if (repeat) { + Future.delayed(wait.minutes).then((value) { + if (isCancelled) return; + execute(true); + }); + } + } +} diff --git a/flokk_src/lib/commands/social/refresh_github_command.dart b/flokk_src/lib/commands/social/refresh_github_command.dart new file mode 100644 index 0000000..65fbac2 --- /dev/null +++ b/flokk_src/lib/commands/social/refresh_github_command.dart @@ -0,0 +1,65 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/dialogs/show_service_error_command.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/git_repo_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class RefreshGithubCommand extends AbstractCommand { + RefreshGithubCommand(BuildContext c) : super(c); + + Future execute(String githubUsername) async { + Log.p("[RefreshGithubCommand]"); + + if (contactsModel.canRefreshGitEventsFor(githubUsername) || AppModel.ignoreCooldowns) { + githubModel.isLoading = true; + ServiceResult eventResult = await gitService.getUserEvents(githubUsername); + + contactsModel.updateSocialTimestamps(gitUsername: githubUsername); + + //set "hasValidGit" flag on contact, depending on success of call + contactsModel.updateContactDataGithubValidity(githubUsername, eventResult.success); + + //Suppress error dialogs if the git username is not found. Already updated the ContactData.hasValidGit flag above + final int statusCode = eventResult.response.statusCode; + switch (statusCode) { + case 403: //rate limit (https://developer.github.com/v3/#rate-limiting) + ShowServiceErrorCommand(context) + .execute(eventResult.response, customMessage: "GitHub rate limit exceeded. Please try again later."); + break; + case 404: //likely invalid git username, don't bother showing error dialog. + break; + default: + ShowServiceErrorCommand(context).execute(eventResult.response); + break; + } + + List events = eventResult?.content ?? []; + githubModel.addEvents(githubUsername, events); + + //Fetch the repos for each event contact was involved in + for (var n in events) { + //The full name of the repo is populated in Event.repo.name, but once Repository is fetched, Repository.fullName will be populated + String fullName = n.event.repo.name; + + if (githubModel.repoIsStale(fullName)) { + ServiceResult repoResult = await gitService.getRepo(fullName); + if (repoResult?.success == true) { + GitRepo repo = repoResult.content; + githubModel.addRepo(repo); + } + } + } + + //Fetch contact owned repos + // ServiceResult> userReposResult = await gitService.getUserRepos(githubUsername); + // if (userReposResult?.success == true) { + // githubModel.addRepos(userReposResult.content); + // } + githubModel.isLoading = false; + githubModel.scheduleSave(); + } + } +} diff --git a/flokk_src/lib/commands/social/refresh_social_command.dart b/flokk_src/lib/commands/social/refresh_social_command.dart new file mode 100644 index 0000000..7a63c8e --- /dev/null +++ b/flokk_src/lib/commands/social/refresh_social_command.dart @@ -0,0 +1,29 @@ +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/social/refresh_github_command.dart'; +import 'package:flokk/commands/social/refresh_twitter_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flutter/material.dart'; + +class RefreshSocialCommand extends AbstractCommand { + RefreshSocialCommand(BuildContext c) : super(c); + + /// Pass in list of contacts to update; can be used to pass in single contact (manual refresh) or else multiple (ie. all contacts on background poll) + Future execute(List contacts) async { + //Ignore if contacts are empty or null + if (contacts?.isEmpty ?? true) { + return; + } + + List githubHandles = + contacts.where((x) => !StringUtils.isEmpty(x.gitUsername))?.map((x) => x.gitUsername)?.toList() ?? []; + List twitterHandles = + contacts.where((x) => !StringUtils.isEmpty(x.twitterHandle))?.map((x) => x.twitterHandle)?.toList() ?? []; + + List> gitFutures = githubHandles.map((x) => RefreshGithubCommand(context).execute(x)).toList(); + await Future.wait(gitFutures); + + List> twitterFutures = twitterHandles.map((x) => RefreshTwitterCommand(context).execute(x)).toList(); + await Future.wait(twitterFutures); + } +} diff --git a/flokk_src/lib/commands/social/refresh_twitter_command.dart b/flokk_src/lib/commands/social/refresh_twitter_command.dart new file mode 100644 index 0000000..e817c61 --- /dev/null +++ b/flokk_src/lib/commands/social/refresh_twitter_command.dart @@ -0,0 +1,50 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flokk/commands/dialogs/show_service_error_command.dart'; +import 'package:flokk/commands/social/authenticate_twitter_command.dart'; +import 'package:flokk/data/tweet_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/cupertino.dart'; + +class RefreshTwitterCommand extends AbstractCommand { + RefreshTwitterCommand(BuildContext c) : super(c); + + Future execute(String twitterHandle) async { + Log.p("[RefreshTwitterCommand]"); + + if (contactsModel.canRefreshTweetsFor(twitterHandle) || AppModel.ignoreCooldowns) { + if (!twitterModel.isAuthenticated) { + await AuthenticateTwitterCommand(context).execute(); + } + twitterModel.isLoading = true; + ServiceResult result = await twitterService.getTweets(twitterModel.twitterAccessToken, twitterHandle); + + contactsModel.updateSocialTimestamps(twitterHandle: twitterHandle); + + //set "hasValidTwitter" flag on contact, depending on success of call + contactsModel.updateContactDataTwitterValidity(twitterHandle, result.success); + + //Suppress error dialogs if the twitter handle is not found. Already updated the ContactData.hasValidTwitter flag above + final int statusCode = result.response.statusCode; + switch (statusCode) { + case 429: //rate limit (https://developer.twitter.com/en/docs/basics/rate-limiting) + ShowServiceErrorCommand(context) + .execute(result.response, customMessage: "Twitter rate limit exceeded. Please try again later."); + break; + case 404: //likely invalid twitter username, don't bother showing error dialog. + break; + default: + ShowServiceErrorCommand(context).execute(result.response); + break; + } + + List tweets = result?.content ?? []; + twitterModel.addTweets(twitterHandle, tweets); + twitterModel.isLoading = false; + twitterModel.scheduleSave(); + int newTweets = contactsModel.getSocialContactByTwitter(twitterHandle).newTweets.length; + print("New Tweets = $newTweets"); + } + } +} diff --git a/flokk_src/lib/commands/social/test_repeat_command.dart b/flokk_src/lib/commands/social/test_repeat_command.dart new file mode 100644 index 0000000..98177ba --- /dev/null +++ b/flokk_src/lib/commands/social/test_repeat_command.dart @@ -0,0 +1,38 @@ +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flutter/cupertino.dart'; + +class TestRepeatCommand extends AbstractCommand { + //needs to be outside the scope of instance otherwise it gets reset and doesn't cancel properly + static bool _isCancelled = false; + + TestRepeatCommand(BuildContext c) : super(c); + + void stop() { + print("stop() called"); + _isCancelled = true; + } + + Future> execute({bool poll = false, Duration pollInterval, bool calledBySelf = false}) async { + pollInterval = pollInterval ?? Duration(seconds: 5); //default interval + + //reset the _isCancelled flag if poll is true and executed by self, allows proper restart of polling + if (poll && !calledBySelf) { + _isCancelled = false; + } + + print("Do stuff: ${DateTime.now()}"); + + if (poll) { + Future.delayed(pollInterval).then((value) { + print("delayed call, isCancelled? $_isCancelled"); + if (_isCancelled) { + print("cancelled"); + return; + } + execute(poll: true, pollInterval: pollInterval, calledBySelf: true); + }); + } + print("return []"); + return []; + } +} diff --git a/flokk_src/lib/commands/web_sign_in_command.dart b/flokk_src/lib/commands/web_sign_in_command.dart new file mode 100644 index 0000000..554d010 --- /dev/null +++ b/flokk_src/lib/commands/web_sign_in_command.dart @@ -0,0 +1,38 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/api_keys.dart'; +import 'package:flokk/commands/abstract_command.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:google_sign_in/google_sign_in.dart'; + +class WebSignInCommand extends AbstractCommand { + WebSignInCommand(BuildContext c) : super(c); + + Future execute({bool silentSignIn = false}) async { + Log.p("[WebSignInCommand] isSilentSignIn: $silentSignIn"); + try { + final gs = GoogleSignIn( + clientId: ApiKeys().googleWebClientId, + scopes: ['https://www.googleapis.com/auth/contacts'], + ); + + GoogleSignInAccount account = silentSignIn ? await gs.signInSilently() : await gs.signIn(); + GoogleSignInAuthentication auth = await account.authentication; + + if (auth != null) { + Log.p("[WebSignInCommand] Success"); + authModel.googleSignIn = + gs; //save off instance of GoogleSignIn, so it can be used to call googleSignIn.disconnect() if needed + authModel.googleAccessToken = auth.accessToken; + authModel.scheduleSave(); + return true; + } else { + Log.p("[WebSignInCommand] Fail"); + return false; + } + } catch (e) { + print("Error!"); + print(e); + return false; + } + } +} diff --git a/flokk_src/lib/data/contact_data.dart b/flokk_src/lib/data/contact_data.dart new file mode 100644 index 0000000..082fd61 --- /dev/null +++ b/flokk_src/lib/data/contact_data.dart @@ -0,0 +1,377 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:json_annotation/json_annotation.dart'; + +part "contact_data.g.dart"; + +enum ContactOrderBy { + Email, + FirstName, + LastName, +} + +@JsonSerializable(explicitToJson: true) +class ContactData { + bool get isNew => StringUtils.isEmpty(id); + + String get id => googleId; + + /// //////////////////////////////////////// + + String get firstPhone { + if (phoneList?.isNotEmpty ?? false) { + return phoneList.first.number; + } + return ""; + } + + String get firstEmail { + if (emailList?.isNotEmpty ?? false) { + return emailList.first.value; + } + return ""; + } + + // Indicates that this contact came back in the the last refresh, UI can use this to animate new contacts + bool isRecentlyAdded = false; + bool isDeleted = false; + String googleId = ""; + String etag = ""; + + //Social + String twitterHandle = ""; + String gitUsername = ""; + + //Name info + String generatedTitle = ""; + String nameFull = ""; + String namePrefix = ""; + String nameSuffix = ""; + String nameFamily = ""; + String nameGiven = ""; + String nameGivenPhonetic = ""; + String nameMiddle = ""; + String nameMiddlePhonetic = ""; + + //Misc( + String notes = ""; + BirthdayData birthday = BirthdayData(); + String nickname = ""; + String fileAs = ""; + bool isStarred = false; + + //Job + String jobTitle = ""; + String jobDepartment = ""; + String jobCompany = ""; + + String get formattedJob { + bool hasTitle = !StringUtils.isEmpty(jobTitle); + bool hasCompany = !StringUtils.isEmpty(jobCompany); + if (hasTitle && hasCompany) return "$jobTitle, $jobCompany"; + return hasTitle ? jobTitle : jobCompany ?? ""; + } + + //Profile + String profilePic = ""; + bool isDefaultPic = true; + @JsonKey(ignore: true) + String profilePicBase64 = ""; //base 64 encoded bytes of profile pic (from picker) + @JsonKey(ignore: true) + Uint8List profilePicBytes = null; //raw bytes of profile pic (from picker) + @JsonKey(ignore: true) + bool hasNewProfilePic = false; + + //Phone + List phoneList = []; + + //Email + List emailList = []; + + //Address + List addressList = []; + + //Instant Messaging + List imList = []; + + //User fields + Map customFields = {}; + + //Web Sites + List websiteList = []; + + //Relations + List relationList = []; + + //Labels + @JsonKey(ignore: true) + List groupList = []; + + //Events + List eventList = []; + + ContactData(); + + factory ContactData.fromJson(Map json) => _$ContactDataFromJson(json); + + bool get hasName => !StringUtils.isEmpty("$nameGiven$nameMiddle$nameFamily$nameSuffix$namePrefix"); + + bool get hasLabel => groupList?.isNotEmpty; + + bool get hasEmail => emailList?.isNotEmpty; + + bool get hasPhone => phoneList?.isNotEmpty; + + bool get hasAddress => addressList?.isNotEmpty; + + bool get hasLink => websiteList?.isNotEmpty; + + bool get hasRelationship => relationList?.isNotEmpty; + + bool get hasEvents => eventList?.isNotEmpty; + + bool get hasJob => !StringUtils.isEmpty("$jobTitle$jobCompany$jobDepartment"); + + bool get hasNotes => notes?.isNotEmpty; + + bool get hasBirthday => !StringUtils.isEmpty(birthday?.text); + + bool get hasValidDateForBirthday => birthday.date != DateTime(0, 1, 1); + + /// ///////////////////////////////////////////////////// + /// SOCIAL + bool get hasTwitter => !StringUtils.isEmpty(twitterHandle); + + bool get hasGit => !StringUtils.isEmpty(gitUsername); + + bool get hasAllSocial => hasGit && hasTwitter; + + bool get hasAnySocial => hasGit || hasTwitter; + + bool hasSameSocial(ContactData other) => other.twitterHandle == twitterHandle && other.gitUsername == gitUsername; + + bool hasSocialOfType(SocialActivityType type) { + if (type == SocialActivityType.Git) return hasGit; + if (type == SocialActivityType.Twitter) return hasTwitter; + return false; + } + + //Not serialized, to be set/determined with each fetch because it's possible their account was deleted/changed in the meanwhile + @JsonKey(ignore: true) + bool hasValidGit = false; + @JsonKey(ignore: true) + bool hasValidTwitter = false; + + /// //////////////////////////////////////////////// + /// SEARCHABLE + String _searchable; + + String get searchable => _searchable ??= _getSearchableFields().toLowerCase(); + + String _getSearchableFields() => "$nameGiven $nameMiddle $nameFamily $nameMiddlePhonetic $nameGivenPhonetic " + "$namePrefix $nameSuffix $nameFull $twitterHandle $gitUsername $notes $birthday $nickname" + "$jobTitle $jobDepartment $jobCompany ${phoneList?.map((x) => x.number)?.join(",") ?? ""}" + "${addressList?.map((x) => x.getFullAddress())?.join(",") ?? ""}" + "${imList?.map((x) => x.username)?.join(",") ?? ""}" + "${customFields?.values?.map((x) => x)?.join(",") ?? ""}" + "${relationList?.map((x) => x.person)?.join(",") ?? ""}" + "${emailList?.map((x) => x.value)?.join(",") ?? ""} ${groupList?.map((x) => x.name)?.join(",") ?? ""}"; + + /// //////////////////////////////////////////////// + /// PUBLIC API + ContactData trimLists() { + emailList.removeWhere((email) => email.isEmpty); + phoneList.removeWhere((phone) => phone.isEmpty); + addressList.removeWhere((address) => address.isEmpty); + + websiteList.removeWhere((email) => email.isEmpty); + relationList.removeWhere((rel) => rel.isEmpty); + eventList.removeWhere((evt) => evt.isEmpty); + + return this; + } + + List get allDates { + //Need to explicitly cast x as DateMixin, otherwise will throw CastError when trying to add birthday + List dates = hasEvents ? eventList.map((x) => x as DateMixin).toList() : []; + if (hasValidDateForBirthday) { + dates.add(birthday); + } + return dates; + } + + ContactData copy() => ContactData.fromJson(toJson())..groupList = groupList; + + bool equals(ContactData value) { + if (value == null) return false; + return jsonEncode(value.toJson()).hashCode == jsonEncode(toJson()).hashCode; + } + + Map toJson() => _$ContactDataToJson(this); +} + +@JsonSerializable() +class AddressData { + String formattedAddress = ""; + String street = ""; + String poBox = ""; + String neighborhood = ""; + String city = ""; + String region = ""; + String postcode = ""; + String country = ""; + String type = ""; + + AddressData(); + + get isEmpty => StringUtils.isEmpty("$street$poBox$neighborhood$city$region$postcode$country$type"); + + factory AddressData.fromJson(Map json) => _$AddressDataFromJson(json); + + Map toJson() => _$AddressDataToJson(this); + + String getFullAddress() { + String ss(String value, [String extra]) => StringUtils.safeGet(value, extra); + + String streetAddress = "${ss(street, ", ")}${ss(formattedAddress)}"; + String address = "${ss(streetAddress, " \n")}"; + + String cityRegion = ("${ss(city, ", ")}${ss(region)}"); + address += ss(cityRegion, " \n"); + + String postCountry = "${ss(postcode, ", ")}${ss(country)}"; + address += ss(postCountry, " \n"); + + /// Trim trailing line-break + if (address.length > 1) { + address = address.substring(0, address.length - 1); + } + return address; + } + + String get singleLineStreet { + return street.replaceAll("\n", " "); //strip out \n chars for use in inputs + } +} + +@JsonSerializable() +class InstantMessageData { + String username = ""; + String type = ""; + + InstantMessageData(); + + get isEmpty => StringUtils.isEmpty("$username$type"); + + factory InstantMessageData.fromJson(Map json) => _$InstantMessageDataFromJson(json); + + Map toJson() => _$InstantMessageDataToJson(this); +} + +@JsonSerializable() +class PhoneData { + String uri = ""; + String number = ""; + String type = ""; + + PhoneData(); + + get isEmpty => StringUtils.isEmpty("$number$type"); + + factory PhoneData.fromJson(Map json) => _$PhoneDataFromJson(json); + + Map toJson() => _$PhoneDataToJson(this); +} + +@JsonSerializable() +class WebsiteData { + String href = ""; + String type = ""; + + WebsiteData(); + + get isEmpty => StringUtils.isEmpty("$href$type"); + + factory WebsiteData.fromJson(Map json) => _$WebsiteDataFromJson(json); + + Map toJson() => _$WebsiteDataToJson(this); +} + +@JsonSerializable() +class EmailData { + String value = ""; + String type = ""; + + EmailData(); + + get isEmpty => StringUtils.isEmpty("$value$type"); + + factory EmailData.fromJson(Map json) => _$EmailDataFromJson(json); + + Map toJson() => _$EmailDataToJson(this); +} + +@JsonSerializable() +class RelationData { + String person = ""; + String type = ""; + + RelationData(); + + get isEmpty => StringUtils.isEmpty("$person$type"); + + factory RelationData.fromJson(Map json) => _$RelationDataFromJson(json); + + Map toJson() => _$RelationDataToJson(this); +} + +@JsonSerializable() +class EventData with DateMixin { + String type = ""; + + EventData(); + + @override + String getType() => type; + + get isEmpty => date == DateTime(0, 1, 1) || date == null || date.toString().isEmpty; + + factory EventData.fromJson(Map json) => _$EventDataFromJson(json); + + Map toJson() => _$EventDataToJson(this); +} + +@JsonSerializable() +class BirthdayData with DateMixin { + String text = ""; + + BirthdayData(); + + @override + String getType() => "Birthday"; + + get isEmpty => StringUtils.isEmpty("$text"); + + factory BirthdayData.fromJson(Map json) => _$BirthdayDataFromJson(json); + + Map toJson() => _$BirthdayDataToJson(this); +} + +abstract class DateMixin { + DateTime date = DateTime(0, 1, 1); + + String getType() => ""; + + int get daysTilAnniversary { + final now = DateTime.now(); + final currentYearXDate = DateTime(now.year, date.month, date.day); + final nextYearXDate = DateTime(now.year + 1, date.month, date.day); + return currentYearXDate.isAfter(now) + ? currentYearXDate.difference(now).inDays + : nextYearXDate.difference(now).inDays; + } +} diff --git a/flokk_src/lib/data/contact_data.g.dart b/flokk_src/lib/data/contact_data.g.dart new file mode 100644 index 0000000..456e5e5 --- /dev/null +++ b/flokk_src/lib/data/contact_data.g.dart @@ -0,0 +1,218 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'contact_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +ContactData _$ContactDataFromJson(Map json) { + return ContactData() + ..isRecentlyAdded = json['isRecentlyAdded'] as bool + ..isDeleted = json['isDeleted'] as bool + ..googleId = json['googleId'] as String + ..etag = json['etag'] as String + ..twitterHandle = json['twitterHandle'] as String + ..gitUsername = json['gitUsername'] as String + ..generatedTitle = json['generatedTitle'] as String + ..nameFull = json['nameFull'] as String + ..namePrefix = json['namePrefix'] as String + ..nameSuffix = json['nameSuffix'] as String + ..nameFamily = json['nameFamily'] as String + ..nameGiven = json['nameGiven'] as String + ..nameGivenPhonetic = json['nameGivenPhonetic'] as String + ..nameMiddle = json['nameMiddle'] as String + ..nameMiddlePhonetic = json['nameMiddlePhonetic'] as String + ..notes = json['notes'] as String + ..birthday = json['birthday'] == null + ? null + : BirthdayData.fromJson(json['birthday'] as Map) + ..nickname = json['nickname'] as String + ..fileAs = json['fileAs'] as String + ..isStarred = json['isStarred'] as bool + ..jobTitle = json['jobTitle'] as String + ..jobDepartment = json['jobDepartment'] as String + ..jobCompany = json['jobCompany'] as String + ..profilePic = json['profilePic'] as String + ..isDefaultPic = json['isDefaultPic'] as bool + ..phoneList = (json['phoneList'] as List) + ?.map((e) => + e == null ? null : PhoneData.fromJson(e as Map)) + ?.toList() + ..emailList = (json['emailList'] as List) + ?.map((e) => + e == null ? null : EmailData.fromJson(e as Map)) + ?.toList() + ..addressList = (json['addressList'] as List) + ?.map((e) => + e == null ? null : AddressData.fromJson(e as Map)) + ?.toList() + ..imList = (json['imList'] as List) + ?.map((e) => e == null + ? null + : InstantMessageData.fromJson(e as Map)) + ?.toList() + ..customFields = (json['customFields'] as Map)?.map( + (k, e) => MapEntry(k, e as String), + ) + ..websiteList = (json['websiteList'] as List) + ?.map((e) => + e == null ? null : WebsiteData.fromJson(e as Map)) + ?.toList() + ..relationList = (json['relationList'] as List) + ?.map((e) => + e == null ? null : RelationData.fromJson(e as Map)) + ?.toList() + ..eventList = (json['eventList'] as List) + ?.map((e) => + e == null ? null : EventData.fromJson(e as Map)) + ?.toList(); +} + +Map _$ContactDataToJson(ContactData instance) => + { + 'isRecentlyAdded': instance.isRecentlyAdded, + 'isDeleted': instance.isDeleted, + 'googleId': instance.googleId, + 'etag': instance.etag, + 'twitterHandle': instance.twitterHandle, + 'gitUsername': instance.gitUsername, + 'generatedTitle': instance.generatedTitle, + 'nameFull': instance.nameFull, + 'namePrefix': instance.namePrefix, + 'nameSuffix': instance.nameSuffix, + 'nameFamily': instance.nameFamily, + 'nameGiven': instance.nameGiven, + 'nameGivenPhonetic': instance.nameGivenPhonetic, + 'nameMiddle': instance.nameMiddle, + 'nameMiddlePhonetic': instance.nameMiddlePhonetic, + 'notes': instance.notes, + 'birthday': instance.birthday?.toJson(), + 'nickname': instance.nickname, + 'fileAs': instance.fileAs, + 'isStarred': instance.isStarred, + 'jobTitle': instance.jobTitle, + 'jobDepartment': instance.jobDepartment, + 'jobCompany': instance.jobCompany, + 'profilePic': instance.profilePic, + 'isDefaultPic': instance.isDefaultPic, + 'phoneList': instance.phoneList?.map((e) => e?.toJson())?.toList(), + 'emailList': instance.emailList?.map((e) => e?.toJson())?.toList(), + 'addressList': instance.addressList?.map((e) => e?.toJson())?.toList(), + 'imList': instance.imList?.map((e) => e?.toJson())?.toList(), + 'customFields': instance.customFields, + 'websiteList': instance.websiteList?.map((e) => e?.toJson())?.toList(), + 'relationList': instance.relationList?.map((e) => e?.toJson())?.toList(), + 'eventList': instance.eventList?.map((e) => e?.toJson())?.toList(), + }; + +AddressData _$AddressDataFromJson(Map json) { + return AddressData() + ..formattedAddress = json['formattedAddress'] as String + ..street = json['street'] as String + ..poBox = json['poBox'] as String + ..neighborhood = json['neighborhood'] as String + ..city = json['city'] as String + ..region = json['region'] as String + ..postcode = json['postcode'] as String + ..country = json['country'] as String + ..type = json['type'] as String; +} + +Map _$AddressDataToJson(AddressData instance) => + { + 'formattedAddress': instance.formattedAddress, + 'street': instance.street, + 'poBox': instance.poBox, + 'neighborhood': instance.neighborhood, + 'city': instance.city, + 'region': instance.region, + 'postcode': instance.postcode, + 'country': instance.country, + 'type': instance.type, + }; + +InstantMessageData _$InstantMessageDataFromJson(Map json) { + return InstantMessageData() + ..username = json['username'] as String + ..type = json['type'] as String; +} + +Map _$InstantMessageDataToJson(InstantMessageData instance) => + { + 'username': instance.username, + 'type': instance.type, + }; + +PhoneData _$PhoneDataFromJson(Map json) { + return PhoneData() + ..uri = json['uri'] as String + ..number = json['number'] as String + ..type = json['type'] as String; +} + +Map _$PhoneDataToJson(PhoneData instance) => { + 'uri': instance.uri, + 'number': instance.number, + 'type': instance.type, + }; + +WebsiteData _$WebsiteDataFromJson(Map json) { + return WebsiteData() + ..href = json['href'] as String + ..type = json['type'] as String; +} + +Map _$WebsiteDataToJson(WebsiteData instance) => + { + 'href': instance.href, + 'type': instance.type, + }; + +EmailData _$EmailDataFromJson(Map json) { + return EmailData() + ..value = json['value'] as String + ..type = json['type'] as String; +} + +Map _$EmailDataToJson(EmailData instance) => { + 'value': instance.value, + 'type': instance.type, + }; + +RelationData _$RelationDataFromJson(Map json) { + return RelationData() + ..person = json['person'] as String + ..type = json['type'] as String; +} + +Map _$RelationDataToJson(RelationData instance) => + { + 'person': instance.person, + 'type': instance.type, + }; + +EventData _$EventDataFromJson(Map json) { + return EventData() + ..date = + json['date'] == null ? null : DateTime.parse(json['date'] as String) + ..type = json['type'] as String; +} + +Map _$EventDataToJson(EventData instance) => { + 'date': instance.date?.toIso8601String(), + 'type': instance.type, + }; + +BirthdayData _$BirthdayDataFromJson(Map json) { + return BirthdayData() + ..date = + json['date'] == null ? null : DateTime.parse(json['date'] as String) + ..text = json['text'] as String; +} + +Map _$BirthdayDataToJson(BirthdayData instance) => + { + 'date': instance.date?.toIso8601String(), + 'text': instance.text, + }; diff --git a/flokk_src/lib/data/countries.dart b/flokk_src/lib/data/countries.dart new file mode 100644 index 0000000..64f86b4 --- /dev/null +++ b/flokk_src/lib/data/countries.dart @@ -0,0 +1,201 @@ +class Countries { + static List all = [ + "Afghanistan", + "Albania", + "Algeria", + "Andorra", + "Angola", + "Antigua & Deps", + "Argentina", + "Armenia", + "Australia", + "Austria", + "Azerbaijan", + "Bahamas", + "Bahrain", + "Bangladesh", + "Barbados", + "Belarus", + "Belgium", + "Belize", + "Benin", + "Bhutan", + "Bolivia", + "Bosnia Herzegovina", + "Botswana", + "Brazil", + "Brunei", + "Bulgaria", + "Burkina", + "Burundi", + "Cambodia", + "Cameroon", + "Canada", + "Cape Verde", + "Central African Rep", + "Chad", + "Chile", + "China", + "Colombia", + "Comoros", + "Congo", + "Congo {Democratic Rep}", + "Costa Rica", + "Croatia", + "Cuba", + "Cyprus", + "Czech Republic", + "Denmark", + "Djibouti", + "Dominica", + "Dominican Republic", + "East Timor", + "Ecuador", + "Egypt", + "El Salvador", + "Equatorial Guinea", + "Eritrea", + "Estonia", + "Ethiopia", + "Fiji", + "Finland", + "France", + "Gabon", + "Gambia", + "Georgia", + "Germany", + "Ghana", + "Greece", + "Grenada", + "Guatemala", + "Guinea", + "Guinea-Bissau", + "Guyana", + "Haiti", + "Honduras", + "Hungary", + "Iceland", + "India", + "Indonesia", + "Iran", + "Iraq", + "Ireland {Republic}", + "Israel", + "Italy", + "Ivory Coast", + "Jamaica", + "Japan", + "Jordan", + "Kazakhstan", + "Kenya", + "Kiribati", + "Korea North", + "Korea South", + "Kosovo", + "Kuwait", + "Kyrgyzstan", + "Laos", + "Latvia", + "Lebanon", + "Lesotho", + "Liberia", + "Libya", + "Liechtenstein", + "Lithuania", + "Luxembourg", + "Macedonia", + "Madagascar", + "Malawi", + "Malaysia", + "Maldives", + "Mali", + "Malta", + "Marshall Islands", + "Mauritania", + "Mauritius", + "Mexico", + "Micronesia", + "Moldova", + "Monaco", + "Mongolia", + "Montenegro", + "Morocco", + "Mozambique", + "Myanmar", + "{Burma}", + "Namibia", + "Nauru", + "Nepal", + "Netherlands", + "New Zealand", + "Nicaragua", + "Niger", + "Nigeria", + "Norway", + "Oman", + "Pakistan", + "Palau", + "Panama", + "Papua New Guinea", + "Paraguay", + "Peru", + "Philippines", + "Poland", + "Portugal", + "Qatar", + "Romania", + "Russian Federation", + "Rwanda", + "St Kitts & Nevis", + "St Lucia", + "Saint Vincent & the Grenadines", + "Samoa", + "San Marino", + "Sao Tome & Principe", + "Saudi Arabia", + "Senegal", + "Serbia", + "Seychelles", + "Sierra Leone", + "Singapore", + "Slovakia", + "Slovenia", + "Solomon Islands", + "Somalia", + "South Africa", + "South Sudan", + "Spain", + "Sri Lanka", + "Sudan", + "Suriname", + "Swaziland", + "Sweden", + "Switzerland", + "Syria", + "Taiwan", + "Tajikistan", + "Tanzania", + "Thailand", + "Togo", + "Tonga", + "Trinidad & Tobago", + "Tunisia", + "Turkey", + "Turkmenistan", + "Tuvalu", + "Uganda", + "Ukraine", + "United Arab Emirates", + "United Kingdom", + "United States", + "Uruguay", + "Uzbekistan", + "Vanuatu", + "Vatican City", + "Venezuela", + "Vietnam", + "Yemen", + "Zambia", + "Zimbabwe" + ]; +} diff --git a/flokk_src/lib/data/date_sortable_interface.dart b/flokk_src/lib/data/date_sortable_interface.dart new file mode 100644 index 0000000..c99e996 --- /dev/null +++ b/flokk_src/lib/data/date_sortable_interface.dart @@ -0,0 +1,3 @@ +class DateSortable { + DateTime createdAt; +} diff --git a/flokk_src/lib/data/git_event_data.dart b/flokk_src/lib/data/git_event_data.dart new file mode 100644 index 0000000..8336fdf --- /dev/null +++ b/flokk_src/lib/data/git_event_data.dart @@ -0,0 +1,24 @@ +import 'package:flokk/data/date_sortable_interface.dart'; +import 'package:github/github.dart'; + +class GitEvent implements DateSortable { + //Populated at runtime + Repository repository; + + //Serialized to json + Event event; + + @override + DateTime get createdAt => event.createdAt; //Read only + + @override + void set createdAt(DateTime value) {} + + GitEvent(); + + factory GitEvent.fromJson(Map json) { + return GitEvent()..event = json["event"] == null ? null : Event.fromJson(json["event"] as Map); + } + + Map toJson() => {"event": event}; +} diff --git a/flokk_src/lib/data/git_repo_data.dart b/flokk_src/lib/data/git_repo_data.dart new file mode 100644 index 0000000..efd1a4c --- /dev/null +++ b/flokk_src/lib/data/git_repo_data.dart @@ -0,0 +1,22 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:github/github.dart'; + +class GitRepo { + //Populated at runtime + List contacts; + DateTime latestActivityDate; //shown in UI + + //Serialized to json + Repository repository; + DateTime lastUpdated; + + GitRepo(); + + factory GitRepo.fromJson(Map json) { + return GitRepo() + ..repository = json["repository"] == null ? null : Repository.fromJson(json["repository"] as Map) + ..lastUpdated = json["lastUpdated"] == null ? null : DateTime.parse(json['lastUpdated'] as String); + } + + Map toJson() => {"repository": repository, "lastUpdated": lastUpdated?.toIso8601String()}; +} diff --git a/flokk_src/lib/data/group_data.dart b/flokk_src/lib/data/group_data.dart new file mode 100644 index 0000000..2d46a6d --- /dev/null +++ b/flokk_src/lib/data/group_data.dart @@ -0,0 +1,21 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'group_data.g.dart'; + +@JsonSerializable(nullable: true) +class GroupData { + String id; + String etag; //required field in API call for updates + String name; + GroupType groupType; + int memberCount; + List members; + + GroupData(); + + factory GroupData.fromJson(Map json) => _$GroupDataFromJson(json); + + Map toJson() => _$GroupDataToJson(this); +} + +enum GroupType { GroupTypeUnspecified, UserContactGroup, SystemContactGroup } diff --git a/flokk_src/lib/data/group_data.g.dart b/flokk_src/lib/data/group_data.g.dart new file mode 100644 index 0000000..b829e4d --- /dev/null +++ b/flokk_src/lib/data/group_data.g.dart @@ -0,0 +1,64 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'group_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +GroupData _$GroupDataFromJson(Map json) { + return GroupData() + ..id = json['id'] as String + ..etag = json['etag'] as String + ..name = json['name'] as String + ..groupType = _$enumDecodeNullable(_$GroupTypeEnumMap, json['groupType']) + ..memberCount = json['memberCount'] as int + ..members = (json['members'] as List)?.map((e) => e as String)?.toList(); +} + +Map _$GroupDataToJson(GroupData instance) => { + 'id': instance.id, + 'etag': instance.etag, + 'name': instance.name, + 'groupType': _$GroupTypeEnumMap[instance.groupType], + 'memberCount': instance.memberCount, + 'members': instance.members, + }; + +T _$enumDecode( + Map enumValues, + dynamic source, { + T unknownValue, +}) { + if (source == null) { + throw ArgumentError('A value must be provided. Supported values: ' + '${enumValues.values.join(', ')}'); + } + + final value = enumValues.entries + .singleWhere((e) => e.value == source, orElse: () => null) + ?.key; + + if (value == null && unknownValue == null) { + throw ArgumentError('`$source` is not one of the supported values: ' + '${enumValues.values.join(', ')}'); + } + return value ?? unknownValue; +} + +T _$enumDecodeNullable( + Map enumValues, + dynamic source, { + T unknownValue, +}) { + if (source == null) { + return null; + } + return _$enumDecode(enumValues, source, unknownValue: unknownValue); +} + +const _$GroupTypeEnumMap = { + GroupType.GroupTypeUnspecified: 'GroupTypeUnspecified', + GroupType.UserContactGroup: 'UserContactGroup', + GroupType.SystemContactGroup: 'SystemContactGroup', +}; diff --git a/flokk_src/lib/data/social_activity_type.dart b/flokk_src/lib/data/social_activity_type.dart new file mode 100644 index 0000000..48346e2 --- /dev/null +++ b/flokk_src/lib/data/social_activity_type.dart @@ -0,0 +1,5 @@ +enum SocialActivityType { + All, + Git, + Twitter, +} \ No newline at end of file diff --git a/flokk_src/lib/data/social_contact_data.dart b/flokk_src/lib/data/social_contact_data.dart new file mode 100644 index 0000000..e7119e5 --- /dev/null +++ b/flokk_src/lib/data/social_contact_data.dart @@ -0,0 +1,82 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/date_sortable_interface.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/tweet_data.dart'; + +class SocialContactData { + /* Populated at runtime */ + ContactData contact; + List tweets = []; + List gitEvents = []; + + //The number of new tweets since the last time user checked (populates the indicator) + List get newTweets => tweets.where((x) => x.createdAt.isAfter(lastCheckedTweets))?.toList() ?? []; + + //The number of new git events since the last time user checked (populates the indicator) + List get newGits => gitEvents.where((x) => x.createdAt.isAfter(lastCheckedGit))?.toList() ?? []; + + //Used to determine the level of activity for most active + int get points { + int pts = 0; + for (var n in gitEvents) { + switch (n.event.type) { + case "PushEvent": + case "ForkEvent": + case "CreateEvent": + pts++; + break; + } + } + pts += tweets.length; + return pts; + } + + //Get latest activity (can be GitEvent or Tweet) + DateSortable get latestActivity { + List sorted = []; + sorted.addAll(tweets); + sorted.addAll(gitEvents); + sorted.sort((a, b) => b.createdAt.compareTo(a.createdAt)); + return sorted.isNotEmpty ? sorted.first : null; + } + + /* Serialized to json */ + String contactId; + + //Field to be updated whenever the user checks user social feeds + DateTime lastCheckedTweets = DateTime.fromMillisecondsSinceEpoch(0); + + DateTime lastCheckedGit = DateTime.fromMillisecondsSinceEpoch(0); + + //Field to be updated whenever the data for tweets have been updated + DateTime lastUpdatedTwitter = DateTime.fromMillisecondsSinceEpoch(0); + + //Field to be updated whenever the data for git events have been updated + DateTime lastUpdatedGit = DateTime.fromMillisecondsSinceEpoch(0); + + SocialContactData(); + + /* Json Serialization */ + + //The contact instance will be populated manually in the model, since we don't want to serialze contact data again (already serialized in contacts model) + factory SocialContactData.fromJson(Map json) { + return SocialContactData() + ..contactId = json["contactId"] as String + ..lastCheckedTweets = + json["lastCheckedTweets"] == null ? null : DateTime.parse(json["lastCheckedTweets"] as String) + ..lastCheckedGit = json["lastCheckedGit"] == null ? null : DateTime.parse(json["lastCheckedGit"] as String) + ..lastUpdatedTwitter = + json["lastUpdatedTwitter"] == null ? null : DateTime.parse(json["lastUpdatedTwitter"] as String) + ..lastUpdatedGit = json["lastUpdatedGit"] == null ? null : DateTime.parse(json["lastUpdatedGit"] as String); + } + + Map toJson() { + return { + "contactId": contactId, + "lastCheckedTweets": lastCheckedTweets?.toIso8601String(), + "lastCheckedGit": lastCheckedGit?.toIso8601String(), + "lastUpdatedTwitter": lastUpdatedTwitter?.toIso8601String(), + "lastUpdatedGit": lastUpdatedGit?.toIso8601String() + }; + } +} diff --git a/flokk_src/lib/data/tweet_data.dart b/flokk_src/lib/data/tweet_data.dart new file mode 100644 index 0000000..65791d2 --- /dev/null +++ b/flokk_src/lib/data/tweet_data.dart @@ -0,0 +1,105 @@ +import 'package:flokk/data/date_sortable_interface.dart'; +import 'package:flokk/data/twitter_user_data.dart'; +import 'package:json_annotation/json_annotation.dart'; + +part 'tweet_data.g.dart'; + +@JsonSerializable(explicitToJson: true) +class Tweet implements DateSortable { + @JsonKey(name: "id_str") + String id; + + @JsonKey(name: "full_text") + String text; + + @JsonKey(defaultValue: false) + bool truncated; + + @JsonKey(defaultValue: false) + bool retweeted; + + @JsonKey(name: "retweet_count", defaultValue: 0) + int retweetCount; + + @JsonKey(name: "favorite_count", defaultValue: 0) + int favoriteCount; + + @JsonKey(name: "created_at") + String createdAtString; + + //Tweet dates use a Date string that is not compatible with DateTime.parse(), have to manually parse + @override + @JsonKey(ignore: true) + DateTime createdAt; + + //Url is populated at runtime based on tweet id + @JsonKey(ignore: true) + String url; + + TwitterUser user; + + Tweet(); + + static DateTime parseTwitterDateTime(String s) { + final r = RegExp(r"\w+\s(\w+)\s(\d+)\s([\d:]+)\s\+\d{4}\s(\d{4})"); + RegExpMatch m = r.firstMatch(s); + + String year = m?.group(4) ?? "1970"; + String month = m?.group(1) ?? "01"; + String day = m?.group(2) ?? "01"; + String time = m?.group(3) ?? "00:00:00"; + + switch (month) { + case "Jan": + month = "01"; + break; + case "Feb": + month = "02"; + break; + case "Mar": + month = "03"; + break; + case "Apr": + month = "04"; + break; + case "May": + month = "05"; + break; + case "Jun": + month = "06"; + break; + case "Jul": + month = "07"; + break; + case "Aug": + month = "08"; + break; + case "Sep": + month = "09"; + break; + case "Oct": + month = "10"; + break; + case "Nov": + month = "11"; + break; + case "Dec": + month = "12"; + break; + default: + month = "01"; + break; + } + + return DateTime.parse("$year-$month-$day $time Z"); + } + + factory Tweet.fromJson(Map json) { + Tweet tweet = _$TweetFromJson(json); + tweet.createdAt = parseTwitterDateTime(tweet.createdAtString); + tweet.url = "https://twitter.com/i/web/status/${tweet.id}"; + return tweet; + } + + Map toJson() => _$TweetToJson(this); +} diff --git a/flokk_src/lib/data/tweet_data.g.dart b/flokk_src/lib/data/tweet_data.g.dart new file mode 100644 index 0000000..5560818 --- /dev/null +++ b/flokk_src/lib/data/tweet_data.g.dart @@ -0,0 +1,32 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'tweet_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +Tweet _$TweetFromJson(Map json) { + return Tweet() + ..id = json['id_str'] as String + ..text = json['full_text'] as String + ..truncated = json['truncated'] as bool ?? false + ..retweeted = json['retweeted'] as bool ?? false + ..retweetCount = json['retweet_count'] as int ?? 0 + ..favoriteCount = json['favorite_count'] as int ?? 0 + ..createdAtString = json['created_at'] as String + ..user = json['user'] == null + ? null + : TwitterUser.fromJson(json['user'] as Map); +} + +Map _$TweetToJson(Tweet instance) => { + 'id_str': instance.id, + 'full_text': instance.text, + 'truncated': instance.truncated, + 'retweeted': instance.retweeted, + 'retweet_count': instance.retweetCount, + 'favorite_count': instance.favoriteCount, + 'created_at': instance.createdAtString, + 'user': instance.user?.toJson(), + }; diff --git a/flokk_src/lib/data/twitter_user_data.dart b/flokk_src/lib/data/twitter_user_data.dart new file mode 100644 index 0000000..51d9368 --- /dev/null +++ b/flokk_src/lib/data/twitter_user_data.dart @@ -0,0 +1,49 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'twitter_user_data.g.dart'; + +@JsonSerializable() +class TwitterUser { + int id; + String name; + + @JsonKey(name: "screen_name", defaultValue: 0) + String screenName; + + String location; + String description; + String url; + + @JsonKey(defaultValue: false) + bool protected; + + @JsonKey(defaultValue: false) + bool verified; + + @JsonKey(name: "followers_count", defaultValue: 0) + int followersCount; + + @JsonKey(name: "friends_count", defaultValue: 0) + int friendsCount; + + @JsonKey(name: "listed_count", defaultValue: 0) + int listedCount; + + @JsonKey(name: "statuses_count", defaultValue: 0) + int statusesCount; + + @JsonKey(name: "profile_image_url_https") + String profileImageUrl; + + @JsonKey(name: "profile_background_image_url_https") + String profileBackgroundImageUrl; + + @JsonKey(name: "profile_use_background_image", defaultValue: false) + bool profileUseBackgroundImage; + + TwitterUser(); + + factory TwitterUser.fromJson(Map json) => _$TwitterUserFromJson(json); + + Map toJson() => _$TwitterUserToJson(this); +} diff --git a/flokk_src/lib/data/twitter_user_data.g.dart b/flokk_src/lib/data/twitter_user_data.g.dart new file mode 100644 index 0000000..81b1b33 --- /dev/null +++ b/flokk_src/lib/data/twitter_user_data.g.dart @@ -0,0 +1,47 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'twitter_user_data.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +TwitterUser _$TwitterUserFromJson(Map json) { + return TwitterUser() + ..id = json['id'] as int + ..name = json['name'] as String + ..screenName = json['screen_name'] as String ?? 0 + ..location = json['location'] as String + ..description = json['description'] as String + ..url = json['url'] as String + ..protected = json['protected'] as bool ?? false + ..verified = json['verified'] as bool ?? false + ..followersCount = json['followers_count'] as int ?? 0 + ..friendsCount = json['friends_count'] as int ?? 0 + ..listedCount = json['listed_count'] as int ?? 0 + ..statusesCount = json['statuses_count'] as int ?? 0 + ..profileImageUrl = json['profile_image_url_https'] as String + ..profileBackgroundImageUrl = + json['profile_background_image_url_https'] as String + ..profileUseBackgroundImage = + json['profile_use_background_image'] as bool ?? false; +} + +Map _$TwitterUserToJson(TwitterUser instance) => + { + 'id': instance.id, + 'name': instance.name, + 'screen_name': instance.screenName, + 'location': instance.location, + 'description': instance.description, + 'url': instance.url, + 'protected': instance.protected, + 'verified': instance.verified, + 'followers_count': instance.followersCount, + 'friends_count': instance.friendsCount, + 'listed_count': instance.listedCount, + 'statuses_count': instance.statusesCount, + 'profile_image_url_https': instance.profileImageUrl, + 'profile_background_image_url_https': instance.profileBackgroundImageUrl, + 'profile_use_background_image': instance.profileUseBackgroundImage, + }; diff --git a/flokk_src/lib/globals.dart b/flokk_src/lib/globals.dart new file mode 100644 index 0000000..a724caa --- /dev/null +++ b/flokk_src/lib/globals.dart @@ -0,0 +1,7 @@ +import 'package:flutter/material.dart'; + +class AppGlobals { + static GlobalKey rootNavKey = GlobalKey(); + + static NavigatorState get nav => rootNavKey.currentState; +} diff --git a/flokk_src/lib/main.dart b/flokk_src/lib/main.dart new file mode 100644 index 0000000..c11bbc4 --- /dev/null +++ b/flokk_src/lib/main.dart @@ -0,0 +1,176 @@ +import 'package:flokk/_internal/components/no_glow_scroll_behavior.dart'; +import 'package:flokk/_internal/page_routes.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/bootstrap_command.dart'; +import 'package:flokk/commands/check_connection_command.dart'; +import 'package:flokk/commands/social/poll_social_command.dart'; +import 'package:flokk/globals.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/auth_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/services/github_rest_service.dart'; +import 'package:flokk/services/google_rest/google_rest_service.dart'; +import 'package:flokk/services/twitter_rest_service.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/welcome/welcome_page.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:universal_platform/universal_platform.dart'; + +//Developer hook to force login while testing locally (sidesteps Oauth flow) +const bool kForceWebLogin = bool.fromEnvironment('flokk.forceWebLogin', defaultValue: false); + +bool tryAndLoadDevSpike(BuildContext c) { + Widget spike; + + /// Load spike if we have one + if (spike != null) AppGlobals.nav.pushReplacement(PageRoutes.fade(() => spike)); + return spike != null; +} + +void main() { + /// Need to add this in order to run on Desktop. See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override + if (UniversalPlatform.isWindows || UniversalPlatform.isLinux || UniversalPlatform.isMacOS) { + debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia; + } + + /// Initialize models, negotiate dependencies + var contactsModel = ContactsModel(); + var twitterModel = TwitterModel(contactsModel); + var githubModel = GithubModel(contactsModel); + var appModel = AppModel(contactsModel); + contactsModel.twitterModel = twitterModel; + contactsModel.gitModel = githubModel; + + /// Run MainApp, and provide all Models and Services + runApp( + MultiProvider( + providers: [ + /// MODELS + ChangeNotifierProvider.value(value: appModel), + ChangeNotifierProvider.value(value: contactsModel), + ChangeNotifierProvider.value(value: twitterModel), + ChangeNotifierProvider.value(value: githubModel), + ChangeNotifierProvider(create: (c) => AuthModel()), + + /// SERVICES + Provider(create: (_) => GoogleRestService()), + Provider(create: (_) => GithubRestService()), + Provider(create: (_) => TwitterRestService()), + + /// ROOT CONTEXT, Allows Commands to retrieve a 'safe' context that is not tied to any one view. Allows them to work on async tasks without issues. + Provider(create: (c) => c), + ], + child: MainApp(), + //child: SpikeApp(ImageTintSpike()), + ), + ); +} + +/// MainApp +/// * Binds to AppModel.theme, and injects current AppTheme to the rest of the App +/// * Runs the BootStrapperCommand +/// * Wraps a MaterialApp, assigning it a navKey so the Commands can access the root level navigator +class MainApp extends StatefulWidget { + @override + _MainAppState createState() => _MainAppState(); +} + +class _MainAppState extends State { + final GlobalKey _welcomePageKey = GlobalKey(); + CheckConnectionCommand _connectionChecker; + PollSocialCommand _pollSocialCommand; + bool _settingsLoaded = false; + + @override + void initState() { + /// Load appModel first, to fetch the appTheme ASAP + context.read().load().then((value) async { + /// Rebuild now that we have our loaded settings + setState(() => _settingsLoaded = true); + + /// /////////////////////////////////////////////// + /// Continous Background Services + // Connection checker, will run continuously until cancelled + _connectionChecker = CheckConnectionCommand(context)..execute(true); + + // Polling for social feeds, will run continuously until cancelled + _pollSocialCommand = PollSocialCommand(context)..execute(true); + + /// /////////////////////////////////////////////// + /// Bootstrap app + /// When bootstrap is complete, we know whether to sign in, or not + bool isSignedIn = await BootstrapCommand(context).execute(); + // First, allow dev-spike to take precedence over normal startup flow + if (tryAndLoadDevSpike(context)) return; + // Use welcome-page to complete remaining sign-in flow + WelcomePageState welcomePage = _welcomePageKey.currentState; + if (isSignedIn == true) { + // Login into the main app + welcomePage.refreshDataAndLoadApp(); + } else { + // Show login panel so user can sign-in + welcomePage.showPanel(true); + } + }); + super.initState(); + } + + @override + void dispose() { + _connectionChecker.cancel(); + _pollSocialCommand.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + /// If we've not loaded settings, + if (!_settingsLoaded) return Container(color: Colors.white); + + // TODO: Use platform brightness to determine default theme. // MediaQuery.of(context).platformBrightness; + /// Bind to AppModel.theme and get current theme + ThemeType themeType = context.select((value) => value.theme); + AppTheme theme = AppTheme.fromType(themeType); + + /// Disable shadows on web builds for better performance + if (UniversalPlatform.isWeb && !AppModel.enableShadowsOnWeb) { + Shadows.enabled = false; + } + + /// /////////////////////////////////////////////// + /// Main application + return Provider.value( + value: theme, // Provide the current theme to the entire app + child: MaterialApp( + title: "Flokk Contacts", + debugShowCheckedModeBanner: false, + navigatorKey: AppGlobals.rootNavKey, + + /// Pass active theme into MaterialApp + theme: theme.themeData, + + /// Home defaults to SplashView, BootstrapCommand will load the initial page + home: WelcomePage(key: _welcomePageKey), + + /// Wrap root navigator in various styling widgets + builder: (_, navigator) { + // Wrap root page in a builder, so we can make initial responsive tweaks based on MediaQuery + return Builder(builder: (c) { + //Responsive: Reduce size of our gutter scale when we're below a certain size + Insets.gutterScale = c.widthPx < PageBreaks.TabletPortrait ? .5 : 1; + // Disable all Material glow effects with [ NoGlowScrollBehavior ] + return ScrollConfiguration( + behavior: NoGlowScrollBehavior(), + child: navigator, + ); + }); + }, + ), + ); + } +} diff --git a/flokk_src/lib/models/abstract_model.dart b/flokk_src/lib/models/abstract_model.dart new file mode 100644 index 0000000..70577df --- /dev/null +++ b/flokk_src/lib/models/abstract_model.dart @@ -0,0 +1,61 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/universal_file/universal_file.dart'; +import 'package:flutter/cupertino.dart'; + +abstract class AbstractModel extends ChangeNotifier { + UniversalFile _file; + + void reset([bool notify = true]) { + copyFromJson({}); + if (notify) notifyListeners(); + scheduleSave(); + } + + void notify() => notifyListeners(); + + //Make sure that we don't spam the file systems, cap saves to a max frequency + bool _isSaveScheduled = false; + + //[SB] This is a helper method + void scheduleSave() async { + if (_isSaveScheduled) return; + _isSaveScheduled = true; + await Future.delayed(Duration(seconds: 1)); + save(); + _isSaveScheduled = false; + } + + //Loads a string from disk, and parses it into ourselves. + Future load() async { + String string = await _file.read().catchError((e, s) => Log.e(e, stack: s)) ?? "{}"; + if (string != null) { + copyFromJson(jsonDecode(string)); + } + } + + Future save() async => _file.write(jsonEncode(toJson())); + + //Enable file serialization, remember to override the to/from serialization methods as well + void enableSerialization(String fileName) { + _file = UniversalFile(fileName); + } + + Map toJson() { + // This should be over-ridden in concrete class to enable serialization + throw UnimplementedError(); + } + + dynamic copyFromJson(Map json) { + // This should be over-ridden in concrete class to enable serialization + throw UnimplementedError(); + } + + List toList(dynamic json, Function(dynamic) fromJson) { + final List list = (json as Iterable)?.map((e) { + return e == null ? null : fromJson(e) as T; + })?.toList(); + return list; + } +} diff --git a/flokk_src/lib/models/app_model.dart b/flokk_src/lib/models/app_model.dart new file mode 100644 index 0000000..7b7f4c9 --- /dev/null +++ b/flokk_src/lib/models/app_model.dart @@ -0,0 +1,161 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/abstract_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flokk/views/search/search_engine.dart'; + +enum DashboardContactsSectionType { Favorites, RecentlyActive } + +enum DashboardSocialSectionType { All, Git, Twitter } + +/// ////////////////////////////////////////////////////// +/// APP MODEL - Holds global state/settings for various app components and views. +/// A mix of different values: Current theme, app version, settings, online status, selected sections etc. +/// Some of the values are serialized in app.settings file +class AppModel extends AbstractModel { + static const kCurrentVersion = "1.0.1"; + + static bool forceIgnoreGoogleApiCalls = false; + + static bool get enableShadowsOnWeb => true; + + static bool get enableAnimationsOnWeb => true; + + /// Toggle fpsMeter + static bool get showFps => false; + + /// Toggle Sketch Design Grid + static bool get showDesignGrid => false; + + /// Ignore limiting cooldown periods (tweets, git events, git repos, groups), always fetch for each request + static bool get ignoreCooldowns => false; + + ContactsModel contactsModel; + + AppModel(this.contactsModel) { + enableSerialization("app.settings"); + contactsModel.addListener(_handleContactsChanged); + } + + void _handleContactsChanged() { + /// Update search engine with latest results + searchEngine.contactsList = contactsModel.allContacts; + searchEngine.groupsList = contactsModel.allGroups; + + /// Watch selected contact and keep it updated when contacts model changes + if (selectedContact != null) { + selectedContact = contactsModel.getContactById(selectedContact.id); + } + } + + /// ////////////////////////////////////////////////// + /// Version Info (serialized) + String version = "0.0.0"; + + void upgradeToVersion(String value) { + // Any version specific upgrade checks can go here + version = value; + scheduleSave(); + } + + /// ///////////////////////////////////////////////// + /// Current dashboard sections (serialized) + DashboardContactsSectionType get dashContactsSection => _dashContactsSection; + DashboardContactsSectionType _dashContactsSection; + + set dashContactsSection(DashboardContactsSectionType value) { + _dashContactsSection = value; + notifyListeners(); + } + + DashboardSocialSectionType get dashSocialSection => _dashSocialSection; + DashboardSocialSectionType _dashSocialSection; + + set dashSocialSection(DashboardSocialSectionType value) { + _dashSocialSection = value; + notifyListeners(); + } + + /// ////////////////////////////////////////////////// + /// Selected edit target, controls visibility of the edit panel and selected rows in the various views + ContactData get selectedContact => _selectedContact; + ContactData _selectedContact; + + void touchSelectedSocial() => contactsModel.touchSocialById(selectedContact?.id); + + /// Current selected edit target, controls visibility of the edit panel + set selectedContact(ContactData value) { + _selectedContact = value; + notifyListeners(); + } + + bool get showSocialTabOnInfoView => _showSocialTabOnInfoView; + bool _showSocialTabOnInfoView = false; + + set showSocialTabOnInfoView(bool value) { + _showSocialTabOnInfoView = value; + if (_showSocialTabOnInfoView) { + touchSelectedSocial(); + } + notifyListeners(); + } + + /// ////////////////////////////////////////////////// + /// Global search settings, this is a changeNotifier itself, views can bind directly to it if they need. + SearchEngine searchEngine = SearchEngine(); + + /// ////////////////////////////////////////////////// + /// Holds current page type, synchronizes leftMenu with the mainContent + PageType get currentMainPage => _currentMainPage; + PageType _currentMainPage; + + set currentMainPage(PageType value) { + _currentMainPage = value; + notifyListeners(); + } + + /// ////////////////////////////////////////// + /// Current connection status + bool get isOnline => _isOnline; + bool _isOnline = true; + + set isOnline(bool value) { + _isOnline = value; + notifyListeners(); + } + + /// ////////////////////////////////////////// + /// Current Theme (serialized) + ThemeType get theme => _theme; + ThemeType _theme; + + set theme(ThemeType value) { + _theme = value; + scheduleSave(); + notifyListeners(); + } + + @override + void copyFromJson(Map json) { + var v = ThemeType.values; + int theme = json["_theme"] ?? 0; + _theme = v[theme.clamp(0, v.length)]; + _dashContactsSection = DashboardContactsSectionType.values[json['_dashContactsSection'] ?? 0]; + _dashSocialSection = DashboardSocialSectionType.values[json['_dashSocialSection'] ?? 0]; + version = json['version']; + } + + @override + Map toJson() => { + "_theme": _theme.index, + 'version': version, + '_dashContactsSection': _dashContactsSection.index, + '_dashSocialSection': _dashSocialSection.index + }; + + /// [SB] Just for easy testing, remove later + void nextTheme() { + theme = (theme == ThemeType.FlockGreen_Dark) ? ThemeType.FlockGreen : ThemeType.FlockGreen_Dark; + } +} diff --git a/flokk_src/lib/models/auth_model.dart b/flokk_src/lib/models/auth_model.dart new file mode 100644 index 0000000..98bfd36 --- /dev/null +++ b/flokk_src/lib/models/auth_model.dart @@ -0,0 +1,80 @@ +import 'package:flokk/_internal/log.dart'; +import "package:flokk/_internal/utils/string_utils.dart"; +import "package:flokk/models/abstract_model.dart"; +import 'package:google_sign_in/google_sign_in.dart'; + +class AuthModel extends AbstractModel { + String googleRefreshToken; + String googleEmail; + String googleSyncToken; + DateTime _expiry = DateTime.fromMillisecondsSinceEpoch(0); + GoogleSignIn googleSignIn; //instance of google sign in; only set if web + + AuthModel() { + enableSerialization("auth.dat"); + } + + //Helper method to quickly lookup last known auth state, does not mean user is necessarily verified, the auth token may be expired. + bool get hasAuthKey => !StringUtils.isEmpty(_googleAccessToken); + + bool get isExpired => expiry.isBefore(DateTime.now()); + + DateTime get expiry => _expiry; + + bool get isAuthenticated => !isExpired && hasAuthKey; + + //Using a setExpiry() method instead of a setter, because it's a bit weird to have different values (int for set vs DateTime for get). + //Setting it with int makes more sense because the auth result returns expiry time in seconds. + //Getting it with DateTime makes more sense because it's easier to deal with and check against. + void setExpiry(int seconds) { + _expiry = DateTime.now().add(Duration(seconds: seconds)); + } + + ///////////////////////////////////////////////////////////////////// + // Access Token + String _googleAccessToken; + + String get googleAccessToken => _googleAccessToken; + + set googleAccessToken(String value) { + _googleAccessToken = value; + notifyListeners(); + } + + @override + void reset([bool notify = true]) { + Log.p("[AuthModel] Reset"); + _googleAccessToken = null; + googleRefreshToken = null; + googleSyncToken = null; + googleEmail = null; + _expiry = null; + if (googleSignIn != null) { + googleSignIn.disconnect(); + } + super.reset(notify); + } + + ///////////////////////////////////////////////////////////////////// + // Define serialization methods + + @override + void copyFromJson(Map json) { + this + .._googleAccessToken = json["_googleAccessToken"] + ..googleRefreshToken = json["googleRefreshToken"] + ..googleSyncToken = json["googleSyncToken"] + ..googleEmail = json["googleEmail"] + .._expiry = json["_expiry"] != null ? DateTime.parse(json["_expiry"]) : DateTime.fromMillisecondsSinceEpoch(0); + ; + } + + @override + Map toJson() => { + "_googleAccessToken": _googleAccessToken, + "googleRefreshToken": googleRefreshToken, + "googleSyncToken": googleSyncToken, + "googleEmail": googleEmail, + "_expiry": _expiry.toString() + }; +} diff --git a/flokk_src/lib/models/contacts_model.dart b/flokk_src/lib/models/contacts_model.dart new file mode 100644 index 0000000..649efca --- /dev/null +++ b/flokk_src/lib/models/contacts_model.dart @@ -0,0 +1,265 @@ +import 'package:flokk/_internal/log.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/data/social_contact_data.dart'; +import 'package:flokk/models/abstract_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/services/google_rest/google_rest_service.dart'; +import 'package:tuple/tuple.dart'; + +class ContactsModel extends AbstractModel { + final DateTime epoch = DateTime.fromMillisecondsSinceEpoch(0); + + final gitEventsCooldown = Duration(minutes: 5); + final tweetsCooldown = Duration(minutes: 1); + final contactGroupsCooldown = Duration(seconds: 20); + + DateTime lastUpdatedGroups = DateTime.fromMillisecondsSinceEpoch(0); //can't just use epoch because "only static members can be used in initializers" + + ContactsModel() { + enableSerialization("contacts.dat"); + } + + TwitterModel twitterModel; + GithubModel gitModel; + + //Groups + List get allGroups => _allGroups ?? []; + List _allGroups = [GroupData()..name = ""]; + + set allGroups(List value) { + _allGroups = value; + _updateContactsGroups(); + notifyListeners(); + } + + GroupData getGroupById(String value) => _allGroups.firstWhere((g) => g.id == value, orElse: () => null); + + GroupData getGroupByName(String value) => _allGroups.firstWhere((g) => g.name == value, orElse: () => null); + + //Contacts List + List get activeContacts => allContacts.where((c) => !c.isDeleted).toList(); + + List get starred => allContacts.where((c) => c.isStarred).toList(); + + List get allContacts => _allContacts; + List _allContacts = []; + + set allContacts(List value) { + _allContacts = value; + _updateSocialContacts(); + notifyListeners(); + } + + ContactData getContactById(String id) => _allContacts.firstWhere((c) => c.id == id, orElse: () => null); + + void addContact(ContactData contact) { + _allContacts.add(contact); + _updateSocialContacts(); + notifyListeners(); + } + + void removeContact(ContactData contact) { + _allContacts.removeWhere((c) => c.id == contact.id); + _updateSocialContacts(); + notifyListeners(); + } + + void swapContactById(ContactData newContact) { + ContactData oldContact = getContactById(newContact.id); + if (oldContact != null) { + //[SB] Keep isStarred in sync when we swap contents since this is injected by the [updateContactsWithGroupData] fxn. + newContact.isStarred = oldContact.isStarred; + newContact.groupList = oldContact.groupList; + _allContacts[_allContacts.indexOf(oldContact)] = newContact; + notifyListeners(); + } + } + + void swapGroupById(GroupData newGroup) { + for (var i = _allGroups.length; i-- > 0;) { + if (_allGroups[i].id != newGroup.id) continue; + _allGroups[i] = newGroup; + notifyListeners(); + break; + } + } + + //Social contacts + List _allSocialContacts = []; + + List get allSocialContacts { + _updateSocialContacts(); + return _allSocialContacts; + } + + void touchSocialById(String id) { + SocialContactData social = getSocialById(id); + if (social != null) { + social.lastCheckedTweets = DateTime.now(); + social.lastCheckedGit = DateTime.now(); + notifyListeners(); + scheduleSave(); + } + } + + void clearGitCooldown(ContactData contact) { + getSocialById(contact.id)?.lastUpdatedGit = epoch; + getSocialById(contact.id)?.lastCheckedGit = epoch; + } + + void clearTwitterCooldown(ContactData contact) { + getSocialById(contact.id)?.lastUpdatedTwitter = epoch; + getSocialById(contact.id)?.lastCheckedTweets = epoch; + } + + bool canRefreshGitEventsFor(String gitUsername) { + DateTime lastUpdate = getSocialContactByGit(gitUsername)?.lastUpdatedGit ?? epoch; + return DateTime.now().difference(lastUpdate) > gitEventsCooldown; + } + + bool canRefreshTweetsFor(String twitterHandle) { + DateTime lastUpdate = getSocialContactByTwitter(twitterHandle)?.lastUpdatedTwitter ?? epoch; + return DateTime.now().difference(lastUpdate) > tweetsCooldown; + } + + bool get canRefreshContactGroups => DateTime.now().difference(lastUpdatedGroups ?? epoch) > contactGroupsCooldown; + + //Updates the timestamps when social feeds are refreshed for contact + void updateSocialTimestamps({String twitterHandle, String gitUsername}) { + if (!StringUtils.isEmpty(twitterHandle)) { + getSocialContactByTwitter(twitterHandle)?.lastUpdatedTwitter = DateTime.now(); + } + if (!StringUtils.isEmpty(gitUsername)) { + getSocialContactByGit(gitUsername)?.lastUpdatedGit = DateTime.now(); + } + } + + void updateContactDataGithubValidity(String gitUsername, bool isValid) { + allContacts?.firstWhere((x) => x.gitUsername == gitUsername, orElse: () => null)?.hasValidGit = isValid; + } + + void updateContactDataTwitterValidity(String twitterHandle, bool isValid) { + allContacts?.firstWhere((x) => x.twitterHandle == twitterHandle, orElse: () => null)?.hasValidTwitter = isValid; + } + + ContactData getContactByGit(String gitUsername) => + allContacts?.firstWhere((x) => x.gitUsername == gitUsername, orElse: () => null); + + ContactData getContactByTwitter(String twitterHandle) => + allContacts?.firstWhere((x) => x.twitterHandle == twitterHandle, orElse: () => null); + + SocialContactData getSocialContactByGit(String gitUsername) => getSocialById(getContactByGit(gitUsername)?.id); + + SocialContactData getSocialContactByTwitter(String twitterHandle) => + getSocialById(getContactByTwitter(twitterHandle)?.id); + + //Get a list of contacts with the most activity (based on their calculated "points" for each social activity) + List get mostActiveSocialContacts => + allSocialContacts..sort((a, b) => b.points.compareTo(a.points)); + + //Get a list of contacts with the most recent activity + List get mostRecentSocialContacts => allSocialContacts + ..sort((a, b) => (b.latestActivity?.createdAt ?? epoch).compareTo(a.latestActivity?.createdAt ?? epoch)); + + SocialContactData getSocialById(String id) { + if (StringUtils.isEmpty(id)) return null; + return allSocialContacts?.firstWhere((c) => c.contactId == id, orElse: () => null); + } + + //Get a list of contacts with upcoming dates (repeated contacts are expected if they have multiple events that are upcoming) + List> get upcomingDateContacts { + //List of all dates (birthday and events) with their contact id + List> flattenedDates = allContacts + .map((contact) => contact.allDates.map((x) => Tuple2(contact.id, x)).toList()) + .toList() + .expand((element) => element) + .where((element) => element.item2.daysTilAnniversary < 90) //limit to upcoming dates for next 3 months + .toList(); + + //Sort by the closest upcoming dates + flattenedDates.sort((a, b) => a.item2.daysTilAnniversary.compareTo(b.item2.daysTilAnniversary)); + + List> contactsWithDates = []; + for (var n in flattenedDates) { + contactsWithDates.add(Tuple2(getContactById(n.item1), n.item2)); + } + return contactsWithDates; + } + + void _updateContactsGroups() { + if (_allContacts.isEmpty) return; + + /// Clear all known existing groups + _allContacts..forEach((c) => c.groupList = []); + + /// Set the labels for each contact (groupList) + for (GroupData g in _allGroups) { + if (g.groupType == GroupType.UserContactGroup) { + for (String id in g.members) { + ContactData contact = getContactById(id); + if (contact != null) { + contact.groupList.add(g); + // print("name: ${contact.nameFull} labels: ${contact.groupList.join(',')}"); + } + } + } + //Set the isStarred property for each ContactData who is member of Starred contact group + if (g.id == GoogleRestService.kStarredGroupId) { + for (ContactData c in _allContacts) { + c.isStarred = g.members.contains(c.id); + } + } + } + } + + void _updateSocialContacts() { + //clean up any social contacts that are NOT found in all contacts + _allSocialContacts.removeWhere((x) => !_allContacts.any((c) => c.id == x.contactId)); + + //create social contact if needed, otherwise just update tweets/events + for (var n in _allContacts) { + if (n.hasAnySocial) { + if (!_allSocialContacts.any((x) => x.contactId == n.id)) { + _allSocialContacts.add(SocialContactData() + ..contactId = n.id + ..contact = n + ..gitEvents = gitModel.getEventsByContact(n) + ..tweets = twitterModel.getTweetsByContact(n)); + } else { + SocialContactData socialContact = _allSocialContacts.firstWhere((x) => x.contactId == n.id); + socialContact.contact = n; + socialContact.gitEvents = gitModel.getEventsByContact(n); + socialContact.tweets = twitterModel.getTweetsByContact(n); + } + } + } + } + + @override + void reset([bool notify = true]) { + Log.p("[ContactsModel] Reset"); + copyFromJson({}); + super.reset(notify); + } + + ///////////////////////////////////////////////////////////////////// + // Define serialization methods + + //Json Serialization + @override + ContactsModel copyFromJson(Map value) { + _allContacts = toList(value['_allContacts'], (j) => ContactData.fromJson(j)) ?? []; + _allGroups = toList(value['_allGroups'], (j) => GroupData.fromJson(j)) ?? []; + _allSocialContacts = toList(value['_allSocialContacts'], (j) => SocialContactData.fromJson(j)) ?? []; + _updateSocialContacts(); + return this; + } + + @override + Map toJson() { + return {'_allContacts': _allContacts, '_allGroups': _allGroups, '_allSocialContacts': _allSocialContacts}; + } +} diff --git a/flokk_src/lib/models/github_model.dart b/flokk_src/lib/models/github_model.dart new file mode 100644 index 0000000..b3c3231 --- /dev/null +++ b/flokk_src/lib/models/github_model.dart @@ -0,0 +1,202 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/git_repo_data.dart'; +import 'package:flokk/models/abstract_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:github/github.dart'; +import 'package:tuple/tuple.dart'; + +class GithubModel extends AbstractModel { + final DateTime epoch = DateTime.fromMillisecondsSinceEpoch(0); + final expiry = Duration(days: 30); //the period of which to cull events based on createdAt + final repoStaleTime = Duration(hours: 72); + ContactsModel contactsModel; + + //Each event has a repo reference, however not all fields populated in repo object because full set of data not returned in service call. Need separate calls to look up and rely on model to inject as needed + Map> _eventsHash = {}; + Map _reposHash = {}; + + GithubModel(this.contactsModel) { + enableSerialization("github.dat"); + } + + @override + void scheduleSave() { + cull(); + super.scheduleSave(); + } + + /// ////////////////////////////////////////////////////////////////// + /// Serialization + + @override + GithubModel copyFromJson(Map json) { + _eventsHash = (json["_eventsHash"] as Map)?.map((key, value) => + MapEntry>(key, (value as List).map((x) => GitEvent.fromJson(x))?.toList())) ?? + {}; + _reposHash = (json["_reposHash"] as Map) + ?.map((key, value) => MapEntry(key, GitRepo.fromJson(value))) ?? + {}; + return this; + } + + @override + Map toJson() => {"_eventsHash": _eventsHash, "_reposHash": _reposHash}; + + /// ////////////////////////////////////////////////////////////////// + /// Public API + bool get isLoading => _isLoading; + bool _isLoading = false; + + set isLoading(bool isLoading) { + _isLoading = isLoading; + notifyListeners(); + } + + ///////////////////////////////////////////////////////////////////// + // Repos + bool repoExists(String repoFullName) => _reposHash.containsKey(repoFullName); + + bool repoIsStale(String repoFullName) => + !repoExists(repoFullName) || + DateTime.now().difference(_reposHash[repoFullName].lastUpdated ?? epoch) > repoStaleTime; + + + //Get all user repos + List get allRepos { + return _reposHash.values.toList(); + } + + + void addRepos(List repos) { + for (var n in repos) { + _reposHash[n.repository.fullName] = n; + } + notifyListeners(); + } + + void addRepo(GitRepo repo) { + _reposHash[repo.repository.fullName] = repo; + } + + + //Get repos associated with contact (either it was part of their Event, or else they own it) + List getReposByContact(ContactData contact) { + if (contact.hasGit) { + List events = getEventsByContact(contact); + + //Distinct (no duplicates) list of repo names from contact events + List repoNames = events.map((x) => x.event.repo.name).toSet().toList(); + + //Get repos either owned by contact or is part of the contact events + List repos = _reposHash.values + .where((x) => + //x.owner.login == contact.gitUsername || + repoNames.any((e) => e == x.repository.fullName)) + .map((x) => x + ..contacts = [contact] + ..latestActivityDate = x.repository.updatedAt) + .toList(); + return repos; + } else { + return []; + } + } + + //Get the most popular repos + List get popularRepos { + List> popular = []; + for (var n in allRepos) { + int pts = 0; + pts += (n.repository.stargazersCount ?? 0) * 3; + pts += (n.repository.forksCount ?? 0) * 2; + pts += (n.repository.watchersCount ?? 0) * 1; + + //All events associated with this repo + List associatedEvents = _eventsHash.values + .expand((x) => x) //flatten + .where((x) => x.event.repo.name == n.repository.fullName) + .toList(); + + //All contacts associated with this repo + List associatedContacts = associatedEvents + .map((x) => x.event.actor.login) + .toSet() + .toList() //get distinct git usernames for each event + .map((x) => contactsModel.getContactByGit(x)) //get contact by gitusername + .toList(); + + //Get the latest date from the events associated with this repo or else fall back to repository.updatedAt + associatedEvents?.sort((a, b) => b.createdAt.compareTo(a.createdAt)); + DateTime latestActivityDate = associatedEvents.isNotEmpty + ? associatedEvents.first?.createdAt ?? n.repository.updatedAt + : n.repository.updatedAt; + + if (associatedContacts.isNotEmpty) { + popular.add(Tuple2( + pts, + n + ..contacts = associatedContacts + ..latestActivityDate = latestActivityDate)); + } + } + popular.sort((a, b) => b.item1.compareTo(a.item1)); + List repos = popular.map((x) => x.item2).toList(); + return repos; + } + + + ///////////////////////////////////////////////////////////////////// + // Events + //Get all events sorted by time + List get allEvents { + final sorted = _eventsHash.values.toList().expand((x) => x).toList(); + sorted.sort((a, b) => (b?.createdAt ?? epoch).compareTo(a?.createdAt ?? epoch)); + + //inject the repos data for each event + for (var n in sorted) { + n.repository = _reposHash[n?.event?.repo?.name]?.repository ?? + Repository(id: n?.event?.repo?.id, name: n?.event?.repo?.name, htmlUrl: n?.event?.repo?.htmlUrl); + } + + return sorted; + } + + //Get events for single contact + List getEventsByContact(ContactData contact) { + if (_eventsHash.containsKey(contact.gitUsername)) { + return _eventsHash[contact.gitUsername]; + } + return []; + } + + + void addEvents(String gitUsername, List events) { + final current = DateTime.now(); + _eventsHash[gitUsername] = events.where((x) => (current.difference(x.createdAt)) < expiry).toList(); + notifyListeners(); + } + + void removeEvents(String gitUsername) { + _eventsHash.remove(gitUsername); + } + + void cull() { + //remove old events + final current = DateTime.now(); + for (List n in _eventsHash.values) { + n.removeWhere((x) => current.difference(x.createdAt) >= expiry); + } + _eventsHash.removeWhere((key, value) => value.isEmpty); + + //cull unused repos + final repoKeys = _reposHash.keys.toList(); + for (String n in repoKeys) { + if (allEvents.any((x) => x.event.repo.name == n)) { + continue; + } + _reposHash.remove(n); + } + notifyListeners(); + } +} diff --git a/flokk_src/lib/models/twitter_model.dart b/flokk_src/lib/models/twitter_model.dart new file mode 100644 index 0000000..b7b5632 --- /dev/null +++ b/flokk_src/lib/models/twitter_model.dart @@ -0,0 +1,113 @@ +import "package:flokk/_internal/utils/string_utils.dart"; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/tweet_data.dart'; +import "package:flokk/models/abstract_model.dart"; +import 'package:flokk/models/contacts_model.dart'; +import 'package:tuple/tuple.dart'; + +class TwitterModel extends AbstractModel { + final expiry = Duration(days: 30); //the period of which to cull tweets based on createdAt + + ContactsModel contactsModel; + + TwitterModel(this.contactsModel) { + enableSerialization("twitter.dat"); + } + + @override + void scheduleSave() { + cull(); + super.scheduleSave(); + } + + /// ////////////////////////////////////////////////////////////////// + /// Serialization + @override + TwitterModel copyFromJson(Map json) { + _twitterAccessToken = json["_twitterAccessToken"] ?? ""; + _tweetHash = (json["_tweetHash"] as Map)?.map((key, value) => + MapEntry>(key, (value as List).map((x) => Tweet.fromJson(x))?.toList())) ?? + {}; + return this; + } + + @override + Map toJson() { + return {"_twitterAccessToken": _twitterAccessToken, "_tweetHash": _tweetHash}; + } + + /// ////////////////////////////////////////////////////////////////// + /// Public API + bool get isLoading => _isLoading; + bool _isLoading = false; + + set isLoading(bool isLoading) { + _isLoading = isLoading; + notifyListeners(); + } + + //Helper method to quickly lookup last known auth state, does not mean user is necessarily verified, the auth token may be expired. + bool get isAuthenticated => !StringUtils.isEmpty(_twitterAccessToken); + + ///////////////////////////////////////////////////////////////////// + // Access Token + String _twitterAccessToken; + + String get twitterAccessToken => _twitterAccessToken; + + set twitterAccessToken(String value) { + _twitterAccessToken = value; + notifyListeners(); + } + + ///////////////////////////////////////////////////////////////////// + // Tweets + Map> _tweetHash = {}; + + //Get all tweets sorted by time + List get allTweets { + final sorted = _tweetHash.values.toList().expand((x) => x).toList(); + sorted.sort((a, b) => b.createdAt.compareTo(a.createdAt)); + return sorted; + } + + //Get all tweets sorted by popularity + List get popularTweets { + List> popular = []; + for (var n in allTweets) { + int pts = 0; + pts += n.retweetCount; + pts += n.favoriteCount; + popular.add(Tuple2(pts, n)); + } + popular.sort((a, b) => b.item1.compareTo(a.item1)); + return popular.map((x) => x.item2).toList(); + } + + //Get tweets for single contact + List getTweetsByContact(ContactData contact) { + if (_tweetHash.containsKey(contact.twitterHandle)) { + return _tweetHash[contact.twitterHandle]; + } + return []; + } + + void addTweets(String twitterHandle, List tweets) { + final current = DateTime.now(); + _tweetHash[twitterHandle] = tweets.where((x) => (current.difference(x.createdAt)) < expiry).toList(); + notifyListeners(); + } + + void removeTweets(String twitterHandle) { + _tweetHash.remove(twitterHandle); + } + + void cull() { + final current = DateTime.now(); + for (List n in _tweetHash.values) { + n.removeWhere((x) => current.difference(x.createdAt) >= expiry); + } + _tweetHash.removeWhere((key, value) => value.isEmpty); + notifyListeners(); + } +} diff --git a/flokk_src/lib/services/github_rest_service.dart b/flokk_src/lib/services/github_rest_service.dart new file mode 100644 index 0000000..7c1a4a4 --- /dev/null +++ b/flokk_src/lib/services/github_rest_service.dart @@ -0,0 +1,70 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/api_keys.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/git_repo_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:github/github.dart'; + +class GithubRestService { + Map _getAuthHeader() { + final String key = Uri.encodeQueryComponent(ApiKeys().githubKey); + final String secret = Uri.encodeQueryComponent(ApiKeys().githubSecret); + final Uint8List bytes = AsciiEncoder().convert("$key:$secret"); + final String auth = base64Encode(bytes); + return { + "Authorization": "Basic $auth", + }; + } + + Future>> getUserEvents(String githubUsername) async { + String url = "https://api.github.com/users/$githubUsername/events"; + + HttpResponse response = await HttpClient.get(url, headers: _getAuthHeader()); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + + List events = []; + if (response?.success == true) { + List> data = List.from(jsonDecode(response.body)); + for (Map n in data) { + events.add(GitEvent()..event = Event.fromJson(n)); + } + } + return ServiceResult(events, response); + } + + Future>> getUserRepos(String githubUsername) async { + String url = "https://api.github.com/users/$githubUsername/repos"; + + HttpResponse response = await HttpClient.get(url, headers: _getAuthHeader()); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + + List repos = []; + if (response?.success == true) { + List> data = List.from(jsonDecode(response.body)); + for (Map n in data) { + repos.add(GitRepo() + ..repository = Repository.fromJson(n) + ..lastUpdated = DateTime.now()); + } + } + return ServiceResult(repos, response); + } + + Future> getRepo(String repoName) async { + String url = "https://api.github.com/repos/$repoName"; + + HttpResponse response = await HttpClient.get(url, headers: _getAuthHeader()); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + + GitRepo repo; + if (response?.success == true) { + repo = GitRepo() + ..repository = Repository.fromJson(jsonDecode(response.body)) + ..lastUpdated = DateTime.now(); + } + return ServiceResult(repo, response); + } +} diff --git a/flokk_src/lib/services/google_rest/google_rest_auth_service.dart b/flokk_src/lib/services/google_rest/google_rest_auth_service.dart new file mode 100644 index 0000000..17d0968 --- /dev/null +++ b/flokk_src/lib/services/google_rest/google_rest_auth_service.dart @@ -0,0 +1,111 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/_internal/utils/rest_utils.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/services/service_result.dart'; + +class GoogleRestAuthService { + final String discoveryUrl = "https://accounts.google.com/.well-known/openid-configuration"; + final String authUrl = "https://oauth2.googleapis.com/token"; + final String redirectUri = "https://oauth2.googleapis.com/callback"; + final String deviceCodeGrantType = "urn:ietf:params:oauth:grant-type:device_code"; + final String scope = "email https://www.googleapis.com/auth/contacts"; + + final String _clientId; + final String _clientSecret; + + GoogleRestAuthService(this._clientId, this._clientSecret); + + Future> getAuthEndpoint() async { + //print("Request: $discoveryUrl"); + HttpResponse discoverResponse = await HttpClient.get(discoveryUrl); + //print("Response: ${discoverResponse.statusCode} / ${discoverResponse.body}"); + if (discoverResponse.success) { + Map body = jsonDecode(discoverResponse.body); + + String url = "${body["device_authorization_endpoint"]}?"; + url += RESTUtils.encodeParams({"client_id": _clientId, "scope": scope}); + //print("Request: $url"); + HttpResponse authResponse = await HttpClient.post(url); + //print("Response: ${authResponse.statusCode} / ${authResponse.body}"); + + GoogleAuthEndpointInfo endpoint; + if (authResponse.success) { + Map userAuth = jsonDecode(authResponse.body); + endpoint = GoogleAuthEndpointInfo( + deviceCode: userAuth["device_code"], + expiresIn: userAuth["expires_in"], + interval: userAuth["interval"], + userCode: userAuth["user_code"], + verificationUrl: userAuth["verification_url"]); + } + return ServiceResult(endpoint, authResponse); + } + return ServiceResult(null, discoverResponse); + } + + Future> authorizeDevice(String deviceCode) async => + await _getAuthResults(deviceCode: deviceCode); + + Future> refresh(String refreshToken) async => + await _getAuthResults(refreshToken: refreshToken); + + Future> _getAuthResults({String deviceCode, String refreshToken}) async { + String grant = !StringUtils.isEmpty(refreshToken) ? "refresh_token" : deviceCodeGrantType; + Map params = {"client_id": _clientId, "client_secret": _clientSecret, "grant_type": grant}; + if (!StringUtils.isEmpty(refreshToken)) { + params.putIfAbsent("refreshToken", () => refreshToken); + } else { + params.putIfAbsent("device_code", () => deviceCode); + } + HttpResponse response = await HttpClient.post("$authUrl?${RESTUtils.encodeParams(params)}"); + print("Response: ${response.statusCode} / ${response.body}"); + GoogleAuthResults results; + if (response.success) { + Map userAccess = jsonDecode(response.body); + results = GoogleAuthResults( + accessToken: userAccess["access_token"], + expiresIn: userAccess["expires_in"], + refreshToken: userAccess["refresh_token"], + tokenType: userAccess["token_type"], + idToken: userAccess["id_token"]); + } + + return ServiceResult(results, response); + } +} + +class GoogleAuthEndpointInfo { + final String deviceCode; + final int expiresIn; + final int interval; + final String userCode; + final String verificationUrl; + + GoogleAuthEndpointInfo({this.deviceCode, this.expiresIn, this.interval, this.userCode, this.verificationUrl}); +} + +class GoogleAuthResults { + final String accessToken; + final int expiresIn; + final String refreshToken; + final String tokenType; + final String idToken; + Map profile; + + String get email => _email; + String _email; + + GoogleAuthResults({this.accessToken, this.expiresIn, this.refreshToken, this.tokenType, this.idToken}) { + profile = jsonDecode(getProfileFromToken(idToken)); + _email = profile["email"]; + } + + String getProfileFromToken(String idToken) { + List parts = idToken.split("."); + var decoder = Base64Codec(); + String payload = decoder.normalize(parts[1]); + return utf8.decode(decoder.decode(payload)); + } +} diff --git a/flokk_src/lib/services/google_rest/google_rest_contact_groups_service.dart b/flokk_src/lib/services/google_rest/google_rest_contact_groups_service.dart new file mode 100644 index 0000000..4cc9bc2 --- /dev/null +++ b/flokk_src/lib/services/google_rest/google_rest_contact_groups_service.dart @@ -0,0 +1,147 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:googleapis/people/v1.dart'; +import 'package:tuple/tuple.dart'; + +class GoogleRestContactGroupsService { + Future, String>>> get(String accessToken, {String nextPageToken}) async { + String url = "https://people.googleapis.com/v1/contactGroups" + "?access_token=$accessToken" + "&pageSize=1000"; + + if (nextPageToken != null) { + url += "&pageToken=$nextPageToken"; + } + + HttpResponse response = await HttpClient.get(url); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + List groups = []; + String token = ""; + if (response?.success == true) { + Map data = jsonDecode(response.body); + token = data["nextPageToken"] ?? ""; + List groupsData = data["contactGroups"]; + for (Map n in groupsData) { + GroupData group = groupFromJson(n); + groups.add(group); + } + } + return ServiceResult(Tuple2, String>(groups, token), response); + } + + Future> getById(String accessToken, String groupId) async { + String url = "https://people.googleapis.com/v1/$groupId" + "?access_token=$accessToken" + "&maxMembers=1000"; + + HttpResponse response = await HttpClient.get(url); + //print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + GroupData group; + if (response?.success == true) { + group = groupFromJson(jsonDecode(response.body)); + } + return ServiceResult(group, response); + } + + Future> create(String accessToken, GroupData group) async { + String url = "https://people.googleapis.com/v1/contactGroups"; + + HttpResponse response = await HttpClient.post(url, + headers: {"Authorization": "Bearer $accessToken"}, body: jsonEncode({"contactGroup": groupToJson(group)})); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + GroupData newGroup; + if (response?.success == true) { + Map data = jsonDecode(response.body); + newGroup = groupFromJson(data); + } + return ServiceResult(newGroup, response); + } + + Future> delete(String accessToken, GroupData group) async { + String url = "https://people.googleapis.com/v1/${group.id}"; + + HttpResponse response = await HttpClient.delete( + url, + headers: {"Authorization": "Bearer $accessToken"}, + ); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + return ServiceResult(null, response); + } + + Future> modify(String accessToken, GroupData group, + {List addContacts, List removeContacts}) async { + String url = "https://people.googleapis.com/v1/${group.id}/members:modify"; + + Map data = {}; + if (addContacts?.isNotEmpty ?? false) { + data["resourceNamesToAdd"] = addContacts.map((x) => x.id).toList(); + } + if (removeContacts?.isNotEmpty ?? false) { + data["resourceNamesToRemove"] = removeContacts.map((x) => x.id).toList(); + } + + HttpResponse response = await HttpClient.post( + url, + headers: {"Authorization": "Bearer $accessToken"}, + body: jsonEncode(data), + ); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + return ServiceResult(null, response); + } + + Future> set(String accessToken, GroupData group) async { + String url = "https://people.googleapis.com/v1/${group.id}"; + + HttpResponse response = await HttpClient.put(url, + headers: {"Authorization": "Bearer $accessToken"}, body: jsonEncode({"contactGroup": groupToJson(group)})); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + GroupData updatedContact; + if (response?.success == true) { + //updated contact group returned from server + Map data = jsonDecode(response.body); + updatedContact = groupFromJson(data); + } + return ServiceResult(updatedContact, response); + } + + GroupData groupFromJson(Map json) { + final g = ContactGroup.fromJson(json); + //print(g.name); + final groupData = GroupData() + ..id = g.resourceName ?? "" + ..etag = g.etag ?? "" + ..name = g.name ?? "" + ..memberCount = g.memberCount ?? 0 + ..members = g.memberResourceNames ?? []; + + switch (g.groupType) { + case "GROUP_TYPE_UNSPECIFIED": + groupData.groupType = GroupType.GroupTypeUnspecified; + break; + case "USER_CONTACT_GROUP": + groupData.groupType = GroupType.UserContactGroup; + break; + case "SYSTEM_CONTACT_GROUP": + groupData.groupType = GroupType.SystemContactGroup; + break; + default: + groupData.groupType = GroupType.GroupTypeUnspecified; + } + + return groupData; + } + + Map groupToJson(GroupData group) { + final contactGroup = ContactGroup() + ..resourceName = group.id ?? "" + ..etag = group.etag ?? "" + ..name = group.name ?? "" + ..memberCount = group.memberCount ?? 0 + ..memberResourceNames = group.members ?? []; + return contactGroup.toJson(); + } +} diff --git a/flokk_src/lib/services/google_rest/google_rest_contacts_service.dart b/flokk_src/lib/services/google_rest/google_rest_contacts_service.dart new file mode 100644 index 0000000..597d0b6 --- /dev/null +++ b/flokk_src/lib/services/google_rest/google_rest_contacts_service.dart @@ -0,0 +1,434 @@ +import 'dart:convert'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/_internal/utils/date_utils.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:googleapis/people/v1.dart'; + +class GoogleRestContactsService { + static final String kTwitterParam = "Twitter"; + static final String kGitParam = "Github"; + + //The requested fields to fetch, full list here: https://developers.google.com/people/api/rest/v1/people.connections/list?hl=ru + static const List kAllPersonFields = [ + "addresses", + "ageRanges", + "biographies", + "birthdays", + "braggingRights", + "coverPhotos", + "emailAddresses", + "events", + "genders", + "imClients", + "interests", + "locales", + "memberships", + "metadata", + "names", + "nicknames", + "occupations", + "organizations", + "phoneNumbers", + "photos", + "relations", + "relationshipInterests", + "relationshipStatuses", + "residences", + "sipAddresses", + "skills", + "taglines", + "urls", + "userDefined" + ]; + + //List of update fields https://developers.google.com/people/api/rest/v1/people/updateContact + //Note that these are just a subset of the full list of PersonFields (kAllPersonFields) + //Removed "memberships" field, because that should only be edited by the group API calls + static const kAllUpdatePersonFields = [ + "addresses", + "biographies", + "birthdays", + "emailAddresses", + "events", + "genders", + "imClients", + "interests", + "locales", + "names", + "nicknames", + "occupations", + "organizations", + "phoneNumbers", + "relations", + "residences", + "sipAddresses", + "urls", + "userDefined" + ]; + + //Debug hook to test many contacts, if the multiplier is > 1, it will clone your contacts list that many times. + static int contactsMultiplier = 1; + + Future> getAll(String accessToken, String syncToken) async { + List list = []; + bool requestSyncToken = syncToken == ""; + int retryCount = 0; + String nextPageToken = ""; + ServiceResult result; + if (requestSyncToken) { + //Request new sync token + result = await get(accessToken, requestSyncToken: requestSyncToken); + } else { + //Attempt to use existing token (possible that it's expired) + result = await get(accessToken, syncToken: syncToken); + + //We get a 400 status if the token is expired, try again and request new sync token + if (result.response.errorType == NetErrorType.denied) { + requestSyncToken = true; + result = await get(accessToken, requestSyncToken: requestSyncToken); + } + } + + list = result.content.contacts; + nextPageToken = result.content.nextPageToken; + syncToken = result.content.syncToken; + + //Attempt to load all chunks of data, just for edge cases that have > 2000 contacts (max page size) + while ((nextPageToken?.isNotEmpty ?? false) && retryCount < 3) { + ServiceResult result = await get( + accessToken, + nextPageToken: nextPageToken, + ); + + if (result.success) { + list.addAll(result.content.contacts); + nextPageToken = result.content.nextPageToken; + } else { + //Possible for subsequent calls to fail and return 503 + retryCount++; + } + } + return result; + } + + //List of valid PersonFields can be found here https://developers.google.com/people/api/rest/v1/people.connections/list + Future> get(String accessToken, + {List personFields, String nextPageToken, String syncToken, bool requestSyncToken}) async { + // Default to all person fields if none are passed + personFields ??= kAllPersonFields; + String url = "https://people.googleapis.com/v1/people/me/connections?" + "access_token=$accessToken" + "&personFields=${kAllPersonFields.join(',')}" + "&sortOrder=FIRST_NAME_ASCENDING" + "&pageSize=2000"; + + if (!StringUtils.isEmpty(nextPageToken)) { + url += "&pageToken=$nextPageToken"; + } + + if (!StringUtils.isEmpty(syncToken)) { + url += "&syncToken=$syncToken"; + } + + if (requestSyncToken != null) { + url += "&requestSyncToken=$requestSyncToken"; + } + HttpResponse response = await HttpClient.get(url); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + List list; + String newNextPageToken = ""; + String newSyncToken = ""; + if (response?.success == true) { + Map data = jsonDecode(response.body); + newNextPageToken = data["nextPageToken"] ?? ""; + newSyncToken = data["nextSyncToken"] ?? ""; + List entries = data["connections"] ?? []; + print("token: $newNextPageToken ${entries.length} out of ${data["totalPeople"]}"); + list = []; + for (int i = 0, l = entries.length; i < l; i++) { + ContactData c = contactFromJson(entries[i]); + list.add(c); + } + if (contactsMultiplier > 1) { + List copy = list.toList(); + for (var i = contactsMultiplier; i-- > 0;) { + list.addAll(copy); + } + } + } + return ServiceResult(GetContactsResult(list, nextPageToken: nextPageToken, syncToken: newSyncToken), response); + } + + //List of valid PersonFields can be found here https://developers.google.com/people/api/rest/v1/people/updateContact + Future> set(String accessToken, ContactData contact, {List personFields}) async { + personFields ??= kAllUpdatePersonFields; + String url = "https://people.googleapis.com/v1/${contact.googleId}:updateContact?" + "updatePersonFields=${personFields.join(',')}"; + + HttpResponse response = await HttpClient.patch(url, + headers: {"Authorization": "Bearer $accessToken"}, body: jsonEncode(contactToJson(contact))); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + ContactData updatedContact; + if (response?.success == true) { + //updated contact returned from server + updatedContact = contactFromJson(jsonDecode(response.body)); + } + return ServiceResult(updatedContact, response); + } + + Future> create(String accessToken, ContactData contact) async { + String url = "https://people.googleapis.com/v1/people:createContact"; + + HttpResponse response = await HttpClient.post(url, + headers: {"Authorization": "Bearer $accessToken"}, body: jsonEncode(contactToJson(contact))); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + ContactData newContact; + if (response?.success == true) { + //new contact with proper "resourceName"(googleId) and "etag" properties set + newContact = contactFromJson(jsonDecode(response.body)); + } + return ServiceResult(newContact, response); + } + + Future> delete(String accessToken, ContactData contact) async { + String url = "https://people.googleapis.com/v1/${contact.googleId}:deleteContact"; + + HttpResponse response = await HttpClient.delete(url, headers: {"Authorization": "Bearer $accessToken"}); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + return ServiceResult(null, response); + } + + //Takes a base64 encoded image + Future> updatePic(String accessToken, ContactData contact, String profilePic) async { + String url = "https://people.googleapis.com/v1/${contact.googleId}:updateContactPhoto"; + + Map bodyJson = {"photoBytes": profilePic, "personFields": "names,photos"}; + + HttpResponse response = + await HttpClient.patch(url, headers: {"Authorization": "Bearer $accessToken"}, body: jsonEncode(bodyJson)); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + ContactData updatedContact; + if (response?.success == true) { + updatedContact = contactFromJson(jsonDecode(response.body)["person"]); + } + return ServiceResult(updatedContact, response); + } + + Future> deletePic(String accessToken, ContactData contact) async { + String url = "https://people.googleapis.com/v1/${contact.googleId}:deleteContactPhoto"; + + HttpResponse response = await HttpClient.delete(url, headers: {"Authorization": "Bearer $accessToken"}); + print("REQUEST: $url /// RESPONSE: ${response.statusCode}"); + return ServiceResult(null, response); + } + + ContactData contactFromJson(Map json) { + // c.fileAs = + Person p = Person.fromJson(json); + ContactData c = ContactData() + ..googleId = p.resourceName ?? "" + ..etag = p.etag ?? "" + ..nameGiven = p.names?.first?.givenName ?? "" + ..nameGivenPhonetic = p.names?.first?.phoneticGivenName ?? "" + ..nameMiddle = p.names?.first?.middleName ?? "" + ..nameMiddlePhonetic = p.names?.first?.phoneticMiddleName ?? "" + ..nameFamily = p.names?.first?.familyName ?? "" + ..nameFull = p.names?.first?.displayName ?? "" + ..namePrefix = p.names?.first?.honorificPrefix ?? "" + ..nameSuffix = p.names?.first?.honorificSuffix ?? "" + ..nickname = p.nicknames?.first?.value ?? "" + ..profilePic = p.photos?.first?.url ?? "" + ..isDefaultPic = p.photos?.first?.default_ ?? false + ..isDeleted = p.metadata?.deleted ?? false + ..jobCompany = p.organizations?.first?.name ?? "" + ..jobDepartment = p.organizations?.first?.department ?? "" + ..jobTitle = p.organizations?.first?.title ?? "" + ..notes = p.biographies?.first?.value ?? "" + ..emailList = p.emailAddresses + ?.where((x) => x?.metadata?.source?.type != "DOMAIN_PROFILE") + ?.map((x) => EmailData() + ..value = x.value + ..type = x.formattedType) + ?.toList() ?? + [] + ..phoneList = p.phoneNumbers + ?.map((x) => PhoneData() + ..number = x.value + ..type = x.formattedType) + ?.toList() ?? + [] + ..websiteList = p.urls + ?.map((x) => WebsiteData() + ..href = x.value + ..type = x.formattedType) + ?.toList() ?? + [] + ..imList = p.imClients + ?.map((x) => InstantMessageData() + ..username = x.username + ..type = x.formattedType) + ?.toList() ?? + [] + ..relationList = p.relations + ?.map((x) => RelationData() + ..person = x.person + ..type = x.formattedType) + ?.toList() ?? + [] + ..eventList = p.events + ?.map((x) => EventData() + ..date = DateTime(x.date?.year ?? 0, x.date?.month ?? 1, x.date?.day ?? 1) + ..type = x.formattedType) + ?.toList() ?? + [] + ..addressList = p.addresses + ?.map((x) => AddressData() + ..city = x.city + ..country = x.country + ..poBox = x.poBox + ..street = x.streetAddress + ..formattedAddress = x.extendedAddress + ..postcode = x.postalCode + ..region = x.region + ..type = x.formattedType) + ?.toList() ?? + []; + + if (p.birthdays?.isNotEmpty ?? false) { + c.birthday = BirthdayData() + ..date = DateTime( + p.birthdays.first.date?.year ?? 0, p.birthdays.first.date?.month ?? 1, p.birthdays.first.date?.day ?? 1) + ..text = p.birthdays.first?.text ?? ""; + + if (c.birthday.date == DateTime(0, 1, 1)) { + try { + c.birthday.date = DateFormats.google.parse(c.birthday.text) ?? DateTime(0, 1, 1); + } catch (e) { + c.birthday.date = DateTime(0, 1, 1); + } + } + } + + if (p.userDefined?.isNotEmpty ?? false) { + c.customFields = + Map.fromIterable(p.userDefined, key: (x) => (x as UserDefined).key, value: (x) => (x as UserDefined).value); + + /// Inject known custom fields into Contact, and remove from Map + c.twitterHandle = c.customFields.remove(kTwitterParam); + c.gitUsername = c.customFields.remove(kGitParam); + } + + c.groupList = []; //will be populated by GroupData + + // Don't allow empty lists into the app domain, makes our life much easier on the UI end :) + c.trimLists(); + + return c; + } + + Map contactToJson(ContactData contact) { + Person p = Person() + ..resourceName = contact.googleId ?? "" + ..etag = contact.etag ?? "" + ..names = [ + Name() + ..givenName = contact.nameGiven ?? "" + ..phoneticGivenName = contact.nameGivenPhonetic ?? "" + ..middleName = contact.nameMiddle ?? "" + ..phoneticMiddleName = contact.nameMiddlePhonetic ?? "" + ..familyName = contact.nameFamily ?? "" + ..displayName = contact.nameFull ?? "" + ..honorificPrefix = contact.namePrefix ?? "" + ..honorificSuffix = contact.nameSuffix ?? "" + ] + ..nicknames = [Nickname()..value = contact.nickname ?? ""] + ..organizations = [ + Organization() + ..name = contact.jobCompany ?? "" + ..department = contact.jobDepartment ?? "" + ..title = contact.jobTitle ?? "" + ] + ..biographies = [Biography()..value = contact.notes ?? ""] + ..emailAddresses = contact.emailList + ?.map((x) => EmailAddress() + ..value = x.value + ..type = x.type) + ?.toList() + ..phoneNumbers = contact.phoneList + ?.map((x) => PhoneNumber() + ..value = x.number + ..type = x.type) + ?.toList() + ..urls = contact.websiteList + ?.map((x) => Url() + ..value = x.href + ..type = x.type) + ?.toList() + ..imClients = contact.imList + ?.map((x) => ImClient() + ..username = x.username + ..type = x.type) + ?.toList() + ..relations = contact.relationList + ?.map((x) => Relation() + ..person = x.person + ..type = x.type) + ?.toList() + ..events = contact.eventList?.map((x) { + Date d = Date() + ..year = x.date?.year + ..month = x.date?.month + ..day = x.date?.day; + return Event() + ..date = d + ..type = x.type; + })?.toList() + ..addresses = contact.addressList + ?.map((x) => Address() + ..city = x.city + ..country = x.country + ..poBox = x.poBox + ..streetAddress = x.street + ..extendedAddress = x.formattedAddress + ..postalCode = x.postcode + ..region = x.region + ..type = x.type) + ?.toList(); + + if (contact.birthday?.isEmpty == false ?? false) { + p.birthdays = [Birthday()..text = contact.birthday.text]; + } + + if (contact.hasGit || contact.hasTwitter || (contact.customFields?.isNotEmpty ?? false)) { + /// Inject known custom fields back into the payload + void addUserDefined(String key, dynamic value) { + if (value == null) return; + p.userDefined.add(UserDefined() + ..key = key + ..value = value); + } + + p.userDefined = []; + + /// Inject each customField that's been set into the Person + contact.customFields.forEach(addUserDefined); + + /// Inject our own, known fields + if (contact.hasTwitter) addUserDefined(kTwitterParam, contact.twitterHandle); + if (contact.hasGit) addUserDefined(kGitParam, contact.gitUsername); + } + //NOTE: Person.Photos are not needed in this, they are read-only + return p.toJson(); + } +} + +class GetContactsResult { + final List contacts; + final String nextPageToken; + final String syncToken; + + GetContactsResult(this.contacts, {this.nextPageToken, this.syncToken}); +} diff --git a/flokk_src/lib/services/google_rest/google_rest_service.dart b/flokk_src/lib/services/google_rest/google_rest_service.dart new file mode 100644 index 0000000..067621d --- /dev/null +++ b/flokk_src/lib/services/google_rest/google_rest_service.dart @@ -0,0 +1,12 @@ +import 'package:flokk/api_keys.dart'; +import 'package:flokk/services/google_rest/google_rest_auth_service.dart'; +import 'package:flokk/services/google_rest/google_rest_contact_groups_service.dart'; +import 'package:flokk/services/google_rest/google_rest_contacts_service.dart'; + +class GoogleRestService { + static String kStarredGroupId = "contactGroups/starred"; + + final GoogleRestContactsService contacts = GoogleRestContactsService(); + final GoogleRestContactGroupsService groups = GoogleRestContactGroupsService(); + final GoogleRestAuthService auth = GoogleRestAuthService(ApiKeys().googleClientId, ApiKeys().googleClientSecret); +} diff --git a/flokk_src/lib/services/service_result.dart b/flokk_src/lib/services/service_result.dart new file mode 100644 index 0000000..4fe7009 --- /dev/null +++ b/flokk_src/lib/services/service_result.dart @@ -0,0 +1,10 @@ +import 'package:flokk/_internal/http_client.dart'; + +class ServiceResult { + final HttpResponse response; + final T content; + + bool get success => response.success; + + ServiceResult(this.content, this.response); +} diff --git a/flokk_src/lib/services/twitter_rest_service.dart b/flokk_src/lib/services/twitter_rest_service.dart new file mode 100644 index 0000000..a4d81b7 --- /dev/null +++ b/flokk_src/lib/services/twitter_rest_service.dart @@ -0,0 +1,65 @@ +import 'dart:convert'; +import 'dart:typed_data'; + +import 'package:flokk/_internal/http_client.dart'; +import 'package:flokk/api_keys.dart'; +import 'package:flokk/data/tweet_data.dart'; +import 'package:flokk/services/service_result.dart'; +import 'package:flutter/foundation.dart'; +import 'package:html/parser.dart'; + +class TwitterRestService { + //Insert path to CORS proxy, needed for web builds + final String proxy = kIsWeb ? "http://localhost:8888/" : ""; + + Future> getAuth() async { + final String authUrl = "${proxy}https://api.twitter.com/oauth2/token"; + final String key = Uri.encodeQueryComponent(ApiKeys().twitterKey); + final String secret = Uri.encodeQueryComponent(ApiKeys().twitterSecret); + final Uint8List bytes = AsciiEncoder().convert("$key:$secret"); + final String auth = base64Encode(bytes); + + HttpResponse response = await HttpClient.post("$authUrl", + headers: {"Authorization": "Basic $auth", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"}, + body: "grant_type=client_credentials"); + + TwitterAuthResult result; + if (response.success) { + Map data = jsonDecode(response.body); + result = TwitterAuthResult(tokenType: data["token_type"], accessToken: data["access_token"]); + } + + + return ServiceResult(result, response); + } + + Future>> getTweets(String accessToken, String screenName) async { + String url = "${proxy}https://api.twitter.com/1.1/statuses/user_timeline.json" + "?screen_name=$screenName" + "&tweet_mode=extended"; + + HttpResponse response = await HttpClient.get(url, headers: {"Authorization": "Bearer $accessToken"}); + + print("REQUEST: $url /// RESPONSE: ${response?.statusCode}"); + + List tweets = []; + if (response.success) { + List> tweetsData = List.from(jsonDecode(response.body)); + for (int i = 0; i < tweetsData?.length ?? 0; i++) { + Map data = tweetsData[i]; + Tweet t = Tweet.fromJson(data); + t.text = parse(t.text).documentElement.text; + tweets.add(t); + } + } + + return ServiceResult(tweets, response); + } +} + +class TwitterAuthResult { + final String tokenType; + final String accessToken; + + TwitterAuthResult({this.tokenType, this.accessToken}); +} diff --git a/flokk_src/lib/strings.dart b/flokk_src/lib/strings.dart new file mode 100644 index 0000000..8110c5a --- /dev/null +++ b/flokk_src/lib/strings.dart @@ -0,0 +1,47 @@ +class _Strings { + static _Strings instance = _Strings(); + + String TITLE_CONTACTS_PAGE = "Contacts"; + String TITLE_WHATS_HAPPENING = "What's happening this week?"; + String TITLE_ADD_CONTACT = "Add Contact"; + String TITLE_EDIT_CONTACT = "Edit Contact"; + + String BTN_OK = "Ok"; + String BTN_CANCEL = "Cancel"; + String BTN_SIGN_IN = "Sign In"; + String BTN_SIGN_OUT = "Sign Out"; + String BTN_COMPLETE = "Complete"; + String BTN_SAVE = "Save"; + + String LBL_WELCOME = "Welcome!"; + String LBL_NAME_FIRST = "First Name"; + String LBL_NAME_MIDDLE = "Middle Name"; + String LBL_NAME_LAST = "Last Name"; + String LBL_STEP_X = "Step {0}"; + + String ERR_DEVICE_OAUTH_FAILED_TITLE = "Unable to connect to your account."; + String ERR_DEVICE_OAUTH_FAILED_MSG = "Please make sure you've completed the sign-in process in your browser."; + + String GOOGLE_OAUTH_TITLE = "GOOGLE SIGN-IN"; + String GOOGLE_OAUTH_INSTRUCTIONS_1 = + "In order to import your Google Contacts, you'll need to authorize this application using your web browser."; + String GOOGLE_OAUTH_INSTRUCTIONS_2 = "Copy this code to your clipboard by clicking the icon or selecting the text:"; + String GOOGLE_OAUTH_INSTRUCTIONS_3 = "Navigate to the following link in your web browser, and enter the above code:"; + String GOOGLE_OAUTH_INSTRUCTIONS_4 = "Press the button below when you've completed signup:"; +} + +_Strings get S => _Strings.instance; + +extension AddSupplant on String { + String sup([dynamic v0, dynamic v1, dynamic v2, dynamic v3, dynamic v4, dynamic v5, dynamic v6]) { + var _s = this; + if (v0 != null) _s = _s.replaceAll("{0}", "$v0"); + if (v1 != null) _s = _s.replaceAll("{1}", "$v1"); + if (v2 != null) _s = _s.replaceAll("{2}", "$v2"); + if (v3 != null) _s = _s.replaceAll("{3}", "$v3"); + if (v4 != null) _s = _s.replaceAll("{4}", "$v4"); + if (v5 != null) _s = _s.replaceAll("{5}", "$v5"); + if (v6 != null) _s = _s.replaceAll("{6}", "$v6"); + return _s; + } +} diff --git a/flokk_src/lib/styled_components/buttons/base_styled_button.dart b/flokk_src/lib/styled_components/buttons/base_styled_button.dart new file mode 100644 index 0000000..6fe7122 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/base_styled_button.dart @@ -0,0 +1,136 @@ +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:provider/provider.dart'; + +/// //////////////////////////////////////////////////// +/// STYLED BTN - BASE CLASS FOR ALL OTHER BTNS +/// //////////////////////////////////////////////////// +class BaseStyledBtn extends StatefulWidget { + final Widget child; + final VoidCallback onPressed; + final Function(bool) onFocusChanged; + final Function(bool) onHighlightChanged; + final Color bgColor; + final Color focusColor; + final Color hoverColor; + final Color downColor; + final EdgeInsets contentPadding; + final double minWidth; + final double minHeight; + final double borderRadius; + final bool useBtnText; + final bool autoFocus; + + final ShapeBorder shape; + + final Color outlineColor; + + const BaseStyledBtn({ + Key key, + this.child, + this.onPressed, + this.onFocusChanged, + this.onHighlightChanged, + this.bgColor, + this.focusColor, + this.contentPadding, + this.minWidth, + this.minHeight, + this.borderRadius, + this.hoverColor, + this.downColor, + this.shape, + this.useBtnText = true, + this.autoFocus = false, + this.outlineColor = Colors.transparent, + }) : super(key: key); + + @override + _BaseStyledBtnState createState() => _BaseStyledBtnState(); +} + +class _BaseStyledBtnState extends State { + FocusNode _focusNode; + bool _isFocused = false; + + @override + void initState() { + super.initState(); + _focusNode = FocusNode(debugLabel: "", canRequestFocus: true); + _focusNode.addListener(() { + if (_focusNode.hasFocus != _isFocused) { + setState(() => _isFocused = _focusNode.hasFocus); + widget.onFocusChanged?.call(_isFocused); + } + }); + } + + @override + void dispose() { + _focusNode?.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Container( + decoration: BoxDecoration( + color: widget.bgColor ?? theme.surface, + borderRadius: BorderRadius.circular(widget.borderRadius ?? Corners.s5), + boxShadow: _isFocused + ? [ + BoxShadow( + color: theme.focus.withOpacity(0.25), offset: Offset.zero, blurRadius: 8.0, spreadRadius: 0.0), + BoxShadow( + color: widget.bgColor ?? theme.surface, offset: Offset.zero, blurRadius: 8.0, spreadRadius: -4.0), + ] + : [], + ), + foregroundDecoration: _isFocused + ? ShapeDecoration( + shape: RoundedRectangleBorder( + side: BorderSide( + width: 1.8, + color: theme.focus, + ), + borderRadius: BorderRadius.circular(widget.borderRadius ?? Corners.s5), + ), + ) + : null, + child: RawMaterialButton( + focusNode: _focusNode, + autofocus: widget.autoFocus, + textStyle: widget.useBtnText ? TextStyles.Btn : null, + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + visualDensity: VisualDensity.compact, + splashColor: Colors.transparent, + mouseCursor: SystemMouseCursors.click, + elevation: 0, + hoverElevation: 0, + highlightElevation: 0, + focusElevation: 0, + fillColor: Colors.transparent, + hoverColor: widget.hoverColor ?? theme.surface, + highlightColor: widget.downColor ?? theme.accent1.withOpacity(.1), + focusColor: widget.focusColor?? Colors.grey.withOpacity(0.35), + child: Opacity( + child: Padding( + padding: widget.contentPadding ?? EdgeInsets.all(Insets.m), + child: widget.child, + ), + opacity: widget.onPressed != null ? 1 : .7, + ), + constraints: BoxConstraints(minHeight: widget.minHeight ?? 0, minWidth: widget.minWidth ?? 0), + onPressed: widget.onPressed, + shape: widget.shape ?? + RoundedRectangleBorder( + side: BorderSide(color: widget.outlineColor, width: 1.5), + borderRadius: BorderRadius.circular(widget.borderRadius ?? Corners.s5)), + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/buttons/colored_icon_btn.dart b/flokk_src/lib/styled_components/buttons/colored_icon_btn.dart new file mode 100644 index 0000000..8337524 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/colored_icon_btn.dart @@ -0,0 +1,70 @@ +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +/// //////////////////////////////////////////////////// +/// Transparent icon button that changes it's btn color on mouse-over +/// //////////////////////////////////////////////////// +class ColorShiftIconBtn extends StatelessWidget { + final Function() onPressed; + + final AssetImage icon; + final double size; + final Color color; + final Color bgColor; + final EdgeInsets padding; + final double minWidth; + final double minHeight; + final Function(bool) onFocusChanged; + final bool shrinkWrap; + + const ColorShiftIconBtn( + this.icon, { + Key key, + this.onPressed, + this.color, + this.size, + this.padding, + this.onFocusChanged, + this.bgColor, + this.minWidth, + this.minHeight, + this.shrinkWrap = false, + }) : assert((icon is AssetImage) || (icon is IconData)), + super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + bool _mouseOver = false; + return StatefulBuilder( + builder: (_, setState) { + Color iconColor = (color ?? theme.grey); + if (_mouseOver) { + iconColor = ColorUtils.shiftHsl(iconColor, theme.isDark ? .2 : -.2); + } + return MouseRegion( + onEnter: (_) => setState(() => _mouseOver = true), + onExit: (_) => setState(() => _mouseOver = false), + child: BaseStyledBtn( + minHeight: minHeight ?? (shrinkWrap ? 0 : 42), + minWidth: minWidth ?? (shrinkWrap ? 0 : 42), + bgColor: bgColor ?? Colors.transparent, + downColor: theme.bg2.withOpacity(.35), + hoverColor: bgColor ?? Colors.transparent, + onFocusChanged: onFocusChanged, + contentPadding: padding ?? EdgeInsets.all(Insets.sm), + child: IgnorePointer( + child: StyledImageIcon(icon, size: (size ?? 22.0), color: iconColor), + ), + onPressed: onPressed), + ); + }, + ); + } +} diff --git a/flokk_src/lib/styled_components/buttons/ok_cancel_btn_row.dart b/flokk_src/lib/styled_components/buttons/ok_cancel_btn_row.dart new file mode 100644 index 0000000..b34dbf9 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/ok_cancel_btn_row.dart @@ -0,0 +1,31 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/strings.dart'; +import 'package:flokk/styled_components/buttons/primary_btn.dart'; +import 'package:flokk/styled_components/buttons/secondary_btn.dart'; +import 'package:flokk/styles.dart'; +import 'package:flutter/material.dart'; + +class OkCancelBtnRow extends StatelessWidget { + final Function() onOkPressed; + final Function() onCancelPressed; + final String okLabel; + final String cancelLabel; + final double minHeight; + + const OkCancelBtnRow( + {Key key, this.onOkPressed, this.onCancelPressed, this.okLabel, this.cancelLabel, this.minHeight}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + if (onOkPressed != null) PrimaryTextBtn(okLabel ?? S.BTN_OK.toUpperCase(), onPressed: onOkPressed), + HSpace(Insets.m), + if (onCancelPressed != null) + SecondaryTextBtn(cancelLabel ?? S.BTN_CANCEL.toUpperCase(), onPressed: onCancelPressed), + ], + ); + } +} diff --git a/flokk_src/lib/styled_components/buttons/primary_btn.dart b/flokk_src/lib/styled_components/buttons/primary_btn.dart new file mode 100644 index 0000000..4eae474 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/primary_btn.dart @@ -0,0 +1,43 @@ +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class PrimaryBtn extends StatelessWidget { + final Widget child; + final Function() onPressed; + final bool bigMode; + + const PrimaryBtn({Key key, this.child, this.onPressed, this.bigMode = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return BaseStyledBtn( + minWidth: bigMode ? 160 : 78, + minHeight: bigMode ? 60 : 42, + contentPadding: EdgeInsets.all(bigMode ? Insets.l : Insets.m), + bgColor: theme.accent1Darker, + hoverColor: theme.isDark ? theme.accent1 : theme.accent1Dark, + downColor: theme.accent1Darker, + borderRadius: bigMode ? Corners.s8 : Corners.s5, + child: child, + onPressed: onPressed, + ); + } +} + +class PrimaryTextBtn extends StatelessWidget { + final String label; + final Function() onPressed; + final bool bigMode; + + const PrimaryTextBtn(this.label, {Key key, this.onPressed, this.bigMode = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + TextStyle txtStyle = (bigMode ? TextStyles.Callout : TextStyles.Footnote).textColor(Colors.white); + return PrimaryBtn(bigMode: bigMode, onPressed: onPressed, child: Text(label, style: txtStyle)); + } +} diff --git a/flokk_src/lib/styled_components/buttons/secondary_btn.dart b/flokk_src/lib/styled_components/buttons/secondary_btn.dart new file mode 100644 index 0000000..56722a7 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/secondary_btn.dart @@ -0,0 +1,84 @@ +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SecondaryTextBtn extends StatelessWidget { + final String label; + final Function() onPressed; + + const SecondaryTextBtn(this.label, {Key key, this.onPressed}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + TextStyle txtStyle = TextStyles.Footnote.textColor(theme.accent1Darker); + return SecondaryBtn(onPressed: onPressed, child: Text(label, style: txtStyle)); + } +} + +class SecondaryIconBtn extends StatelessWidget { + /// Must be either an `AssetImage` for an `ImageIcon` or an `IconData` for a regular `Icon` + final AssetImage icon; + final Function() onPressed; + final Color color; + + const SecondaryIconBtn(this.icon, {Key key, this.onPressed, this.color}) + : assert((icon is AssetImage) || (icon is IconData)), + super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return SecondaryBtn( + onPressed: onPressed, + minHeight: 36, + minWidth: 36, + contentPadding: Insets.sm, + child: StyledImageIcon(icon, size: 20, color: color ?? theme.grey), + ); + } +} + +class SecondaryBtn extends StatefulWidget { + final Widget child; + final Function() onPressed; + final double minWidth; + final double minHeight; + final double contentPadding; + final Function(bool) onFocusChanged; + + const SecondaryBtn({Key key, this.child, this.onPressed, this.minWidth, this.minHeight, this.contentPadding, this.onFocusChanged}) + : super(key: key); + + @override + _SecondaryBtnState createState() => _SecondaryBtnState(); +} + +class _SecondaryBtnState extends State { + bool _isMouseOver = false; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return MouseRegion( + onEnter: (_) => setState(() => _isMouseOver = true), + onExit: (_) => setState(() => _isMouseOver = false), + child: BaseStyledBtn( + minWidth: widget.minWidth ?? 78, + minHeight: widget.minHeight ?? 42, + contentPadding: EdgeInsets.all(widget.contentPadding ?? Insets.m), + bgColor: theme.surface, + outlineColor: (_isMouseOver ? theme.accent1 : theme.grey).withOpacity(.35), + hoverColor: theme.surface, + onFocusChanged: widget.onFocusChanged, + downColor: theme.greyWeak.withOpacity(.35), + borderRadius: Corners.s5, + child: IgnorePointer(child: widget.child), + onPressed: widget.onPressed, + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/buttons/transparent_btn.dart b/flokk_src/lib/styled_components/buttons/transparent_btn.dart new file mode 100644 index 0000000..a9e6781 --- /dev/null +++ b/flokk_src/lib/styled_components/buttons/transparent_btn.dart @@ -0,0 +1,112 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class TransparentBtn extends StatelessWidget { + final Widget child; + final Function() onPressed; + final bool bigMode; + final EdgeInsets contentPadding; + final Color bgColor; + final Color hoverColor; + final Color downColor; + final double borderRadius; + + const TransparentBtn( + {Key key, + this.onPressed, + this.child, + this.bigMode = false, + this.contentPadding, + this.bgColor, + this.hoverColor, + this.downColor, + this.borderRadius}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return BaseStyledBtn( + minWidth: 30, + minHeight: 30, + contentPadding: contentPadding ?? + EdgeInsets.symmetric( + horizontal: bigMode ? Insets.sm : Insets.xs, + vertical: bigMode ? Insets.sm : Insets.xs, + ), + bgColor: bgColor ?? Colors.transparent, + hoverColor: hoverColor ?? (theme.isDark ? ColorUtils.shiftHsl(theme.bg1, .2) : theme.bg2.withOpacity(.35)), + downColor: downColor ?? ColorUtils.shiftHsl(theme.bg2, .1), + borderRadius: borderRadius ?? Corners.s5, + child: child, + onPressed: onPressed, + ); + } +} + +class TransparentTextBtn extends StatelessWidget { + final String label; + final Function() onPressed; + final Color color; + final bool bigMode; + final TextStyle style; + final Color bgColor; + + const TransparentTextBtn(this.label, + {Key key, this.onPressed, this.color, this.bigMode = false, this.style, this.bgColor}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color c = color ?? theme.accent1; + return TransparentBtn( + bigMode: bigMode, + bgColor: bgColor, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [Text(label, style: style ?? (bigMode ? TextStyles.Body1 : TextStyles.T1).textColor(c))], + ), + onPressed: onPressed, + ); + } +} + +class TransparentIconAndTextBtn extends StatelessWidget { + final String label; + final AssetImage icon; + final double iconSize; + final Function() onPressed; + final Color color; + final Color textColor; + final bool bigMode; + final TextStyle style; + + const TransparentIconAndTextBtn(this.label, this.icon, + {Key key, this.onPressed, this.color, this.textColor, this.bigMode = false, this.iconSize, this.style}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color c = color ?? theme.accent1; + return TransparentBtn( + bigMode: bigMode, + child: Row( + children: [ + StyledImageIcon(icon, size: iconSize ?? 16, color: c), + HSpace(Insets.sm), + Text(label, style: style ?? TextStyles.Body1.textColor(textColor ?? c)), + HSpace(3), // Add a bit of extra padding to the right, seems like Icon() has it's own baked in padding + ], + ), + onPressed: onPressed, + ); + } +} diff --git a/flokk_src/lib/styled_components/clickable_icon_row.dart b/flokk_src/lib/styled_components/clickable_icon_row.dart new file mode 100644 index 0000000..b242f7f --- /dev/null +++ b/flokk_src/lib/styled_components/clickable_icon_row.dart @@ -0,0 +1,146 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/clickable_text.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; +import 'package:tuple/tuple.dart'; + +class ClickableIconRow extends StatefulWidget { + final Function(String) onPressed; + final Function() onEditPressed; + final AssetImage icon; + final String value; + final String label; + final double size; + final Color iconColor; + final String editType; + + const ClickableIconRow( + {Key key, + this.icon, + this.value, + this.label, + this.onPressed, + this.size, + this.iconColor, + this.onEditPressed, + this.editType}) + : super(key: key); + + @override + _ClickableIconRowState createState() => _ClickableIconRowState(); +} + +class _ClickableIconRowState extends State { + bool get isMouseOver => _isMouseOver; + bool _isMouseOver = false; + + set isMouseOver(bool value) => setState(() => _isMouseOver = value); + + void _handleEditPressed() => context.read().editSelectedContact(widget.editType); + void _handleCopyPressed() => Clipboard.setData(ClipboardData(text: widget.value)); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color overColor = theme.isDark? ColorUtils.shiftHsl(theme.bg1, .2) : theme.bg2.withOpacity(.35); + return MouseRegion( + onEnter: (_) => isMouseOver = true, + onExit: (_) => isMouseOver = false, + child: Container( + decoration: BoxDecoration( + borderRadius: Corners.s5Border, + color: isMouseOver ? overColor : Colors.transparent, + ), + padding: EdgeInsets.symmetric(horizontal: Insets.l, vertical: Insets.m), + child: Stack( + overflow: Overflow.visible, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + StyledImageIcon(widget.icon ?? null, size: (widget.size ?? 20), color: widget.iconColor ?? theme.grey), + SizedBox(width: Insets.l), + // Wrap value in ClickableText widget, it will get colored if anyone is listening + //Text(value), + ClickableText(widget.value, onPressed: widget.onPressed).constrained(maxWidth: 300).flexible(), + SizedBox(width: Insets.m), + if (widget.label != null) + Text(widget.label.toUpperCase(), style: TextStyles.Caption.textColor(theme.greyWeak)) + .translate(offset: Offset(0, 8)), + ], + ).padding(right: Insets.l * 1.5), + if (isMouseOver) + Positioned.fill( + child: Container( + alignment: Alignment.centerRight, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ColorShiftIconBtn( + StyledIcons.copy, + color: theme.accent1, + padding: EdgeInsets.zero, + onPressed: _handleCopyPressed, + ), + ColorShiftIconBtn( + StyledIcons.edit, + color: theme.accent1, + padding: EdgeInsets.zero, + onPressed: _handleEditPressed, + ), + + ], + ), + ), + ), + ], + ), + ), + ); + } +} + +typedef Widget SeparatorBuilder(); + +class MultilineClickableIconRow extends StatelessWidget { + final Function(String) onPressed; + final AssetImage icon; + final List> rows; + final SeparatorBuilder separator; + final double size; + final Color iconColor; + final String editType; + + const MultilineClickableIconRow( + {Key key, this.icon, this.rows, this.onPressed, this.separator, this.size, this.iconColor, this.editType}) + : super(key: key); + + @override + Widget build(BuildContext context) { + List kids = []; + for (var i = 0; i < rows.length; i++) { + kids.add( + ClickableIconRow( + + /// Only show icon for the first row + icon: i == 0 ? icon : null, + onPressed: onPressed, + editType: editType, + value: rows[i].item1, + label: rows[i].item2, + size: size, + iconColor: iconColor), + ); + } + return SeparatedColumn(children: kids, separatorBuilder: separator); + } +} diff --git a/flokk_src/lib/styled_components/clickable_text.dart b/flokk_src/lib/styled_components/clickable_text.dart new file mode 100644 index 0000000..5631c79 --- /dev/null +++ b/flokk_src/lib/styled_components/clickable_text.dart @@ -0,0 +1,37 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:provider/provider.dart'; + +class ClickableText extends StatelessWidget { + final Function(String) onPressed; + final String text; + final TextStyle style; + final Color linkColor; + final bool underline; + + const ClickableText(this.text, {Key key, this.onPressed, this.style, this.underline = false, this.linkColor}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + var ts = (style ?? TextStyles.Body1.textHeight(1.5)); + Widget t = Text( + text ?? "", + style: style ?? (underline ? ts.underline : ts), + overflow: TextOverflow.clip, + ); + if (onPressed != null) { + /// Add tap handlers and style text + t = (t as Text).textColor(linkColor ?? theme.accent1).clickable( + () => onPressed?.call(text), + ); + } + return t.translate(offset: Offset(0, 0)); + } +} + diff --git a/flokk_src/lib/styled_components/design_grid.dart b/flokk_src/lib/styled_components/design_grid.dart new file mode 100644 index 0000000..a2061ea --- /dev/null +++ b/flokk_src/lib/styled_components/design_grid.dart @@ -0,0 +1,45 @@ +import 'package:flokk/_internal/components/design_grid_overlay.dart'; +import 'package:flokk/styles.dart'; +import 'package:flutter/material.dart'; + +class StyledDesignGrid extends StatelessWidget { + final Widget child; + final Alignment alignment; + final bool isEnabled; + + const StyledDesignGrid({Key key, this.child, this.alignment, this.isEnabled = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + return DesignGridOverlay( + alignment: alignment, + isEnabled: isEnabled, + grids: [ + GridLayout( + breakPt: PageBreaks.TabletPortrait, + gutters: EdgeInsets.only(left: 48, right: 0), + numCols: 6, + padding: Insets.lGutter, + ), + GridLayout( + breakPt: PageBreaks.TabletLandscape, + gutters: EdgeInsets.only(left: Sizes.sideBarSm), + numCols: 8, + padding: Insets.lGutter, + ), + GridLayout( + breakPt: PageBreaks.Desktop, + gutters: EdgeInsets.only(left: Sizes.sideBarMed), + numCols: 12, + padding: Insets.lGutter, + ), + GridLayout( + breakPt: double.infinity, + gutters: EdgeInsets.only(left: Sizes.sideBarLg), + numCols: 12, + padding: Insets.lGutter, + ), + ], + child: child); + } +} diff --git a/flokk_src/lib/styled_components/flokk_logo.dart b/flokk_src/lib/styled_components/flokk_logo.dart new file mode 100644 index 0000000..d077af9 --- /dev/null +++ b/flokk_src/lib/styled_components/flokk_logo.dart @@ -0,0 +1,40 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class FlokkLogo extends StatelessWidget { + final double size; + final Color color; + + const FlokkLogo(this.size, this.color, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Image.asset("assets/images/flokk-logo.png", color: color ?? Colors.grey, height: size); + } +} + +class FlokkSidebarLogo extends StatelessWidget { + final bool skinny; + + const FlokkSidebarLogo(this.skinny, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + width: skinny ? 140 : 240, + child: Stack( + overflow: Overflow.visible, + children: [ + Image.asset("assets/images/sidebar-logo.png", width: skinny ? 140 : 160, filterQuality: FilterQuality.high), + if (!skinny) ...{ + Positioned( + left: 160, + top: 13, + child: Image.asset("assets/images/sidebar-bg.png", width: 84, filterQuality: FilterQuality.high), + ), + }, + ], + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/opening_divider.dart b/flokk_src/lib/styled_components/opening_divider.dart new file mode 100644 index 0000000..a925d85 --- /dev/null +++ b/flokk_src/lib/styled_components/opening_divider.dart @@ -0,0 +1,31 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class OpeningDivider extends StatelessWidget { + final bool isOpen; + final Color openColor; + final Color closeColor; + + const OpeningDivider({Key key, this.isOpen, this.openColor, this.closeColor}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return TweenAnimationBuilder( + tween: Tween(begin: 0, end: isOpen ? 1 : 0), + duration: isOpen ? .45.seconds : .15.seconds, + curve: isOpen ? Curves.easeIn : Curves.easeOut, + builder: (_, value, __) { + Color oColor = openColor ?? theme.accent1.withOpacity(.3); + Color cColor = closeColor ?? theme.greyWeak.withOpacity(.3); + return FractionallySizedBox( + alignment: Alignment.topLeft, + widthFactor: value, + child: Container(color: Color.lerp(cColor, oColor, value), height: 1), + ); + }, + ); + } +} diff --git a/flokk_src/lib/styled_components/scrolling/styled_horizontal_scroll_view.dart b/flokk_src/lib/styled_components/scrolling/styled_horizontal_scroll_view.dart new file mode 100644 index 0000000..146970e --- /dev/null +++ b/flokk_src/lib/styled_components/scrolling/styled_horizontal_scroll_view.dart @@ -0,0 +1,74 @@ +import 'package:flokk/_internal/utils/build_utils.dart'; +import 'package:flutter/material.dart'; + +class StyledHorizontalScrollView extends StatefulWidget { + final Duration autoScrollDuration; + final Curve autoScrollCurve; + final Widget child; + + StyledHorizontalScrollView({this.autoScrollDuration, this.autoScrollCurve, this.child, Key key}) : super(key: key); + + @override + State createState() => _StyledHorizontalScrollViewState(); +} + +class _StyledHorizontalScrollViewState extends State { + GlobalKey _childContainerKey; + GlobalKey _scrollViewKey; + double _childWidth = 0.0; + double _scrollWidth = 0.0; + ScrollController _scrollController; + + @override + void initState() { + _childContainerKey = GlobalKey(); + _scrollViewKey = GlobalKey(); + _scrollController = ScrollController(); + super.initState(); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + set childWidth(double width) { + if (width != _childWidth) { + // NOTE: CE: We are not setting the state here because we don't want to trigger a rebuild of the widget + // _childWidth is not used for building, only as a cache value + _childWidth = width; + scrollQueryToEnd(); + } + } + + set scrollWidth(double width) { + if (width != _scrollWidth) { + // NOTE: CE: We are not setting the state here because we don't want to trigger a rebuild of the widget + // _scrollWidth is not used for building, only as a cache value + _scrollWidth = width; + scrollQueryToEnd(); + } + } + + void scrollQueryToEnd() { + if (_scrollController.hasClients) { + _scrollController.animateTo(_scrollController.position.maxScrollExtent, + duration: widget.autoScrollDuration, curve: widget.autoScrollCurve); + } + } + + @override + Widget build(BuildContext context) { + /// Hook into these sub-widgets and rebuild once they callback with their current size + BuildUtils.getFutureSizeFromGlobalKey(_childContainerKey, (size) => childWidth = size.width); + BuildUtils.getFutureSizeFromGlobalKey(_scrollViewKey, (size) => scrollWidth = size.width); + + return SingleChildScrollView( + key: _scrollViewKey, + scrollDirection: Axis.horizontal, + controller: _scrollController, + child: Container(key: _childContainerKey, child: widget.child), + ); + } +} diff --git a/flokk_src/lib/styled_components/scrolling/styled_listview.dart b/flokk_src/lib/styled_components/scrolling/styled_listview.dart new file mode 100644 index 0000000..d6e1d6b --- /dev/null +++ b/flokk_src/lib/styled_components/scrolling/styled_listview.dart @@ -0,0 +1,120 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/scrolling/styled_scrollbar.dart'; +import 'package:flokk/styled_components/styled_card.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +typedef IndexedWidgetBuilder(BuildContext context, int index); + +class StyledScrollPhysics extends AlwaysScrollableScrollPhysics {} + +/// Core ListView for the app. +/// Wraps a [ScrollbarListStack] + [ListView.builder] and assigns the 'Styled' scroll physics for the app +/// Exposes a controller so other widgets can manipulate the list +class StyledListView extends StatefulWidget { + final double itemExtent; + final int itemCount; + final Axis axis; + final EdgeInsets padding; + final EdgeInsets scrollbarPadding; + final double barSize; + + final IndexedWidgetBuilder itemBuilder; + + StyledListView({ + Key key, + @required this.itemBuilder, + @required this.itemCount, + this.itemExtent, + this.axis = Axis.vertical, this.padding, this.barSize, this.scrollbarPadding, + }) : super(key: key) { + assert(itemExtent != 0, "Item extent should never be 0, null is ok."); + } + + @override + StyledListViewState createState() => StyledListViewState(); +} + +/// State is public so this can easily be controlled externally +class StyledListViewState extends State { + ScrollController scrollController; + + @override + void initState() { + scrollController = ScrollController(); + super.initState(); + } + + @override + void dispose() { + scrollController.dispose(); + super.dispose(); + } + + @override + void didUpdateWidget(StyledListView oldWidget) { + if (oldWidget.itemCount != widget.itemCount || oldWidget.itemExtent != widget.itemExtent) { + setState(() {}); + } + super.didUpdateWidget(oldWidget); + } + + @override + Widget build(BuildContext context) { + double contentSize = (widget.itemCount ?? 0.0) * (widget.itemExtent ?? 00.0); + Widget listContent = ScrollbarListStack( + contentSize: contentSize, + axis: widget.axis, + controller: scrollController, + barSize: widget.barSize ?? 12, + scrollbarPadding: widget.scrollbarPadding, + child: ListView.builder( + padding: widget.padding, + scrollDirection: widget.axis, + physics: StyledScrollPhysics(), + controller: scrollController, + itemExtent: widget.itemExtent, + itemCount: widget.itemCount, + itemBuilder: (c, i) => widget.itemBuilder(c, i), + ), + ); + return listContent; + } +} + +class StyledListViewWithTitle extends StatelessWidget { + final Color bgColor; + final String title; + final AssetImage icon; + final List listItems; + + const StyledListViewWithTitle({Key key, this.bgColor, this.title, this.listItems, this.icon}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return StyledCard( + bgColor: bgColor, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + if (icon != null) ...{ + StyledImageIcon(icon, color: theme.accent1Darker), + HSpace(Insets.sm), + }, + Text(title, style: TextStyles.T2.textColor(theme.accent1Darker)), + ], + ), + VSpace(Insets.sm), + StyledListView(itemCount: listItems.length, itemBuilder: (_, i) => listItems[i]).flexible() + ], + ).padding(left: Insets.l * .75, right: Insets.m, vertical: Insets.m), + ); + } +} diff --git a/flokk_src/lib/styled_components/scrolling/styled_scrollbar.dart b/flokk_src/lib/styled_components/scrolling/styled_scrollbar.dart new file mode 100644 index 0000000..6c1af53 --- /dev/null +++ b/flokk_src/lib/styled_components/scrolling/styled_scrollbar.dart @@ -0,0 +1,201 @@ +import 'dart:math'; + +import 'package:flokk/_internal/components/mouse_hover_builder.dart'; +import 'package:flokk/_internal/components/simple_value_notifier.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class StyledScrollbar extends StatefulWidget { + final double size; + final Axis axis; + final ScrollController controller; + final Function(double) onDrag; + final bool showTrack; + final Color handleColor; + final Color trackColor; + + // TODO: Remove contentHeight if we can fix this issue + // https://stackoverflow.com/questions/60855712/flutter-how-to-force-scrollcontroller-to-recalculate-position-maxextents + final double contentSize; + + const StyledScrollbar( + {Key key, this.size, this.axis, this.controller, this.onDrag, this.contentSize, this.showTrack = false, this.handleColor, this.trackColor}) + : super(key: key); + + @override + ScrollbarState createState() => ScrollbarState(); +} + +class ScrollbarState extends State { + double _viewExtent = 100; + SimpleNotifier buildNotifier = SimpleNotifier(); + + @override + void initState() { + widget.controller.addListener(() => setState(() {})); + super.initState(); + } + + @override + void didUpdateWidget(StyledScrollbar oldWidget) { + if (oldWidget.contentSize != widget.contentSize) setState(() {}); + super.didUpdateWidget(oldWidget); + } + + +// void calculateSize() { +// //[SB] Only hack I can find to make the ScrollController update it's maxExtents. +// //Call this whenever the content changes, so the scrollbar can recalculate it's size +// widget.controller.jumpTo(widget.controller.position.pixels + 1); +// Future.microtask(() => widget.controller +// .animateTo(widget.controller.position.pixels - 1, duration: 100.milliseconds, curve: Curves.linear)); +// } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return LayoutBuilder( + builder: (_, BoxConstraints constraints) { + double maxExtent; + switch (widget.axis) { + case Axis.vertical: + // Use supplied contentSize if we have it, otherwise just fallback to maxScrollExtents + maxExtent = (widget.contentSize != null && widget.contentSize > 0) + ? widget.contentSize - constraints.maxHeight + : widget.controller?.position?.maxScrollExtent ?? 0; + _viewExtent = constraints.maxHeight; + + break; + case Axis.horizontal: + // Use supplied contentSize if we have it, otherwise just fallback to maxScrollExtents + maxExtent = (widget.contentSize != null && widget.contentSize > 0) + ? widget.contentSize - constraints.maxWidth + : widget.controller?.position?.maxScrollExtent ?? 0; + _viewExtent = constraints.maxWidth; + + break; + } + + double contentExtent = maxExtent + _viewExtent; + // Calculate the alignment for the handle, this is a value between 0 and 1, + // it automatically takes the handle size into acct + double handleAlignment = maxExtent == 0 ? 0 : widget.controller.offset / maxExtent; + + // Convert handle alignment from [0, 1] to [-1, 1] + handleAlignment *= 2.0; + handleAlignment -= 1.0; + + // Calculate handleSize by comparing the total content size to our viewport + double handleExtent = _viewExtent; + if (contentExtent > _viewExtent) { + //Make sure handle is never small than the minSize + handleExtent = max(60, _viewExtent * _viewExtent / contentExtent); + } + // Hide the handle if content is < the viewExtent + bool showHandle = contentExtent > _viewExtent && contentExtent > 0; + // Handle color + Color handleColor = widget.handleColor ?? ( + theme.isDark ? theme.greyWeak.withOpacity(.2) : theme.greyWeak); + // Track color + Color trackColor = widget.trackColor ?? ( + theme.isDark ? theme.greyWeak.withOpacity(.1) : theme.greyWeak.withOpacity(.3)); + + //Layout the stack, it just contains a child, and + return Stack(children: [ + /// TRACK, thin strip, aligned along the end of the parent + if (widget.showTrack) + Align( + alignment: Alignment(1, 1), + child: Container( + color: trackColor, + width: widget.axis == Axis.vertical ? widget.size : double.infinity, + height: widget.axis == Axis.horizontal ? widget.size : double.infinity, + ), + ), + + /// HANDLE - Clickable shape that changes scrollController when dragged + Align( + // Use calculated alignment to position handle from -1 to 1, let Alignment do the rest of the work + alignment: Alignment( + widget.axis == Axis.vertical ? 1 : handleAlignment, + widget.axis == Axis.horizontal ? 1 : handleAlignment, + ), + child: GestureDetector( + onVerticalDragUpdate: _handleVerticalDrag, + onHorizontalDragUpdate: _handleHorizontalDrag, + // HANDLE SHAPE + child: MouseHoverBuilder( + builder: (_, isHovered) => Container( + width: widget.axis == Axis.vertical ? widget.size : handleExtent, + height: widget.axis == Axis.horizontal ? widget.size : handleExtent, + decoration: BoxDecoration(color: handleColor.withOpacity(isHovered? 1 : .85), borderRadius: Corners.s3Border), + ), + ), + ), + ) + ]).opacity(showHandle ? 1.0 : 0.0, animate: false); + }, + ); + } + + void _handleHorizontalDrag(DragUpdateDetails details) { + double pos = widget.controller.offset; + double pxRatio = (widget.controller.position.maxScrollExtent + _viewExtent) / _viewExtent; + widget.controller.jumpTo((pos + details.delta.dx * pxRatio).clamp(0.0, widget.controller.position.maxScrollExtent)); + widget.onDrag?.call(details.delta.dx); + } + + void _handleVerticalDrag(DragUpdateDetails details) { + double pos = widget.controller.offset; + double pxRatio = (widget.controller.position.maxScrollExtent + _viewExtent) / _viewExtent; + widget.controller.jumpTo((pos + details.delta.dy * pxRatio).clamp(0.0, widget.controller.position.maxScrollExtent)); + widget.onDrag?.call(details.delta.dy); + } +} + +class ScrollbarListStack extends StatelessWidget { + final double barSize; + final Axis axis; + final ChangeNotifier rebuildNotifier; + final Widget child; + final ScrollController controller; + final double contentSize; + final EdgeInsets scrollbarPadding; + final Color handleColor; + final Color trackColor; + + const ScrollbarListStack( + {Key key, this.barSize, this.axis, this.rebuildNotifier, this.child, this.controller, this.contentSize, this.scrollbarPadding, this.handleColor, this.trackColor}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + /// LIST + /// Wrap with a bit of padding on the right + child.padding( + right: axis == Axis.vertical ? barSize + Insets.sm : 0, + bottom: axis == Axis.horizontal ? barSize + Insets.sm : 0, + ), + + /// SCROLLBAR + Padding( + padding: scrollbarPadding ?? EdgeInsets.zero, + child: StyledScrollbar( + size: barSize, + axis: axis, + controller: controller, + contentSize: contentSize, + trackColor: trackColor, + handleColor: handleColor, + showTrack: true, + ), + ), + ], + ); + } +} diff --git a/flokk_src/lib/styled_components/scrolling/styled_scrollview.dart b/flokk_src/lib/styled_components/scrolling/styled_scrollview.dart new file mode 100644 index 0000000..cff44f9 --- /dev/null +++ b/flokk_src/lib/styled_components/scrolling/styled_scrollview.dart @@ -0,0 +1,65 @@ +import 'package:flokk/styled_components/scrolling/styled_scrollbar.dart'; +import 'package:flutter/material.dart'; + +import 'styled_listview.dart'; + +class StyledScrollView extends StatefulWidget { + final double contentSize; + final Axis axis; + final Color trackColor; + final Color handleColor; + + final Widget child; + + StyledScrollView({ + Key key, + @required this.child, + this.contentSize, + this.axis = Axis.vertical, this.trackColor, this.handleColor, + }) : super(key: key) {} + + @override + _StyledScrollViewState createState() => _StyledScrollViewState(); +} + +class _StyledScrollViewState extends State { + ScrollController scrollController; + + @override + void initState() { + scrollController = ScrollController(); + super.initState(); + } + + @override + void dispose() { + scrollController.dispose(); + super.dispose(); + } + + @override + void didUpdateWidget(StyledScrollView oldWidget) { + if (oldWidget.child != widget.child) { + setState(() {}); + } + super.didUpdateWidget(oldWidget); + } + + @override + Widget build(BuildContext context) { + return ScrollbarListStack( + contentSize: widget.contentSize, + axis: widget.axis, + controller: scrollController, + barSize: 12, + trackColor: widget.trackColor, + handleColor: widget.handleColor, + child: SingleChildScrollView( + scrollDirection: widget.axis, + physics: StyledScrollPhysics(), + controller: scrollController, + child: widget.child, + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/social/clickable_social_badges.dart b/flokk_src/lib/styled_components/social/clickable_social_badges.dart new file mode 100644 index 0000000..580d832 --- /dev/null +++ b/flokk_src/lib/styled_components/social/clickable_social_badges.dart @@ -0,0 +1,150 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:flokk/data/social_contact_data.dart'; +import 'package:flokk/data/tweet_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/styled_components/social/social_badge.dart'; +import 'package:flokk/styled_components/social/social_popup_form.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:timeago/timeago.dart' as timeago; + +import '../styled_icons.dart'; + +class ClickableSocialBadges extends StatefulWidget { + final ContactData contact; + final bool showTimeSince; + + const ClickableSocialBadges(this.contact, {Key key, this.showTimeSince = false}) : super(key: key); + + @override + _ClickableSocialBadgesState createState() => _ClickableSocialBadgesState(); +} + +class _ClickableSocialBadgesState extends State { + LayerLink overlayLink = LayerLink(); + + Size _viewSize; + + void _handleSocialClicked(BuildContext context, ContactData contact, SocialActivityType type) { + // If they clicked a badge that they have already entered a handle for, then open their social panel. + if (contact.hasSocialOfType(type)) { + context.read().trySetSelectedContact(contact, showSocial: true); + } else { + _showSocialMiniFormOverlay(context, type); + } + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + //Bind to social models so we always rebuild when they change + context.watch(); + context.watch(); + //Fetch model so we can get the latest social info + ContactsModel contactsModel = Provider.of(context, listen: false); + // Grab socialData for this contact (might be null) + SocialContactData social = contactsModel.getSocialById(widget.contact.id); + // Get the time of their last activity + DateTime lastSocialTime = social?.latestActivity?.createdAt; + // Grab any tweets we haven't look at yet + List newTweets = social?.newTweets ?? []; + List newGits = social?.newGits ?? []; + // Figure out bottom text, changes if we have no social + String bottomTxt = "Add Social IDs"; + if (widget.contact.hasAnySocial) { + bottomTxt = lastSocialTime != null ? timeago.format(lastSocialTime) : "No New Activities"; + } + return LayoutBuilder( + builder: (_, constraints) { + // Record the current view size so the Overlay knows how much to offset itself by + _viewSize = Size(constraints.maxWidth, constraints.maxHeight); + return CompositedTransformTarget( + link: overlayLink, + child: Column(mainAxisSize: MainAxisSize.min, children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: [ + SocialBadge( + icon: StyledIcons.twitterActive, + iconPlaceholder: StyledIcons.twitterEmpty, + newMessageCount: newTweets.length, + hasAccount: widget.contact.hasTwitter, + onPressed: () => _handleSocialClicked(context, widget.contact, SocialActivityType.Twitter), + ), + HSpace(Insets.m), + SocialBadge( + icon: StyledIcons.githubActive, + iconPlaceholder: StyledIcons.githubEmpty, + newMessageCount: newGits.length, + hasAccount: widget.contact.hasGit, + onPressed: () => _handleSocialClicked(context, widget.contact, SocialActivityType.Git), + ), + ], + ), + if (widget.showTimeSince) VSpace(Insets.sm * 1.5), + if (widget.showTimeSince) Text(bottomTxt, style: TextStyles.Body2.textColor(theme.greyWeak)), + VSpace(Insets.sm), + ]), + ); + }, + ); + } + + void _showSocialMiniFormOverlay(BuildContext context, SocialActivityType type) { + AppTheme theme = context.read(); + OverlayEntry bg; + OverlayEntry form; + + void _closeOverlay() { + bg.remove(); + form.remove(); + } + + bg = OverlayEntry( + builder: (_) { + return FadeInWidget( + Container(color: theme.greyWeak.withOpacity(.6)).gestures(onTap: _closeOverlay), + ); + }, + ); + form = OverlayEntry(builder: (_) { + return CompositedTransformFollower( + offset: Offset(-SocialPopupForm.kWidth * .5 + _viewSize.width * .5, 0), + link: overlayLink, + child: FadeInWidget(SocialPopupForm( + widget.contact, + onClosePressed: _closeOverlay, + socialActivityType: type, + ))); + }); + Overlay.of(context).insert(bg); + Overlay.of(context).insert(form); + } +} + +class FadeInWidget extends StatelessWidget { + final Widget child; + + const FadeInWidget(this.child, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return TweenAnimationBuilder( + tween: Tween(begin: 0, end: 1), + duration: Durations.fastest, + builder: (_, value, child) => Opacity(opacity: value, child: child), + child: child, + ); + } +} diff --git a/flokk_src/lib/styled_components/social/git_item_renderer.dart b/flokk_src/lib/styled_components/social/git_item_renderer.dart new file mode 100644 index 0000000..2a335a3 --- /dev/null +++ b/flokk_src/lib/styled_components/social/git_item_renderer.dart @@ -0,0 +1,184 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/url_launcher/url_launcher.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/git_event_data.dart'; +import 'package:flokk/data/git_repo_data.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:github/github.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; + +import '../styled_icons.dart'; + +class GitUtils { + static DateFormat get monthDayFmt => DateFormat("MMM d"); + + //EC: https://developer.github.com/v3/activity/events/types/, made human readable and added past tense where applicable + static String getStringForType(String type) { + if (type == "CheckRunEvent") return "Checked Run"; + if (type == "CheckSuiteEvent") return "Checked Suite"; + if (type == "CommitCommentEvent") return "Commit Commented"; + if (type == "ContentReferenceEvent") return "Content Referenced"; + if (type == "CreateEvent") return "Created"; + if (type == "DeleteEvent") return "Deleted"; + if (type == "DeployKeyEvent") return "Deployed Key"; + if (type == "DeploymentEvent") return "Deployed"; + if (type == "DeploymentStatusEvent") return "Deployment Status"; + if (type == "DownloadEvent") return "Downloaded"; + if (type == "FollowEvent") return "Followed"; + if (type == "ForkEvent") return "Forked"; + if (type == "ForkApplyEvent") return "Applied Fork"; + if (type == "GitHubAppAuthorizationEvent") return "GitHub AppAuthorization"; + if (type == "GistEvent") return "Gist"; + if (type == "GollumEvent") return "Gollum"; + if (type == "InstallationEvent") return "Installation"; + if (type == "InstallationRepositoriesEvent") return "Installation Repositories"; + if (type == "IssueCommentEvent") return "Commented on Issue"; + if (type == "IssuesEvent") return "Issues"; + if (type == "LabelEvent") return "Labelled"; + if (type == "MarketplacePurchaseEvent") return "Marketplace Purchase"; + if (type == "MemberEvent") return "Member"; + if (type == "MembershipEvent") return "Membership"; + if (type == "MetaEvent") return "Meta"; + if (type == "MilestoneEvent") return "Milestone"; + if (type == "OrganizationEvent") return "Organization"; + if (type == "OrgBlockEvent") return "Org Blocked"; + if (type == "PackageEvent") return "Packaged"; + if (type == "PageBuildEvent") return "PageBuild"; + if (type == "ProjectCardEvent") return "Project Card"; + if (type == "ProjectColumnEvent") return "Project Column"; + if (type == "ProjectEvent") return "Project"; + if (type == "PublicEvent") return "Public"; + if (type == "PullRequestEvent") return "Pull Requested"; + if (type == "PullRequestReviewEvent") return "Reviewed Pull Request"; + if (type == "PullRequestReviewCommentEvent") return "Commented Pull Request Review"; + if (type == "PushEvent") return "Pushed"; + if (type == "ReleaseEvent") return "Released"; + if (type == "RepositoryDispatchEvent") return "Repository Dispatch"; + if (type == "RepositoryEvent") return "Repository"; + if (type == "RepositoryImportEvent") return "Repository Import"; + if (type == "RepositoryVulnerabilityAlertEvent") return "Repository Vulnerability Alert"; + if (type == "SecurityAdvisoryEvent") return "Security Advisory"; + if (type == "SponsorshipEvent") return "Sponsorship"; + if (type == "StarEvent") return "Starred"; + if (type == "StatusEvent") return "Status"; + if (type == "TeamEvent") return "Team"; + if (type == "TeamAddEvent") return "Team Added"; + if (type == "WatchEvent") return "Watched"; + return type; + } +} + +/// Item Renderer for Git Events +class GitEventListItem extends StatelessWidget { + final GitEvent gitEvent; + + const GitEventListItem(this.gitEvent, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + TextStyle titleStyle = TextStyles.Body2; + return Column( + children: [ + Row(children: [ + Text("${gitEvent.event.actor.login}", style: titleStyle.bold), + Text( + " · ${GitUtils.getStringForType(gitEvent.event.type)} · ${GitUtils.monthDayFmt.format(gitEvent.createdAt)}", + style: titleStyle), + ]), + VSpace(Insets.xs * 1.5), + GitRepoInfo(gitEvent.repository), + VSpace(Insets.l), + ], + ); + } +} + +/// Item Renderer for Git Repos +class GitRepoListItem extends StatelessWidget { + final GitRepo repo; + + const GitRepoListItem(this.repo, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + TextStyle titleStyle = TextStyles.Body2; + return Column( + children: [ + Row(children: [ + Text("${repo.contacts?.first?.nameGiven ?? "?"}", style: titleStyle.bold), + Text(" · ${GitUtils.monthDayFmt.format(repo.repository.updatedAt)}", style: titleStyle), + ]), + VSpace(Insets.xs * 1.5), + GitRepoInfo(repo.repository), + VSpace(Insets.l), + ], + ); + } +} + +/// Small pill used for Language Type +class _GitPill extends StatelessWidget { + final String label; + + const _GitPill(this.label, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Text(label, style: TextStyles.Footnote.letterSpace(0)) + .padding(all: Insets.xs, horizontal: Insets.sm) + .decorated(color: theme.bg2, borderRadius: Corners.s3Border); + } +} + +/// This is used in both renderers to show the core Repo info +class GitRepoInfo extends StatelessWidget { + final Repository repo; + + const GitRepoInfo(this.repo, {Key key}) : super(key: key); + + void _handleRepoPressed() => UrlLauncher.openHttp(repo.htmlUrl); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + TextStyle smallTextStyle = TextStyles.Body3.textHeight(1.4); + TextStyle contentTextStyle = TextStyles.Body1.textHeight(1.4); + return Column( + children: [ + Row(children: [ + RichText( + text: TextSpan( + children: [ + TextSpan(text: "${repo?.name}", style: contentTextStyle.textColor(theme.accent1Dark)), + TextSpan(text: " | ${repo?.description}", style: contentTextStyle.textColor(theme.txt)), + ], + ), + ).flexible(), + //ClickableText(repo.name, onPressed: _handleRepoPressed,), + ]), + VSpace(Insets.sm * 1.5), + Row(children: [ + if (repo?.language != null) ...{ + _GitPill(repo?.language), + HSpace(Insets.sm), + }, + StyledImageIcon(StyledIcons.starFilled, size: 12, color: theme.grey), + Text("${repo?.stargazersCount ?? 0}", style: smallTextStyle).padding(left: Insets.xs), + HSpace(Insets.sm), + StyledImageIcon(StyledIcons.socialFork, size: 12, color: theme.grey).translate( + offset: Offset(0, 1), // Add a bit of offset to the fork icon cause it's a bit tall and doesn't look right + ), + Text("${repo?.forksCount ?? 0}", style: smallTextStyle).padding(left: Insets.xs), + ]), + VSpace(Insets.m * 1.5), + Container(color: theme.greyWeak.withOpacity(.35), width: double.infinity, height: 1), + //VSpace(Insets.l), + ], + ).gestures(onTap: _handleRepoPressed); + } +} diff --git a/flokk_src/lib/styled_components/social/social_badge.dart b/flokk_src/lib/styled_components/social/social_badge.dart new file mode 100644 index 0000000..19be968 --- /dev/null +++ b/flokk_src/lib/styled_components/social/social_badge.dart @@ -0,0 +1,51 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SocialBadge extends StatelessWidget { + final AssetImage icon; + final AssetImage iconPlaceholder; + final int newMessageCount; + final bool hasAccount; + final Function() onPressed; + + const SocialBadge( + {this.icon, this.iconPlaceholder, this.newMessageCount, Key key, this.hasAccount, this.onPressed}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double size = 35; + String msgText = newMessageCount > 9 ? "9+" : "$newMessageCount"; + return TransparentBtn( + onPressed: onPressed, + child: Stack( + children: [ + /// PLACEHOLDER + if (!hasAccount) StyledImageIcon(iconPlaceholder, size: 32, color: theme.greyWeak.withOpacity(.7)).center(), + + /// VALID ACCOUNT + if (hasAccount) StyledImageIcon(icon, size: 28, color: newMessageCount > 0 ? theme.accent1 : theme.grey), + if (hasAccount) + StyledContainer( + theme.bg1, + align: Alignment.center, + borderRadius: BorderRadius.circular(99), + child: Text( + "$msgText", + textAlign: TextAlign.center, + style: TextStyles.Footnote.textColor(theme.txt).letterSpace(1), + ).translate(offset: Offset(0, -1)), + ).constrained(width: 19, height: 19).alignment(Alignment.bottomRight), + ], + ).width(size).height(size), + ); + } +} diff --git a/flokk_src/lib/styled_components/social/social_popup_form.dart b/flokk_src/lib/styled_components/social/social_popup_form.dart new file mode 100644 index 0000000..db18249 --- /dev/null +++ b/flokk_src/lib/styled_components/social/social_popup_form.dart @@ -0,0 +1,148 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/update_contact_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:flokk/styled_components/buttons/primary_btn.dart'; +import 'package:flokk/styled_components/buttons/secondary_btn.dart'; +import 'package:flokk/styled_components/styled_card.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../styled_icons.dart'; + +class SocialPopupForm extends StatefulWidget { + static const double kWidth = 270; + static const double kHeight = 190; + + final void Function() onClosePressed; + final ContactData contact; + final SocialActivityType socialActivityType; + + const SocialPopupForm(this.contact, {Key key, this.onClosePressed, this.socialActivityType}) : super(key: key); + + @override + _SocialPopupFormState createState() => _SocialPopupFormState(); +} + +class _SocialPopupFormState extends State { + ContactData _tmpContact; + + void _handleGitChanged(String value) => _tmpContact.gitUsername = value; + + void _handleTwitterChanged(String value) => _tmpContact.twitterHandle = value; + + void _handleBtnPressed(bool doSave) { + if (doSave && !_tmpContact.hasSameSocial(widget.contact)) { + UpdateContactCommand(context).execute(_tmpContact, updateSocial: true); + } + widget.onClosePressed?.call(); + } + + @override + void initState() { + _tmpContact = widget.contact.copy(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Material( + type: MaterialType.transparency, + child: StyledCard( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + /// GIT ICON + TEXT + _SocialTextInput( + icon: StyledIcons.githubActive, + hint: "github.com/", + initial: widget.contact.gitUsername, + onChanged: _handleGitChanged, + autoFocus: widget.socialActivityType == SocialActivityType.Git, + ), + VSpace(Insets.sm), + + /// TWITTER ICON + TEXT + _SocialTextInput( + icon: StyledIcons.twitterActive, + hint: "@", + initial: widget.contact.twitterHandle, + onChanged: _handleTwitterChanged, + autoFocus: widget.socialActivityType == SocialActivityType.Twitter, + ), + VSpace(Insets.l), + + /// SUBMIT BUTTONS + Row( + children: [ + PrimaryTextBtn("SAVE", onPressed: () => _handleBtnPressed(true)), + HSpace(Insets.m), + SecondaryTextBtn("CANCEL", onPressed: () => _handleBtnPressed(false)), + ], + ), + ], + ).padding(all: Insets.l).constrained(width: SocialPopupForm.kWidth), + ), + ) + ], + ); + } +} + +class _SocialTextInput extends StatelessWidget { + final String hint; + final String initial; + final AssetImage icon; + final bool autoFocus; + final void Function(String) onChanged; + + const _SocialTextInput({Key key, this.hint, this.onChanged, this.initial, this.icon, this.autoFocus=false}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double prefixSize = StringUtils.measure(hint, TextStyles.Body1).width; + EdgeInsets padding = StyledFormTextInput.kDefaultTextInputPadding.copyWith(left: prefixSize + .5); + + return Row( + mainAxisSize: MainAxisSize.min, + children: [ + StyledImageIcon(icon, color: ColorUtils.shiftHsl(theme.accent1, theme.isDark ? .2 : -.2), size: 30), + HSpace(Insets.m), + Stack( + children: [ + /// Prefix text, non-interactive + FocusScope( + canRequestFocus: false, + child: IgnorePointer(child: buildTextInput(context, hint: hint, onChanged: (v) {}))), + + /// Value text + buildTextInput(context, + hint: "", initial: initial, onChanged: onChanged, autoFocus: autoFocus, padding: padding), + ], + ).flexible() + ], + ); + } + + buildTextInput(BuildContext context, + {String hint, String initial = "", bool autoFocus = false, void Function(String) onChanged, EdgeInsets padding}) { + return StyledFormTextInput( + contentPadding: padding, + hintText: hint, + autoFocus: autoFocus, + initialValue: initial, + maxLines: 1, + onChanged: onChanged); + } +} diff --git a/flokk_src/lib/styled_components/social/tweet_item_renderer.dart b/flokk_src/lib/styled_components/social/tweet_item_renderer.dart new file mode 100644 index 0000000..decaaaf --- /dev/null +++ b/flokk_src/lib/styled_components/social/tweet_item_renderer.dart @@ -0,0 +1,73 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/selectable_link_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/url_launcher/url_launcher.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/tweet_data.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import '../styled_icons.dart'; + +class TweetListItem extends StatelessWidget { + final Tweet tweet; + + const TweetListItem(this.tweet, {Key key}) : super(key: key); + + void _handleRowPressed() { + UrlLauncher.openHttp(tweet.url); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + int minutesAgo = DateTime.now().difference(tweet.createdAt).inMinutes; + String timeTxt = minutesAgo < 60 ? "${minutesAgo}m" : "${(minutesAgo / 60).round()}h"; + if (minutesAgo > 60 * 24) { + timeTxt = "${(minutesAgo / 60 / 24).round()}d"; + } + TextStyle titleStyle = TextStyles.Body2; + return Column( + children: [ + Row(children: [ + OneLineText(tweet.user.name, style: titleStyle.bold).flexible(), + HSpace(Insets.sm), + OneLineText(tweet.retweeted ? "Retweeted" : "Tweeted", style: titleStyle).flexible(), + Text(" · ", style: titleStyle), + Text(timeTxt, style: titleStyle), + ]), + VSpace(Insets.sm), + Row(children: [ + SelectableLinkText( + text: "${tweet.text}", + linkStyle: TextStyles.Body1.textHeight(1.6).textColor(theme.accent1), + textStyle: TextStyles.Body1.textHeight(1.6).textColor(theme.txt)) + .flexible() + ]), + VSpace(Insets.m), + Row(children: [ + StyledImageIcon(StyledIcons.socialLike, size: 12, color: theme.grey), + HSpace(Insets.sm), + Text( + "${tweet.favoriteCount}", + style: TextStyles.Body3.textColor(theme.grey), + ), + HSpace(Insets.m), + StyledImageIcon(StyledIcons.socialRetweet, size: 12, color: theme.grey), + HSpace(Insets.sm), + Text( + "${tweet.retweetCount}", + style: TextStyles.Body3.textColor(theme.grey), + ), + ]), + VSpace(Insets.m), + Container(color: theme.greyWeak.withOpacity(.35), width: double.infinity, height: 1), + VSpace(Insets.l), + ], + ).gestures(onTap: _handleRowPressed, behavior: HitTestBehavior.opaque); + } + +} diff --git a/flokk_src/lib/styled_components/styled_autocomplete_dropdown.dart b/flokk_src/lib/styled_components/styled_autocomplete_dropdown.dart new file mode 100644 index 0000000..cf514ff --- /dev/null +++ b/flokk_src/lib/styled_components/styled_autocomplete_dropdown.dart @@ -0,0 +1,230 @@ +import 'dart:math'; +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/_internal/utils/utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +class StyledAutoCompleteDropdown extends StatefulWidget { + final String initialValue; + final String hint; + final List items; + final double maxHeight; + final Function(String) onChanged; + final Function(bool) onFocusChanged; + + const StyledAutoCompleteDropdown( + {Key key, this.initialValue, this.hint, this.items, this.onChanged, this.onFocusChanged, this.maxHeight = 500}) + : super(key: key); + + @override + _StyledAutoCompleteDropdownState createState() => _StyledAutoCompleteDropdownState(); +} + +class _StyledAutoCompleteDropdownState extends State { + bool _isOpen = false; + OverlayEntry _overlay; + ValueNotifier> _itemsFiltered; + TextEditingController _textController; + FocusNode _textFocusNode; + FocusScopeNode _dropDownFocusNode; + LayerLink layerLink = LayerLink(); + bool _skipNextFocusOut = false; + + String get currentText => _textController.text; + + @override + void initState() { + RawKeyboard.instance.addListener(_handleRawKeyPressed); + _itemsFiltered = ValueNotifier(widget.items); + _textController = TextEditingController(text: widget.initialValue); + _dropDownFocusNode = FocusScopeNode(); + _dropDownFocusNode.addListener(handleDropdownFocusChanged); + super.initState(); + } + + @override + void dispose() { + RawKeyboard.instance.removeListener(_handleRawKeyPressed); + // TODO: These dispose calls seem to break the contact edit menu + //_itemsFiltered.dispose(); + //_textController.dispose(); + //_dropDownFocusNode.dispose(); + super.dispose(); + } + + void _updateFilteredItems() { + _itemsFiltered.value = widget.items.where((i) => i.contains(currentText.toUpperCase())).toList(); + } + + void _handleArrowTap() { + if (!_isOpen) { + showOverlay(); + _textFocusNode?.requestFocus(); + } else { + showOverlay(false); + Utils.unFocus(); + } + } + + void _handleRawKeyPressed(RawKeyEvent evt) { + if (evt is RawKeyDownEvent) { + if (_textFocusNode.hasFocus && evt.logicalKey == LogicalKeyboardKey.arrowDown) { + _skipNextFocusOut = true; + Future.microtask(() => _dropDownFocusNode.requestFocus()); + } + if (_dropDownFocusNode.hasFocus && + (evt.logicalKey == LogicalKeyboardKey.arrowRight || evt.logicalKey == LogicalKeyboardKey.arrowLeft)) { + _textFocusNode.requestFocus(); + } + } + } + + void _handleFocusChanged(bool value) { + if (_skipNextFocusOut && !value) { + _skipNextFocusOut = false; + return; + } + showOverlay(value); + widget.onFocusChanged?.call(value); + } + + _handleFocusCreate(FocusNode focusNode) { + _textFocusNode = focusNode; + } + + void _handleValueChanged(String value) { + _updateFilteredItems(); + widget.onChanged?.call(value); + showOverlay(); + } + + void _handleItemSelected(String value) { + _textController.text = value; + _updateFilteredItems(); + widget.onChanged?.call(value); + showOverlay(false); + _textFocusNode?.requestFocus(); + //Utils.unFocus(); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + bool downArrow = _itemsFiltered.value.isNotEmpty && _isOpen; + + /// Wrap the dropdown content in a [CompositedTransformTarget] so the Overlay can easily position itself here. + return CompositedTransformTarget( + link: layerLink, + child: Stack( + children: [ + StyledFormTextInput( + capitalization: TextCapitalization.words, + contentPadding: EdgeInsets.only(right: 22, bottom: Insets.sm), + controller: _textController, + initialValue: widget.initialValue, + hintText: widget.hint, + maxLines: 1, + textStyle: TextStyles.Body2, + onFocusCreated: _handleFocusCreate, + onFocusChanged: _handleFocusChanged, + onChanged: _handleValueChanged), + StyledImageIcon(StyledIcons.dropdownClose, size: 12, color: theme.greyStrong) + .rotate(angle: downArrow ? 0 : pi, animate: true) + .animate(Durations.fast, Curves.easeOut) + .alignment(Alignment.topLeft) + .gestures(onTap: _handleArrowTap) + .positioned(right: 4, top: 4), + ], + ), + ); + } + + void showOverlay([bool show = true]) { + if (show && _overlay == null) { + _overlay = OverlayEntry(builder: (_) => _AutoCompleteDropdown(this, focusNode: _dropDownFocusNode)); + Overlay.of(context).insert(_overlay); + } else if (!show && _overlay != null) { + _overlay.remove(); + _overlay = null; + } + setState(() => _isOpen = show); + } + + void handleDropdownFocusChanged() { + if (!_dropDownFocusNode.hasFocus) { + showOverlay(false); + } + } +} + +class _AutoCompleteDropdown extends StatelessWidget { + final _StyledAutoCompleteDropdownState state; + final double rowHeight; + final FocusScopeNode focusNode; + + _AutoCompleteDropdown(this.state, {Key key, this.focusNode, this.rowHeight = 40}) : super(key: key); + + List get items => state.widget.items; + + List get filteredItems => state._itemsFiltered.value; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + if (state.context == null) return Container(); + RenderBox rb = state.context.findRenderObject(); + Size size = rb.size; + double longest = StringUtils.measureLongest(filteredItems, TextStyles.Caption, 50); + longest += Insets.m * 2; + double maxHeight = state.widget.maxHeight ?? 300; + + /// Use [CompositedTransformFollower] to link the overlay position to the original content. + /// Automatically updates when the window resizes or on scroll. + return CompositedTransformFollower( + showWhenUnlinked: false, + + /// Use a layerLink to connect to the CompositedTransformTarget + link: state.layerLink, + child: ValueListenableBuilder>( + valueListenable: state._itemsFiltered, + builder: (_, matches, __) { + return FocusScope( + node: focusNode, + child: Stack( + children: [ + ListView.builder( + itemExtent: rowHeight, + itemCount: matches.length, + itemBuilder: (_, index) { + return BaseStyledBtn( + contentPadding: EdgeInsets.symmetric(horizontal: Insets.m), + minHeight: rowHeight, + onPressed: () => state._handleItemSelected(matches[index]), + child: OneLineText( + "${matches[index].toUpperCase()}", + style: TextStyles.Caption.textColor(theme.greyWeak), + ).alignment(Alignment.centerLeft), + ); + }, + ) + .decorated(color: theme.surface, boxShadow: Shadows.m(theme.accent1)) + .constrained(width: max(longest, size.width), height: min(matches.length * rowHeight, maxHeight)) + .padding(top: 26) + //.positioned(left: pos.dx, top: pos.dy) + ], + ), + ); + }, + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_card.dart b/flokk_src/lib/styled_components/styled_card.dart new file mode 100644 index 0000000..cbdd913 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_card.dart @@ -0,0 +1,33 @@ +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +/// A card that defaults to theme.surface1, and has a built in shadow and rounded corners. +class StyledCard extends StatelessWidget { + final Color bgColor; + final bool enableShadow; + final Widget child; + final Function() onPressed; + final Alignment align; + + const StyledCard({Key key, this.bgColor, this.enableShadow = true, this.child, this.onPressed, this.align}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color c = bgColor ?? theme.surface; + + Widget content = StyledContainer(c, + align: align, + child: child, + borderRadius: Corners.s8Border, + shadows: enableShadow ? Shadows.m(theme.accent1Darker) : null); + + if (onPressed != null) return TransparentBtn(child: content, onPressed: onPressed); + return content; + } +} diff --git a/flokk_src/lib/styled_components/styled_checkbox.dart b/flokk_src/lib/styled_components/styled_checkbox.dart new file mode 100644 index 0000000..846eba1 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_checkbox.dart @@ -0,0 +1,50 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class StyledCheckbox extends StatelessWidget { + final bool value; + final double size; + final Function(bool) onChanged; + + const StyledCheckbox({Key key, this.value, this.size = 18, this.onChanged}) : super(key: key); + + void _handleTapUp(TapUpDetails details) { + if (value == true) { + onChanged(false); + } else if (value == false) { + onChanged(null); + } else if (value == null) { + onChanged(true); + } + } + + Widget _getIconForCurrentState() { + if (value == true) return StyledImageIcon(StyledIcons.checkboxSelected, color: Colors.white, size: 15); + if (value == null) return StyledImageIcon(StyledIcons.checkboxPartial, color: Colors.white, size: 15); + return Container(); + } + + Widget _wrapGestures(Widget child) { + if (onChanged == null) return child; + return child.gestures(onTapUp: _handleTapUp, behavior: HitTestBehavior.opaque); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Container( + width: size, + height: size, + decoration: BoxDecoration( + color: value == false ? Colors.transparent : theme.accent1Darker, + borderRadius: Corners.s3Border, + border: Border.all(color: value == false ? theme.grey : theme.accent1Darker, width: 1.5)), + child: _wrapGestures(_getIconForCurrentState()), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_container.dart b/flokk_src/lib/styled_components/styled_container.dart new file mode 100644 index 0000000..ac4f92a --- /dev/null +++ b/flokk_src/lib/styled_components/styled_container.dart @@ -0,0 +1,42 @@ +import 'package:flokk/styles.dart'; +import 'package:flutter/material.dart'; + +/// A container that will animate when you change colors. +class StyledContainer extends StatelessWidget { + final Color color; + final BorderRadiusGeometry borderRadius; + final List shadows; + final Widget child; + final double width; + final double height; + final Alignment align; + final EdgeInsets margin; + final Duration duration; + final BoxBorder border; + + const StyledContainer(this.color, + {Key key, + this.borderRadius, + this.shadows, + this.child, + this.width, + this.height, + this.align, + this.margin, + this.duration, + this.border}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return AnimatedContainer( + width: width, + height: height, + child: child, + margin: margin, + alignment: align, + duration: duration ?? Durations.medium, + decoration: BoxDecoration( + color: color, borderRadius: borderRadius, boxShadow: shadows, border: border)); + } +} diff --git a/flokk_src/lib/styled_components/styled_dialogs.dart b/flokk_src/lib/styled_components/styled_dialogs.dart new file mode 100644 index 0000000..8bdab46 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_dialogs.dart @@ -0,0 +1,192 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/globals.dart'; +import 'package:flokk/styled_components/buttons/ok_cancel_btn_row.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class Dialogs { + static Future show(Widget child, [BuildContext context]) async { + return await (context != null ? Navigator.of(context) : AppGlobals.nav).push( + StyledDialogRoute( + pageBuilder: (BuildContext buildContext, Animation animation, Animation secondaryAnimation) { + return SafeArea(child: child); + }, + ), + ); + /*return await showDialog( + context: context ?? MainViewContext.value, + builder: (context) => child, + );*/ + } +} + +class StyledDialog extends StatelessWidget { + final Widget child; + final double maxWidth; + final double maxHeight; + final EdgeInsets padding; + final EdgeInsets margin; + final BorderRadius borderRadius; + final Color bgColor; + final double elevation; + final bool shrinkWrap; + + const StyledDialog({ + Key key, + this.child, + this.maxWidth, + this.maxHeight, + this.padding, + this.margin, + this.bgColor, + this.borderRadius, + this.elevation, + this.shrinkWrap = true, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + BorderRadius radius = borderRadius ?? Corners.s8Border; + AppTheme theme = context.watch(); + + Widget innerContent = Container( + padding: padding ?? EdgeInsets.all(Insets.lGutter), + color: bgColor ?? theme.surface, + //elevation: elevation ?? dialogTheme.elevation ?? 3, + child: child, + ); + + if (shrinkWrap) { + innerContent = IntrinsicWidth(child: IntrinsicHeight(child: innerContent)); + } + + return FocusTraversalGroup( + child: Container( + margin: margin ?? EdgeInsets.all(Insets.lGutter * 2), + alignment: Alignment.center, + child: ConstrainedBox( + constraints: BoxConstraints( + minWidth: 280.0, + maxHeight: maxHeight ?? double.infinity, + maxWidth: maxWidth ?? double.infinity, + ), + child: ClipRRect( + borderRadius: radius, + child: SingleChildScrollView( + physics: StyledScrollPhysics(), + child: Material(type: MaterialType.transparency, child: innerContent), + ), + ), + ), + ), + ); + } +} + +class OkCancelDialog extends StatelessWidget { + final Function() onOkPressed; + final Function() onCancelPressed; + final String okLabel; + final String cancelLabel; + final String title; + final String message; + final double maxWidth; + + const OkCancelDialog( + {Key key, + this.onOkPressed, + this.onCancelPressed, + this.okLabel, + this.cancelLabel, + this.title, + this.message, + this.maxWidth}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return StyledDialog( + maxWidth: maxWidth ?? 500, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (title != null) ...[ + Text(title.toUpperCase(), style: TextStyles.T1.textColor(theme.accent1Darker)), + VSpace(Insets.sm * 1.5), + Container(color: theme.greyWeak.withOpacity(.35), height: 1), + VSpace(Insets.m * 1.5), + ], + Text(message, style: TextStyles.Body1.textHeight(1.5)), + SizedBox(height: Insets.l), + OkCancelBtnRow( + onOkPressed: onOkPressed, + onCancelPressed: onCancelPressed, + okLabel: okLabel?.toUpperCase(), + cancelLabel: cancelLabel?.toUpperCase(), + ) + ], + ), + ); + } +} + +class StyledDialogRoute extends PopupRoute { + StyledDialogRoute({ + @required RoutePageBuilder pageBuilder, + bool barrierDismissible = true, + String barrierLabel, + Color barrierColor = const Color(0x80000000), + Duration transitionDuration = const Duration(milliseconds: 200), + RouteTransitionsBuilder transitionBuilder, + RouteSettings settings, + }) : assert(barrierDismissible != null), + _pageBuilder = pageBuilder, + _barrierDismissible = barrierDismissible, + _barrierLabel = barrierLabel, + _barrierColor = barrierColor, + _transitionDuration = transitionDuration, + _transitionBuilder = transitionBuilder, + super(settings: settings); + + final RoutePageBuilder _pageBuilder; + + @override + bool get barrierDismissible => _barrierDismissible; + final bool _barrierDismissible; + + @override + String get barrierLabel => _barrierLabel; + final String _barrierLabel; + + @override + Color get barrierColor => _barrierColor; + final Color _barrierColor; + + @override + Duration get transitionDuration => _transitionDuration; + final Duration _transitionDuration; + + final RouteTransitionsBuilder _transitionBuilder; + + @override + Widget buildPage(BuildContext context, Animation animation, Animation secondaryAnimation) { + return Semantics( + child: _pageBuilder(context, animation, secondaryAnimation), + scopesRoute: true, + explicitChildNodes: true, + ); + } + + @override + Widget buildTransitions( + BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { + if (_transitionBuilder == null) { + return FadeTransition(opacity: CurvedAnimation(parent: animation, curve: Curves.linear), child: child); + } // Some default transition + return _transitionBuilder(context, animation, secondaryAnimation, child); + } +} diff --git a/flokk_src/lib/styled_components/styled_form_label_input.dart b/flokk_src/lib/styled_components/styled_form_label_input.dart new file mode 100644 index 0000000..2199bb9 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_form_label_input.dart @@ -0,0 +1,174 @@ +import 'dart:math'; + +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/scrolling/styled_horizontal_scroll_view.dart'; +import 'package:flokk/styled_components/styled_group_label.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +class StyledFormLabelInput extends StatefulWidget { + //TODO SB@CE - Is this necessary, can't we just pass null and let the default inside StyledSearchTextInput handle it? + static EdgeInsets kDefaultTextInputPadding = EdgeInsets.only(bottom: Insets.sm, top: 4); + + final String hintText; + final bool autoFocus; + final EdgeInsets contentPadding; + final List labels; + final void Function(String) onAddLabel; + final void Function(String) onRemoveLabel; + final void Function(String) onChanged; + final void Function(String) onFieldSubmitted; + final VoidCallback onEditingCancel; + final void Function(bool) onFocusChanged; + + const StyledFormLabelInput({ + this.hintText, + this.autoFocus, + this.contentPadding, + this.labels, + this.onAddLabel, + this.onRemoveLabel, + this.onChanged, + this.onFieldSubmitted, + this.onEditingCancel, + this.onFocusChanged, + Key key, + }) : super(key: key); + + @override + _StyledFormLabelInputState createState() => _StyledFormLabelInputState(); +} + +class _StyledFormLabelInputState extends State { + final GlobalKey _textKey = GlobalKey(); + FocusNode _textFocusNode; + bool _focused = false; + + @override + void initState() { + RawKeyboard.instance.addListener(_handleRawKeyPressed); + super.initState(); + } + + @override + void dispose() { + RawKeyboard.instance.removeListener(_handleRawKeyPressed); + super.dispose(); + } + + @override + void didUpdateWidget(StyledFormLabelInput oldWidget) { + // Detect when a new label was added from the parent and run the same logic as when we add a label from inside this widget + if (widget.labels.length > oldWidget.labels.length) { + _textKey?.currentState?.text = ""; + // At a later time, make sure this field is focused + Future.microtask(() => _textFocusNode?.requestFocus()); + } + super.didUpdateWidget(oldWidget); + } + + void _handleAddLabel(String label) { + widget.onAddLabel(label); + _textKey?.currentState?.text = ""; + // At a later time, make sure this field is focused + Future.microtask(() => _textFocusNode?.requestFocus()); + } + +//TODO SB@CE - Consider using expression-body for these types of one-liners + void _handleRemoveLabel(String label) { + widget.onRemoveLabel(label); + } + + void _handleFocusCreated(FocusNode focus) { + _textFocusNode = focus; + } + + void _handleFocusChanged(bool value) { + widget.onFocusChanged(value); + setState(() => _focused = value); + } + + void _handleRawKeyPressed(RawKeyEvent evt) { + if (evt is RawKeyDownEvent) { + if (_textFocusNode.hasFocus && evt.logicalKey == LogicalKeyboardKey.backspace) { + if (_textKey != null && _textKey.currentState != null && _textKey.currentState.text.isEmpty) { + final tl = widget.labels; + if (tl.isNotEmpty) { + _handleRemoveLabel(tl.last); + } + } + } + } + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double formWidth = 200; + double inputWidth = formWidth; + //TODO SB@CE - This could be more readable + final labelWidth = (String label) { + return Insets.m + + StringUtils.measure(label.toUpperCase(), TextStyles.Footnote.letterSpace(0)).width + + Insets.sm + + Insets.sm + + 16 + + Insets.sm + + Insets.sm; + }; + //TODO SB@CE - Not a big fan of ommitting type here, reduces scanability + for (final label in widget.labels) { + //TODO SB@CE - This should be called something like measureLabel, or calculateLabelWidth + inputWidth -= labelWidth(label); + } + + return Container( + margin: EdgeInsets.only(bottom: Insets.m), + child: Stack( + children: [ + StyledHorizontalScrollView( + autoScrollDuration: .200.seconds, + autoScrollCurve: Curves.easeIn, + child: Row( + children: [ + for (var label in widget.labels) ...{ + StyledGroupLabel( + text: label, + onClose: () => _handleRemoveLabel(label), + ).padding(right: Insets.sm), + }, + Container( + constraints: BoxConstraints(maxWidth: max(100, inputWidth)), + child: StyledSearchTextInput( + contentPadding: widget.contentPadding ?? StyledFormLabelInput.kDefaultTextInputPadding, + autoFocus: widget.autoFocus, + hintText: "Add label", + maxLines: 1, + key: _textKey, + style: TextStyles.Body1, + onChanged: widget.onChanged, + onFieldSubmitted: _handleAddLabel, + onEditingCancel: widget.onEditingCancel, + onFocusChanged: _handleFocusChanged, + onFocusCreated: _handleFocusCreated, + ), + ), + ], + ), + ), + //TODO SB@CE - This should respect focus color like other form underlines. + Container( + margin: EdgeInsets.only(top: 38), + height: _focused ? 1.8 : 1.2, + color: _focused ? (theme.isDark ? theme.accent2 : theme.accent1Dark) : theme.greyWeak.withOpacity(.35), + ) + ], + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_group_label.dart b/flokk_src/lib/styled_components/styled_group_label.dart new file mode 100644 index 0000000..8796d47 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_group_label.dart @@ -0,0 +1,77 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:provider/provider.dart'; + +class StyledGroupLabel extends StatelessWidget { + final AssetImage icon; + final String text; + final Function(bool) onFocusChanged; + final VoidCallback onClose; + final VoidCallback onPressed; + + StyledGroupLabel({this.icon, this.text, this.onFocusChanged, this.onClose, this.onPressed}) + : assert(icon == null || (icon is AssetImage) || (icon is IconData)); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + final content = Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (icon != null) ...{ + StyledImageIcon( + icon, + size: 12, + color: theme.surface, + ).center().constrained(width: 30, height: 30).decorated( + borderRadius: Corners.s5Border, + color: theme.accent1Darker, + ), + }, + Text(text.toUpperCase(), style: TextStyles.Footnote.letterSpace(0).textColor(theme.grey)) + .padding(left: Insets.m), + if (onClose != null) ...{ + ColorShiftIconBtn( + StyledIcons.closeLarge, + minWidth: 0, + minHeight: 0, + // 8 padding on either side + 8 icon size = design dimensions, minWidth doesn't seem to work for this so I'm using padding instead + padding: EdgeInsets.all(8), + size: 8, + color: theme.grey, + bgColor: ColorUtils.blend(theme.surface, theme.bg2, .35), + onFocusChanged: onFocusChanged, + onPressed: onClose, + ), + } else ... { + HSpace(Insets.m), + }, + ], + ); + return onPressed != null + ? BaseStyledBtn( + minWidth: 1, + minHeight: 1, + bgColor: ColorUtils.blend(theme.surface, theme.bg2, .35), + onPressed: onPressed, + onFocusChanged: onFocusChanged, + borderRadius: Corners.s5, + contentPadding: EdgeInsets.all(Insets.sm), + child: content, + ) + : Container( + height: 30, + decoration: BoxDecoration(borderRadius: Corners.s5Border, color: theme.bg2.withOpacity(.35)), + child: content, + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_icons.dart b/flokk_src/lib/styled_components/styled_icons.dart new file mode 100644 index 0000000..94e67d9 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_icons.dart @@ -0,0 +1,91 @@ +import 'package:flutter/material.dart'; + +class StyledIcons { + static AssetImage get add => AssetImage("assets/icons/icon-add.png"); + + static AssetImage get address => AssetImage("assets/icons/icon-address.png"); + + static AssetImage get birthday => AssetImage("assets/icons/icon-birthday.png"); + + static AssetImage get calendar => AssetImage("assets/icons/icon-calendar.png"); + + static AssetImage get checkboxPartial => AssetImage("assets/icons/icon-checkbox-partial.png"); + + static AssetImage get checkboxSelected => AssetImage("assets/icons/icon-checkbox-selected.png"); + + static AssetImage get closeLarge => AssetImage("assets/icons/icon-close-large.png"); + + static AssetImage get copy => AssetImage("assets/icons/icon-copy.png"); + + static AssetImage get darkMode => AssetImage("assets/icons/icon-darkmode.png"); + + static AssetImage get dashboard => AssetImage("assets/icons/icon-dashboard.png"); + + static AssetImage get dropdownClose => AssetImage("assets/icons/icon-dropdown-close.png"); + + static AssetImage get dropdownOpen => AssetImage("assets/icons/icon-dropdown-open.png"); + + static AssetImage get edit => AssetImage("assets/icons/icon-edit.png"); + + static AssetImage get formAdd => AssetImage("assets/icons/icon-form-add.png"); + + static AssetImage get formAddLabel => AssetImage("assets/icons/icon-form-add-label.png"); + + static AssetImage get formDelete => AssetImage("assets/icons/icon-form-delete.png"); + + static AssetImage get githubActive => AssetImage("assets/icons/icon-github-active.png"); + + static AssetImage get githubEmpty => AssetImage("assets/icons/icon-github-empty.png"); + + static AssetImage get label => AssetImage("assets/icons/icon-label.png"); + + static AssetImage get lightMode => AssetImage("assets/icons/icon-lightmode.png"); + + static AssetImage get link => AssetImage("assets/icons/icon-link.png"); + + static AssetImage get linkout => AssetImage("assets/icons/icon-linkout.png"); + + static AssetImage get mail => AssetImage("assets/icons/icon-mail.png"); + + static AssetImage get next => AssetImage("assets/icons/icon-next.png"); + + static AssetImage get note => AssetImage("assets/icons/icon-note.png"); + + static AssetImage get phone => AssetImage("assets/icons/icon-phone.png"); + + static AssetImage get previous => AssetImage("assets/icons/icon-previous.png"); + + static AssetImage get refresh => AssetImage("assets/icons/icon-refresh.png"); + + static AssetImage get relationship => AssetImage("assets/icons/icon-relationship.png"); + + static AssetImage get save => AssetImage("assets/icons/icon-save.png"); + + static AssetImage get search => AssetImage("assets/icons/icon-search.png"); + + static AssetImage get setting => AssetImage("assets/icons/icon-setting.png"); + + static AssetImage get signOut => AssetImage("assets/icons/icon-signout.png"); + + static AssetImage get socialFork => AssetImage("assets/icons/icon-social-fork.png"); + + static AssetImage get socialLike => AssetImage("assets/icons/icon-social-like.png"); + + static AssetImage get socialRetweet => AssetImage("assets/icons/icon-social-retweet.png"); + + static AssetImage get socialStar => AssetImage("assets/icons/icon-social-star.png"); + + static AssetImage get starEmpty => AssetImage("assets/icons/icon-star-empty.png"); + + static AssetImage get starFilled => AssetImage("assets/icons/icon-star-filled.png"); + + static AssetImage get trash => AssetImage("assets/icons/icon-trash.png"); + + static AssetImage get twitterActive => AssetImage("assets/icons/icon-twitter-active.png"); + + static AssetImage get twitterEmpty => AssetImage("assets/icons/icon-twitter-empty.png"); + + static AssetImage get user => AssetImage("assets/icons/icon-user.png"); + + static AssetImage get work => AssetImage("assets/icons/icon-work.png"); +} diff --git a/flokk_src/lib/styled_components/styled_image_icon.dart b/flokk_src/lib/styled_components/styled_image_icon.dart new file mode 100644 index 0000000..a3d336d --- /dev/null +++ b/flokk_src/lib/styled_components/styled_image_icon.dart @@ -0,0 +1,21 @@ +import 'package:flokk/styles.dart'; +import 'package:flutter/material.dart'; + +//TODO SB: +// * Wherever possible allow it to fallback to the default size. +// * If you find yourself adding similar hardcoded values, feel free to add Sizes.iconSm or Sizes.iconLg +// The idea is to remove as many hard-coded icon sizes as possible from the app and localize them. +// If a size is truly one-off, that's fine to stay hardcoded. + +class StyledImageIcon extends StatelessWidget { + final AssetImage image; + final Color color; + final double size; + + const StyledImageIcon(this.image, {Key key, this.color, this.size}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ImageIcon(image, size: size ?? Sizes.iconMed, color: color ?? Colors.white); + } +} diff --git a/flokk_src/lib/styled_components/styled_label_pill.dart b/flokk_src/lib/styled_components/styled_label_pill.dart new file mode 100644 index 0000000..05e01d3 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_label_pill.dart @@ -0,0 +1,66 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +import 'buttons/base_styled_button.dart'; + +class StyledLabelPill extends StatelessWidget { + final String text; + final TextStyle textStyle; + final Color color; + final double borderRadius; + final VoidCallback onPressed; + + const StyledLabelPill(this.text, {Key key, this.textStyle, this.color, this.borderRadius, this.onPressed}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + String t = (text.length > 30) ? text.substring(0, 30) : text; + return BaseStyledBtn( + contentPadding: EdgeInsets.symmetric(horizontal: Insets.m, vertical: Insets.sm), + onPressed: onPressed, + bgColor: color ?? ColorUtils.blend(theme.surface, theme.bg2, .35), + hoverColor: color ?? ColorUtils.blend(theme.surface, theme.bg2, .35), + borderRadius: borderRadius, + child: IntrinsicWidth( + child: Container( + alignment: Alignment.center, + child: OneLineText(t ?? "", style: textStyle ?? TextStyles.Btn), + ), + ), + ); + } +} + +class ContactLabelPill extends StatelessWidget { + final String text; + final Color color; + final VoidCallback onPressed; + + const ContactLabelPill(this.text, {Key key, this.color, this.onPressed}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + String t = (text.length > 30) ? text.substring(0, 30) : text; + return IntrinsicWidth( + child: GestureDetector( + onTap: onPressed, + child: Container( + alignment: Alignment.center, + padding: EdgeInsets.symmetric(horizontal: Insets.m, vertical: Insets.sm), + decoration: BoxDecoration( + color: color ?? theme.bg2.withOpacity(.35), + borderRadius: Corners.s5Border, + ), + child: OneLineText(t ?? "", style: TextStyles.Footnote), + ), + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_progress_spinner.dart b/flokk_src/lib/styled_components/styled_progress_spinner.dart new file mode 100644 index 0000000..272933d --- /dev/null +++ b/flokk_src/lib/styled_components/styled_progress_spinner.dart @@ -0,0 +1,22 @@ +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class StyledProgressSpinner extends StatelessWidget { + final Color color; + + const StyledProgressSpinner({Key key, this.color}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Center( + child: SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation(theme.accent1Darker), backgroundColor: color ?? Colors.white), + ), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_tab_bar.dart b/flokk_src/lib/styled_components/styled_tab_bar.dart new file mode 100644 index 0000000..4bf98a2 --- /dev/null +++ b/flokk_src/lib/styled_components/styled_tab_bar.dart @@ -0,0 +1,69 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class StyledTabBar extends StatelessWidget { + final Function(int) onTabPressed; + final double width; + final List sections; + final int index; + static const List defaults = ["test", "foo", "bar"]; + + const StyledTabBar({Key key, this.width, this.sections = defaults, this.index, this.onTabPressed}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + + /// Create List of expanding sections's to fill the tab bar + List clickableLabels = sections.map((e) => _ClickableLabel(e, theme)).toList(); + + /// Calculate target alignment for animated bar + double targetAlignX = -1 + (index * 1 / (sections.length - 1)) * 2; + return RepaintBoundary( + child: Stack( + children: [ + /// Outline + _RoundedBox(border: theme.greyWeak), + + /// Animated bar + _RoundedBox(fill: theme.accent1) + .fractionallySizedBox(widthFactor: 1 / sections.length) + .alignment(Alignment(targetAlignX, 0), animate: true) + .animate(Durations.fast, Curves.easeOut), + + /// Clickable Text labels + Row(children: clickableLabels) + ], + ).height(30), + ); + } + + Widget _RoundedBox({double width, Color border, Color fill}) { + return Container( + width: width ?? null, + decoration: BoxDecoration( + color: fill, + borderRadius: Corners.s5Border, + border: Border.all(color: border?.withOpacity(.35) ?? Colors.transparent)), + ); + } + + Widget _ClickableLabel(String e, AppTheme theme, [double fontScale = 1]) { + bool isSelected = sections.indexOf(e) == index; + Color selected = theme.isDark? theme.bg1 : theme.surface; + Color notSelected = theme.isDark? theme.greyStrong : theme.grey; + + return AnimatedDefaultTextStyle( + duration: Durations.fast, + style: TextStyles.Footnote.textColor(isSelected ? selected : notSelected).scale(fontScale), + child: OneLineText(e.toUpperCase()) + .center() + .clickable(()=>onTabPressed?.call(sections.indexOf(e)), opaque: true) + .expanded(), + ); + } +} diff --git a/flokk_src/lib/styled_components/styled_text_input.dart b/flokk_src/lib/styled_components/styled_text_input.dart new file mode 100644 index 0000000..a57b99b --- /dev/null +++ b/flokk_src/lib/styled_components/styled_text_input.dart @@ -0,0 +1,334 @@ +import 'dart:async'; +import 'dart:math' as math; + +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +class StyledFormTextInput extends StatelessWidget { + static EdgeInsets kDefaultTextInputPadding = EdgeInsets.only(bottom: Insets.sm, top: 4); + + final String label; + final bool autoFocus; + final String initialValue; + final String hintText; + final EdgeInsets contentPadding; + final TextStyle textStyle; + final int maxLines; + final TextEditingController controller; + final TextCapitalization capitalization; + final Function(String) onChanged; + final Function() onEditingComplete; + final Function(bool) onFocusChanged; + final Function(FocusNode) onFocusCreated; + + const StyledFormTextInput( + {Key key, + this.label, + this.autoFocus, + this.initialValue, + this.onChanged, + this.onEditingComplete, + this.hintText, + this.onFocusChanged, + this.onFocusCreated, + this.controller, + this.contentPadding, + this.capitalization, + this.textStyle, + this.maxLines}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return StyledSearchTextInput( + capitalization: capitalization, + label: label, + autoFocus: autoFocus, + initialValue: initialValue, + onChanged: onChanged, + onFocusCreated: onFocusCreated, + style: textStyle ?? TextStyles.Body1, + onEditingComplete: onEditingComplete, + onFocusChanged: onFocusChanged, + controller: controller, + maxLines: maxLines, + inputDecoration: InputDecoration( + isDense: true, + contentPadding: contentPadding ?? kDefaultTextInputPadding, + border: ThinUnderlineBorder(borderSide: BorderSide(width: 5, color: Colors.red)), + //focusedBorder: UnderlineInputBorder(borderSide: BorderSide(width: .5, color: Colors.red)), + hintText: hintText, + ), + ); + } +} + +class StyledSearchTextInput extends StatefulWidget { + final String label; + final TextStyle style; + final EdgeInsets contentPadding; + final bool autoFocus; + final bool obscureText; + final IconData icon; + final String initialValue; + final int maxLines; + final TextEditingController controller; + final TextCapitalization capitalization; + final TextInputType type; + final bool enabled; + final bool autoValidate; + final bool enableSuggestions; + final bool autoCorrect; + final String errorText; + final String hintText; + final Widget prefixIcon; + final Widget suffixIcon; + final InputDecoration inputDecoration; + + final Function(String) onChanged; + final Function() onEditingComplete; + final Function() onEditingCancel; + final Function(bool) onFocusChanged; + final Function(FocusNode) onFocusCreated; + final Function(String) onFieldSubmitted; + final Function(String) onSaved; + final VoidCallback onTap; + + const StyledSearchTextInput({ + Key key, + this.label, + this.autoFocus = false, + this.obscureText = false, + this.type = TextInputType.text, + this.icon, + this.initialValue = "", + this.controller, + this.enabled, + this.autoValidate = false, + this.enableSuggestions = true, + this.autoCorrect = true, + this.errorText, + this.style, + this.contentPadding, + this.prefixIcon, + this.suffixIcon, + this.inputDecoration, + this.onChanged, + this.onEditingComplete, + this.onEditingCancel, + this.onFocusChanged, + this.onFocusCreated, + this.onFieldSubmitted, + this.onSaved, + this.onTap, + this.hintText, + this.capitalization, + this.maxLines, + }) : super(key: key); + + @override + StyledSearchTextInputState createState() => StyledSearchTextInputState(); +} + +class StyledSearchTextInputState extends State { + TextEditingController _controller; + FocusNode _focusNode; + + @override + void initState() { + _controller = widget.controller ?? TextEditingController(text: widget.initialValue); + _focusNode = FocusNode( + debugLabel: widget.label ?? "", + onKey: (FocusNode node, RawKeyEvent evt) { + if (evt is RawKeyDownEvent) { + if (evt.logicalKey == LogicalKeyboardKey.escape) { + widget.onEditingCancel?.call(); + return true; + } + } + return false; + }, + canRequestFocus: true, + ); + // Listen for focus out events + _focusNode.addListener(() => widget.onFocusChanged?.call(_focusNode.hasFocus)); + widget.onFocusCreated?.call(_focusNode); + if(widget.autoFocus ?? false){ + scheduleMicrotask(()=>_focusNode.requestFocus()); + } + super.initState(); + } + + @override + void dispose() { + _controller.dispose(); + _focusNode.dispose(); + super.dispose(); + } + + void clear() => _controller.clear(); + + String get text => _controller.text; + + set text(String value) => _controller.text = value; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Container( + padding: EdgeInsets.symmetric(vertical: Insets.sm), + child: TextFormField( + onChanged: widget.onChanged, + onEditingComplete: widget.onEditingComplete, + onFieldSubmitted: widget.onFieldSubmitted, + onSaved: widget.onSaved, + onTap: widget.onTap, + autofocus: widget.autoFocus ?? false, + focusNode: _focusNode, + keyboardType: widget.type, + obscureText: widget.obscureText, + autocorrect: widget.autoCorrect, + autovalidate: widget.autoValidate, + enableSuggestions: widget.enableSuggestions, + style: widget.style ?? TextStyles.Body1, + cursorColor: theme.accent1, + controller: _controller, + showCursor: true, + enabled: widget.enabled, + maxLines: widget.maxLines, + textCapitalization: widget.capitalization ?? TextCapitalization.none, + decoration: widget.inputDecoration ?? + InputDecoration( + prefixIcon: widget.prefixIcon ?? null, + suffixIcon: widget.suffixIcon ?? null, + contentPadding: widget.contentPadding ?? EdgeInsets.all(Insets.m), + border: OutlineInputBorder(borderSide: BorderSide.none), + isDense: true, + icon: widget.icon == null ? null : Icon(widget.icon), + errorText: widget.errorText, + errorMaxLines: 2, + hintText: widget.hintText, + hintStyle: TextStyles.Body1.textColor(theme.grey), + labelText: widget.label), + ), + ); + } +} + +class ThinUnderlineBorder extends InputBorder { + /// Creates an underline border for an [InputDecorator]. + /// + /// The [borderSide] parameter defaults to [BorderSide.none] (it must not be + /// null). Applications typically do not specify a [borderSide] parameter + /// because the input decorator substitutes its own, using [copyWith], based + /// on the current theme and [InputDecorator.isFocused]. + /// + /// The [borderRadius] parameter defaults to a value where the top left + /// and right corners have a circular radius of 4.0. The [borderRadius] + /// parameter must not be null. + const ThinUnderlineBorder({ + BorderSide borderSide = const BorderSide(), + this.borderRadius = const BorderRadius.only( + topLeft: Radius.circular(4.0), + topRight: Radius.circular(4.0), + ), + }) : assert(borderRadius != null), + super(borderSide: borderSide); + + /// The radii of the border's rounded rectangle corners. + /// + /// When this border is used with a filled input decorator, see + /// [InputDecoration.filled], the border radius defines the shape + /// of the background fill as well as the bottom left and right + /// edges of the underline itself. + /// + /// By default the top right and top left corners have a circular radius + /// of 4.0. + final BorderRadius borderRadius; + + @override + bool get isOutline => false; + + @override + UnderlineInputBorder copyWith({BorderSide borderSide, BorderRadius borderRadius}) { + return UnderlineInputBorder( + borderSide: borderSide ?? this.borderSide, + borderRadius: borderRadius ?? this.borderRadius, + ); + } + + @override + EdgeInsetsGeometry get dimensions { + return EdgeInsets.only(bottom: borderSide.width); + } + + @override + UnderlineInputBorder scale(double t) { + return UnderlineInputBorder(borderSide: borderSide.scale(t)); + } + + @override + Path getInnerPath(Rect rect, {TextDirection textDirection}) { + return Path() + ..addRect(Rect.fromLTWH(rect.left, rect.top, rect.width, math.max(0.0, rect.height - borderSide.width))); + } + + @override + Path getOuterPath(Rect rect, {TextDirection textDirection}) { + return Path()..addRRect(borderRadius.resolve(textDirection).toRRect(rect)); + } + + @override + ShapeBorder lerpFrom(ShapeBorder a, double t) { + if (a is UnderlineInputBorder) { + return UnderlineInputBorder( + borderSide: BorderSide.lerp(a.borderSide, borderSide, t), + borderRadius: BorderRadius.lerp(a.borderRadius, borderRadius, t), + ); + } + return super.lerpFrom(a, t); + } + + @override + ShapeBorder lerpTo(ShapeBorder b, double t) { + if (b is UnderlineInputBorder) { + return UnderlineInputBorder( + borderSide: BorderSide.lerp(borderSide, b.borderSide, t), + borderRadius: BorderRadius.lerp(borderRadius, b.borderRadius, t), + ); + } + return super.lerpTo(b, t); + } + + /// Draw a horizontal line at the bottom of [rect]. + /// + /// The [borderSide] defines the line's color and weight. The `textDirection` + /// `gap` and `textDirection` parameters are ignored. + @override + void paint( + Canvas canvas, + Rect rect, { + double gapStart, + double gapExtent = 0.0, + double gapPercentage = 0.0, + TextDirection textDirection, + }) { + print("Width: ${borderSide.width}"); + if (borderRadius.bottomLeft != Radius.zero || borderRadius.bottomRight != Radius.zero) + canvas.clipPath(getOuterPath(rect, textDirection: textDirection)); + canvas.drawLine(rect.bottomLeft, rect.bottomRight, borderSide.toPaint()); + } + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + if (other.runtimeType != runtimeType) return false; + return other is InputBorder && other.borderSide == borderSide; + } + + @override + int get hashCode => borderSide.hashCode; +} diff --git a/flokk_src/lib/styled_components/styled_user_avatar.dart b/flokk_src/lib/styled_components/styled_user_avatar.dart new file mode 100644 index 0000000..59c068e --- /dev/null +++ b/flokk_src/lib/styled_components/styled_user_avatar.dart @@ -0,0 +1,109 @@ +import 'dart:math'; + +import 'package:flokk/data/contact_data.dart'; +import 'package:flutter/material.dart'; + +class StyledUserAvatar extends StatefulWidget { + final ContactData contact; + final double size; + + const StyledUserAvatar({Key key, this.contact, this.size}) : super(key: key); + + @override + _StyledUserAvatarState createState() => _StyledUserAvatarState(); +} + +class _StyledUserAvatarState extends State { + int _seed; + + @override + void initState() { + _seed = widget.contact?.id?.hashCode ?? 0; + super.initState(); + } + + @override + void didUpdateWidget(StyledUserAvatar oldWidget) { + if (oldWidget.contact.profilePicBytes != widget.contact.profilePicBytes) { + setState(() {}); + } + super.didUpdateWidget(oldWidget); + } + + @override + Widget build(BuildContext context) { + + Widget child; + if (widget.contact.profilePicBytes != null) { + child = Image.memory(widget.contact.profilePicBytes, fit: BoxFit.cover); + } else if (widget.contact.profilePic != null && !widget.contact.isDefaultPic) { + child = Image.network(widget.contact.profilePic, fit: BoxFit.cover); + } else { + child = AnimalAvatar(seed: _seed); + } + + return ClipRRect( + borderRadius: BorderRadius.circular(99), + child: Container( + width: widget.size ?? 50, + height: widget.size ?? 50, + child: child, + ), + ); + } +} + +class AnimalAvatar extends StatelessWidget { + final int seed; + + final List backgrounds = [ + Color(0xFF44D3B8), + Color(0xFFACC66B), + Color(0xFF915599), + Color(0xFF85CADB), + Color(0xFF37598C), + Color(0xFF5A5587), + Color(0xFFD4B99F), + Color(0xFFEDABA9), + Color(0xFFE09BD6), + Color(0xFFF4A647), + ]; + + final List foregrounds = [ + "bird-hummingbird", + "bird-parrot", + "bird-pelican", + "bird-swan", + "bird-woodpecker", + "bird-flamingo", + "bird-owl", + "bird-peacock", + "bird-penguin", + "bird-toucan" + ]; + + AnimalAvatar({Key key, this.seed}) : super(key: key); + + @override + Widget build(BuildContext context) { + Random r = Random(seed); + return Stack( + children: [ + Container( + color: backgrounds[r.nextInt(backgrounds.length)], + ), + Image.asset("assets/images/birds/${foregrounds[r.nextInt(foregrounds.length)]}.png"), + ], + ); + } +} + +//Widget _buildAvatar(double size) { +// Widget content = (widget.contact.profilePic == null +// ? Container() +// : ClipRRect( +// borderRadius: BorderRadius.circular(999), +// child: Image.network(widget.contact.profilePic, fit: BoxFit.cover), +// )); +// return content.constrained(width: size, height: size); +//} diff --git a/flokk_src/lib/styled_components/textinput_icon_row.dart b/flokk_src/lib/styled_components/textinput_icon_row.dart new file mode 100644 index 0000000..39a2e58 --- /dev/null +++ b/flokk_src/lib/styled_components/textinput_icon_row.dart @@ -0,0 +1,37 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flutter/material.dart'; + +class TextInputIconRow extends StatelessWidget { + final IconData icon; + final bool autoFocus; + final String initialValue; + final String hintText; + final Function(String) onChanged; + final Function() onEditingComplete; + final Function(bool) onFocusChanged; + + const TextInputIconRow(this.icon, this.hintText, + {Key key, this.autoFocus, this.initialValue, this.onChanged, this.onEditingComplete, this.onFocusChanged}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Row( + children: [ + Icon(icon, size: 24, color: Colors.grey), + HSpace(Insets.l), + StyledFormTextInput( + autoFocus: autoFocus, + initialValue: initialValue, + onChanged: onChanged, + onFocusChanged: onFocusChanged, + onEditingComplete: onEditingComplete, + hintText: hintText, + ).flexible() + ], + ); + } +} diff --git a/flokk_src/lib/styles.dart b/flokk_src/lib/styles.dart new file mode 100644 index 0000000..b3ad578 --- /dev/null +++ b/flokk_src/lib/styles.dart @@ -0,0 +1,189 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:textstyle_extensions/textstyle_extensions.dart'; + +export 'package:textstyle_extensions/textstyle_extensions.dart'; + +class Durations { + static Duration get fastest => .15.seconds; + + static Duration get fast => .25.seconds; + + static Duration get medium => .35.seconds; + + static Duration get slow => .7.seconds; +} + +class Fonts { + static const String lato = "Lato"; + + static const String quicksand = "Quicksand"; + + static const String emoji = "OpenSansEmoji"; +} + +class PageBreaks { + static double get LargePhone => 550; + + static double get TabletPortrait => 768; + + static double get TabletLandscape => 1024; + + static double get Desktop => 1440; +} + +class Insets { + static double gutterScale = 1; + + static double scale = 1; + + /// Dynamic insets, may get scaled with the device size + static double get mGutter => m * gutterScale; + + static double get lGutter => l * gutterScale; + + static double get xs => 2 * scale; + + static double get sm => 6 * scale; + + static double get m => 12 * scale; + + static double get l => 24 * scale; + + static double get xl => 36 * scale; +} + +class FontSizes { + static double get scale => 1; + + static double get s11 => 11 * scale; + + static double get s12 => 12 * scale; + + static double get s14 => 14 * scale; + + static double get s16 => 16 * scale; + + static double get s18 => 18 * scale; +} + +class Sizes { + static double hitScale = 1; + + static double get hit => 40 * hitScale; + + static double get iconMed => 20; + + static double get sideBarSm => 150 * hitScale; + + static double get sideBarMed => 200 * hitScale; + + static double get sideBarLg => 290 * hitScale; +} + +class TextStyles { + static const TextStyle lato = TextStyle( + fontFamily: Fonts.lato, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1, + fontFamilyFallback: [ + Fonts.emoji, + ], + ); + + static const TextStyle quicksand = TextStyle( + fontFamily: Fonts.quicksand, + fontWeight: FontWeight.w400, + fontFamilyFallback: [ + Fonts.emoji, + ], + ); + + static TextStyle get T1 => quicksand.bold.size(FontSizes.s14).letterSpace(.7); + + static TextStyle get T2 => lato.bold.size(FontSizes.s12).letterSpace(.4); + + static TextStyle get H1 => lato.bold.size(FontSizes.s14); + + static TextStyle get H2 => lato.bold.size(FontSizes.s12); + + static TextStyle get Body1 => lato.size(FontSizes.s14); + + static TextStyle get Body2 => lato.size(FontSizes.s12); + + static TextStyle get Body3 => lato.size(FontSizes.s11); + + static TextStyle get Callout => quicksand.size(FontSizes.s14).letterSpace(1.75); + + static TextStyle get CalloutFocus => Callout.bold; + + static TextStyle get Btn => quicksand.bold.size(FontSizes.s14).letterSpace(1.75); + + static TextStyle get BtnSelected => quicksand.size(FontSizes.s14).letterSpace(1.75); + + static TextStyle get Footnote => quicksand.bold.size(FontSizes.s11); + + static TextStyle get Caption => lato.size(FontSizes.s11).letterSpace(.3); +} + +class Shadows { + static bool enabled = true; + + static double get mRadius => 8; + + static List m(Color color, [ double opacity = 0]) { + return enabled + ? [ + BoxShadow( + color: color.withOpacity(opacity ?? .03), + blurRadius: mRadius, + spreadRadius: mRadius / 2, + offset: Offset(1, 0), + ), + BoxShadow( + color: color.withOpacity(opacity ?? .04), + blurRadius: mRadius / 2, + spreadRadius: mRadius / 4, + offset: Offset(1, 0), + ) + ] + : null; + } +} + +class Corners { + static double get btn => s5; + + static double get dialog => 12; + + /// Xs + static double get s3 => 3; + + static BorderRadius get s3Border => BorderRadius.all(s3Radius); + + static Radius get s3Radius => Radius.circular(s3); + + /// Small + static double get s5 => 5; + + static BorderRadius get s5Border => BorderRadius.all(s5Radius); + + static Radius get s5Radius => Radius.circular(s5); + + /// Medium + static double get s8 => 8; + + static BorderRadius get s8Border => BorderRadius.all(s8Radius); + + static Radius get s8Radius => Radius.circular(s8); + + /// Large + static double get s10 => 10; + + static BorderRadius get s10Border => BorderRadius.all(s10Radius); + + static Radius get s10Radius => Radius.circular(s10); +} + diff --git a/flokk_src/lib/tests/button_tests.dart b/flokk_src/lib/tests/button_tests.dart new file mode 100644 index 0000000..a773017 --- /dev/null +++ b/flokk_src/lib/tests/button_tests.dart @@ -0,0 +1,67 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/buttons/primary_btn.dart'; +import 'package:flokk/styled_components/buttons/secondary_btn.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ButtonTests extends StatelessWidget { + @override + Widget build(BuildContext context) { + void p() => print("CLick1"); + AppTheme theme = context.watch(); + return Scaffold( + backgroundColor: Colors.white, + body: Center( + child: SeparatedRow( + mainAxisAlignment: MainAxisAlignment.center, + separatorBuilder: () => HSpace(Insets.l), + children: [ + SeparatedColumn( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + separatorBuilder: () => VSpace(Insets.m), + children: [ + ColorShiftIconBtn(StyledIcons.add, color: theme.accent1, onPressed: p), + ]), + SeparatedColumn( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + separatorBuilder: () => VSpace(Insets.m), + children: [ + SecondaryIconBtn(StyledIcons.add, onPressed: p), + SecondaryBtn(child: FlutterLogo(), onPressed: p), + SecondaryTextBtn("STAY ON THIS PAGE", onPressed: p), + TransparentBtn( + child: Text("CLICK ME!", style: TextStyles.Footnote.textColor(theme.accent1)), onPressed: p), + TransparentBtn( + bigMode: true, + child: Text( + "CLICK ME!", + style: TextStyles.Caption.textColor(theme.accent1), + ), + onPressed: p), + ], + ), + SeparatedColumn( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + separatorBuilder: () => VSpace(Insets.m), + children: [ + PrimaryTextBtn("SAVE", onPressed: p), + PrimaryTextBtn("SAVE", bigMode: true, onPressed: p), + PrimaryBtn(onPressed: p, child: Text("SAVE FOR WEB", style: TextStyles.Footnote)), + PrimaryBtn(onPressed: p, child: Text("SAVE FOR WEB", style: TextStyles.Footnote), bigMode: true), + ], + ) + ], + ), + ), + ); + } +} diff --git a/flokk_src/lib/tests/command_testing_spike.dart b/flokk_src/lib/tests/command_testing_spike.dart new file mode 100644 index 0000000..95450bb --- /dev/null +++ b/flokk_src/lib/tests/command_testing_spike.dart @@ -0,0 +1,118 @@ +import 'dart:math'; + +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/commands/groups/add_label_to_contact_command.dart'; +import 'package:flokk/commands/groups/create_label_command.dart'; +import 'package:flokk/commands/groups/delete_label_command.dart'; +import 'package:flokk/commands/groups/refresh_contact_groups_command.dart'; +import 'package:flokk/commands/groups/remove_label_from_contact_command.dart'; +import 'package:flokk/commands/groups/rename_label_command.dart'; +import 'package:flokk/commands/groups/update_contact_labels_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class CommandTestingSpike extends StatelessWidget { + @override + Widget build(BuildContext context) { + final contactModel = Provider.of(context, listen: false); + ContactData contact = contactModel.allContacts.first; + GroupData group; + + return Container( + child: Column( + children: [ + Text("Test contact to apply labels to: ${contact.nameFull}"), + RaisedButton( + child: Text("refresh groups"), + onPressed: () async { + List groups = await RefreshContactGroupsCommand(context).execute(); + print(groups.map((x) => x.name).toList().join(",")); + }, + ), + RaisedButton( + child: Text("refresh contacts"), + onPressed: () async { + await RefreshContactsCommand(context).execute(); + }, + ), + RaisedButton( + child: Text("create label"), + onPressed: () async { + group = await CreateLabelCommand(context).execute("MyNewLabel"); + print(group); + }, + ), + RaisedButton( + child: Text("edit label"), + onPressed: () async { + group.name = "Renamed Label"; + group = await RenameLabelCommand(context).execute(group); + print(group); + }, + ), + RaisedButton( + child: Text("add multiple labels to single contact"), + onPressed: () async { + List userLabels = + contactModel.allGroups.where((x) => x.groupType == GroupType.UserContactGroup)?.toList() ?? []; + int length = min(userLabels.length, 3); + List firstThreeLabels = userLabels.sublist(0, length); + contact.groupList = firstThreeLabels; + firstThreeLabels.forEach((element) { + print("LABEL: ${element.name}"); + }); + UpdateContactLabelsCommand(context).execute(contact); + }, + ), + RaisedButton( + child: Text("add single label to multiple contacts"), + onPressed: () async { + GroupData firstLabel = + contactModel.allGroups?.where((x) => x.groupType == GroupType.UserContactGroup)?.first ?? null; + if (firstLabel != null) { + List faves = contactModel.allContacts.where((x) => x.isStarred == true)?.toList(); + int length = min(faves.length, 3); + List firstThreeContacts = faves.sublist(0, length); + AddLabelToContactCommand(context).execute(firstThreeContacts, existingGroup: firstLabel); + print("Add ${firstLabel.name} to ${firstThreeContacts.map((x) => x.nameFull).toList().join(', ')}"); + } + }, + ), + RaisedButton( + child: Text("add new label to contact"), + onPressed: () async { + List updatedContact = + await AddLabelToContactCommand(context).execute([contact], newLabel: "Foo"); + print(updatedContact.first); + }, + ), + RaisedButton( + child: Text("add existing label to contact"), + onPressed: () async { + List updatedContact = + await AddLabelToContactCommand(context).execute([contact], existingGroup: group); + print(updatedContact.first); + }, + ), + RaisedButton( + child: Text("remove label from contact"), + onPressed: () async { + ContactData updatedContact = await RemoveLabelFromContactCommand(context).execute(contact, group); + print(updatedContact); + }, + ), + RaisedButton( + child: Text("delete label"), + onPressed: () async { + bool success = await DeleteLabelCommand(context).execute(group); + print(success); + }, + ), + ], + ), + ); + } +} diff --git a/flokk_src/lib/tests/native_smoke_test.dart b/flokk_src/lib/tests/native_smoke_test.dart new file mode 100644 index 0000000..674b884 --- /dev/null +++ b/flokk_src/lib/tests/native_smoke_test.dart @@ -0,0 +1,76 @@ +import 'package:flokk/_internal/url_launcher/url_launcher.dart'; +import 'package:flokk/_internal/utils/path.dart'; +import 'package:flokk/_internal/utils/picker.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:window_size/window_size.dart'; + +class NativeSmokeTest extends StatefulWidget { + @override + _NativeSmokeTestState createState() => _NativeSmokeTestState(); +} + +class _NativeSmokeTestState extends State { + String _dataPath; + String _imagePath; + + @override + void initState() { + _fetchAsyncContent(); + super.initState(); + } + + void _fetchAsyncContent() async { + final dataPath = await PathUtil.dataPath; + + setState(() => _dataPath = dataPath); + } + + void _handlePickImage() async { + final imagePath = await pickImage(confirmText: "Choose Image"); + + setState(() => _imagePath = imagePath); + } + + void _handleSetWindowRect() async { + setWindowFrame(Rect.fromLTWH(8, 8, 256, 256)); + } + + void _handleSetWindowMinSize() async { + setWindowMinSize(Size(512, 512)); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Center( + child: Column( + children: [ + Text("Data path: $_dataPath"), + MaterialButton( + onPressed: () => UrlLauncher.open("https://google.com"), + child: Text("Open url"), + ), + MaterialButton( + onPressed: () => Clipboard.setData(ClipboardData()), + child: Text("Copy \"clipboard test\" to clipboard"), + ), + MaterialButton( + onPressed: _handlePickImage, + child: Text("Open file picker"), + ), + Text("Image path: $_imagePath"), + MaterialButton( + onPressed: _handleSetWindowRect, + child: Text("Set window dimensions"), + ), + MaterialButton( + onPressed: _handleSetWindowMinSize, + child: Text("Set window min size"), + ), + ], + ), + ), + ); + } +} diff --git a/flokk_src/lib/themes.dart b/flokk_src/lib/themes.dart new file mode 100644 index 0000000..8f99938 --- /dev/null +++ b/flokk_src/lib/themes.dart @@ -0,0 +1,126 @@ +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +enum ThemeType { + FlockGreen, + FlockGreen_Dark, +} + +class AppTheme { + static ThemeType defaultTheme = ThemeType.FlockGreen; + + bool isDark; + Color bg1; // + Color surface; // + Color bg2; + Color accent1; + Color accent1Dark; + Color accent1Darker; + Color accent2; + Color accent3; + Color grey; + Color greyStrong; + Color greyWeak; + Color error; + Color focus; + + Color txt; + Color accentTxt; + + /// Default constructor + AppTheme({@required this.isDark}) { + txt = isDark ? Colors.white : Colors.black; + accentTxt = accentTxt ?? isDark ? Colors.black : Colors.white; + } + + /// fromType factory constructor + factory AppTheme.fromType(ThemeType t) { + Color c(String value) => ColorUtils.parseHex(value); + switch (t) { + case ThemeType.FlockGreen: + return AppTheme(isDark: false) + ..bg1 = Color(0xfff1f7f0) + ..bg2 = Color(0xffc1dcbc) + ..surface = Colors.white + ..accent1 = Color(0xff00a086) + ..accent1Dark = Color(0xff00856f) + ..accent1Darker = Color(0xff006b5a) + ..accent2 = Color(0xfff09433) + ..accent3 = Color(0xff5bc91a) + ..greyWeak = Color(0xff909f9c) + ..grey = Color(0xff515d5a) + ..greyStrong = Color(0xff151918) + ..error = Colors.red.shade900 + ..focus = Color(0xFF0ee2b1); + + case ThemeType.FlockGreen_Dark: + return AppTheme(isDark: true) + ..bg1 = Color(0xff121212) + ..bg2 = Color(0xff2c2c2c) + ..surface = Color(0xff252525) + ..accent1 = Color(0xff00a086) + ..accent1Dark = Color(0xff00caa5) + ..accent1Darker = Color(0xff00caa5) + ..accent2 = Color(0xfff19e46) + ..accent3 = Color(0xff5BC91A) + ..greyWeak = Color(0xffa8b3b0) + ..grey = Color(0xffced4d3) + ..greyStrong = Color(0xffffffff) + ..error = Color(0xffe55642) + ..focus = Color(0xff0ee2b1); + /* + case ThemeType.FlockGreen_Dark: + return AppTheme(isDark: true) + ..bg1 = Color(0xff212529) + ..surface = Color(0xff2a2e32) + ..bg2 = Color(0xff272b2f) + ..accent1 = Color(0xff00a086) + ..accent1Dark = Color(0xff00856f) + ..accent1Darker = Color(0xff006b5a) + ..accent2 = Color(0xfff09433) + ..accent3 = Color(0xff5bc91a) + ..greyWeak = Color(0xff151918) + ..grey = Color(0xff6c6c6c) + ..greyStrong = Color(0xff909f9c) + ..error = Colors.red.shade900 + ..focus = Color(0xb30ee2b1); + */ + } + return AppTheme.fromType(defaultTheme); + } + + ThemeData get themeData { + var t = ThemeData.from( + textTheme: (isDark ? ThemeData.dark() : ThemeData.light()).textTheme, + colorScheme: ColorScheme( + brightness: isDark ? Brightness.dark : Brightness.light, + primary: accent1, + primaryVariant: accent1Darker, + secondary: accent2, + secondaryVariant: ColorUtils.shiftHsl(accent2, -.2), + background: bg1, + surface: surface, + onBackground: txt, + onSurface: txt, + onError: txt, + onPrimary: accentTxt, + onSecondary: accentTxt, + error: error ?? Colors.red.shade400), + ); + return t.copyWith( + inputDecorationTheme: InputDecorationTheme( + border: ThinUnderlineBorder(), + ), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + textSelectionColor: greyWeak, + textSelectionHandleColor: Colors.transparent, + buttonColor: accent1, + cursorColor: accent1, + highlightColor: accent1, + toggleableActiveColor: accent1); + } + + Color shift(Color c, double d) => ColorUtils.shiftHsl(c, d * (isDark? -1 : 1)); +} diff --git a/flokk_src/lib/todo.txt b/flokk_src/lib/todo.txt new file mode 100644 index 0000000..0105f40 --- /dev/null +++ b/flokk_src/lib/todo.txt @@ -0,0 +1,151 @@ +///////////////////////////////////////////////// +// TODO: COLEMAN + * [x] Edit Panel - Finish Picture Upload (ContactEditPanel.handlePhotoPressed) + * [x] Edit Panel - Add Label selector (ContactEditPanelView) + * Will need to use a 'MiniForm'. Tricky to understand, but pretty easy to use + * Lots of examples in /miniforms + * Key thing is that the 'MiniForm' needs to dispatch up a FocusChangedNotification upwards, as Focus changes on it's own children + * [x] Update StyledScrollBar + List to support horizontal scrolling + * [x] Add 'smokeTest' NativeExtension Spike so we can easily test different platforms + * [x] Should let us test everything that gets touched when we upgrade SDK (Display AppData folder, Test all extensions, etc) + * [x] Add All Icons (when ready from design) + * [x] Fix padding on bottom of label header in search dropdown + * [x] Search hscroll should not include icons + * [x] Update search filtering + * [x] Line in label miniform + * [x] Label MiniForm should close suggestions when not focused + * [x] Focus label miniform text field after adding a new label + * [x] Get clipping and animation into the splash screen + WED + * [x] Splash screen is getting clipped at certain resolutions + * make a spike with just the splash screen, and test it thoroughly + * [x] Fix search hotkey kicking you out of fields + * [x] Label Miniform should not close after clicking a label + + THUR + * [x] Use solid background colors for avatars instead of images + * [x] Search should not show results as suggestions + * [ ] Code cleanup + * [ ] Polish and Tune Tab Navigation across the app, with a focus on Dashboard. Ideally can navigate from right to left, across the whole app. + + FRI + * [ ] Dropdown tabbing + * [ ] Talk to Yoon and figure out what we want to do with mouse-over/shadows on the various Dashboard Cards + + +///////////////////////////////////////////////// +// TODO EDDIE + +* Optimize service calls, lets start counting them, making sure we're optimizing + +* Examine startup time, it's getting quite long with the social accts in. + * Get a breakdown of where the time is going, and see what we can do? + +* Make sure nothing can break app startup, throw everything we can at the loading + +* Impose low-level social refresh rates at the command layer + * Twitter - 1m refresh limit + * Git - 5m for events, 72 hrs for repo info + * Global Contacts Refresh - 20s + * Git timeouts should be respected on startup (mainly with regards to repo info) + * The idea with implementing it at a low level, is: + * we can can be kinda sloppy with our command calls from the UI (like double-loading on startup), + * we know they are basically cached calls, won't slow down the app or waste service calls + +///////////////////////////////////////////////// +// TODO SHAWN + +/* Todo: GENERAL + +//* Add search results overlay view (need.searchEngine.hasContent or something...) +* Warning / Cleanup Pass + +THURS +* DarkModeSwitcher +* Finish Sidebar +* Polish + * Mouse Overs for Social Renderers + Tabs + * Styling Bugs in YouTrack +* Refresh Button +* SettingsPanel +* Mobile Layout + +FRI + +* Do a organization/cleanup pass on components and styled_components + * split spikes from _internal + * Remove ImageIcon's + +// TODO: CONTACTS +* Refactor AbstractWidget class into Separate widgets +* Edit - Finish date-picker + +// TODO: SEARCH + +// TODO: Bugs +* Dropdown does not support tab controls + +/// TODO: POLISH +* Contact Panel: Add scrollbar? +* Panel - Switch back to Info panel when cancelling add + +//* Contact List +//* Empty States +//* Social Content Panel + TouchSocialData +//* Create Social Picker Overlay +//* Responsive TabBar on Dash + +/./* Final styling pass w/ Web +// * Maybe remove the overlay if there are no search results +// * Look into having some default suggested items +// * Fix search results landing page heading text +//* Contact Info - Add Edit accelerator on mouseover +//* Contact Info - Add Edit accelerator on icon-click +//* Dashboard: Tab bars get cutoff when panel is open +//* Onboard Views +//* Update Btns to match comps (Large, PrimaryBtn, SecondaryBtn, SquareIcon) + // * Standardize Outlines on RollOver + +//* Style dialogs +//* Finish bulk-edit check/delete +//* See if ListView.cacheExtent can help our lists (did not!) +//* Edit - Add dual column text inputs for address +//* Dropdown overlay needs to scroll with it's owner +//* Edit - Add "Delete This Contact" +//* Info: Left-Hand button should be grey +//* Edit - Add new btn +//* Panel - Throw a dialog if they cancel pending edits, only if something has been changed. +//* Info - Tweak line height for address +//* Edit - Get Add New working +//* Edit - Basic opening/close widget +//* Edit - Add dynamic 'autoFocus' support +//* Edit - Add type dropdowns + +//* Figure out labels implementation +//* Hook up Star buttons +//* Hook up edit button, get initial form structure in place +//* Finish Info Window +//* Add checkbox's +//* Refactor Commands to remove global singletons (what to do for Dialog? Same thing?) +//* Scrollbar support +//* Initial layout scaffolding +//* Model support for groups +//* Json code generation + +// * Get contact updating working +// Add animations page view support +// Filtering and sorting +// Desktop build(s) running +// Basic view architecture & state management + + +* POC App: +//* - Oauth Signup > Code Display +//* - Copy to Clipboard +//* - Main Contacts List +* - Add / Remove / Update +* - Launch URL + */ + +Coleman Notes: + - Backspace deletes labels in search diff --git a/flokk_src/lib/views/contact_edit/contact_edit_panel.dart b/flokk_src/lib/views/contact_edit/contact_edit_panel.dart new file mode 100644 index 0000000..17e0b86 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/contact_edit_panel.dart @@ -0,0 +1,156 @@ +import 'package:flokk/_internal/universal_picker/universal_picker.dart'; +import 'package:flokk/commands/contacts/delete_contact_command.dart'; +import 'package:flokk/commands/contacts/update_contact_command.dart'; +import 'package:flokk/commands/contacts/update_pic_command.dart'; +import 'package:flokk/commands/dialogs/show_discard_warning_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styled_components/styled_dialogs.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel_view.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactSectionType { + static String name = "name"; + static String label = "label"; + static String email = "email"; + static String phone = "phone"; + static String github = "github"; + static String twitter = "twitter"; + static String address = "address"; + static String birthday = "birthday"; + static String job = "job"; + static String events = "event"; + static String websites = "link"; + static String notes = "notes"; + static String relationship = "relationship"; +} + +class ContactEditForm extends StatefulWidget { + final ContactData contact; + final ContactsModel contactsModel; + final Function(ContactData contact) onEditComplete; + final String initialSection; + + const ContactEditForm({Key key, this.contact, this.contactsModel, this.onEditComplete, this.initialSection}) + : super(key: key); + + @override + ContactEditFormState createState() => ContactEditFormState(); +} + +class ContactEditFormState extends State { + ContactData tmpContact; + bool isLoading = false; + String currentSection; + + // Convenience lookup method for the mini-forms. + // Since they are stateless, and use a lot of internal buildMethods, it's a lot less + // boilerplate if they can just fetch the theme here, + AppTheme get theme => Provider.of(context, listen: false); + + bool get isDirty { + if (tmpContact == null) return false; + // Create a copy of our tmp object, and strip it of empty listItems, + var tc = tmpContact.copy().trimLists(); + return !tc.equals(widget.contact); + } + + @override + void initState() { + tmpContact = widget.contact.copy(); + currentSection = widget.initialSection; + super.initState(); + } + + @override + void didUpdateWidget(ContactEditForm oldWidget) { + if (tmpContact == null || oldWidget.contact != widget.contact) { + tmpContact = widget.contact.copy(); + } + super.didUpdateWidget(oldWidget); + } + + void handleSavePressed() async { + bool success = true; + print("================= SAVE PRESSED ======================"); + + /// Strip contact of any empty list items before saving + ContactData contact = tmpContact.copy().trimLists(); + + // Adding a new contact? + if (contact.isNew) { + //Prevent them from adding an empty contact + if (contact.equals(ContactData())) { + success = false; + await Dialogs.show(OkCancelDialog( + message: "You can not add a completely empty contact. Add some info!", + onOkPressed: () => Navigator.pop(context), + )); + } + //Continue to add new contact + else { + setState(() => isLoading = true); + // Wait for add-new command to complete, since it would be overly complicated to create a tmpUser + contact = await UpdateContactCommand(context).execute(contact, updateSocial: contact.hasAnySocial); + // Upload their image if it's changed + if (tmpContact.hasNewProfilePic) { + UpdatePicCommand(context).execute(contact, tmpContact.profilePicBase64); + } + // If we have a valid contact here, all is good + success = contact != null; + if(mounted){ + setState(() => isLoading = false); + } + } + } else { + // Updating a contact, don't wait, just assume it will work. Data will get updated locally. + UpdateContactCommand(context).execute(contact, updateSocial: !contact.hasSameSocial(widget.contact)); + // Upload their image if it's changed. + if (tmpContact.hasNewProfilePic) { + UpdatePicCommand(context).execute(contact, tmpContact.profilePicBase64); + } + } + if (success) { + widget.onEditComplete?.call(contact); + //Edit is complete, make sure this contact is the currently selected + context?.read()?.selectedContact = contact; + + } + } + + void handleDeletePressed() async => await DeleteContactCommand(context).execute([widget.contact]); + + void handleCancelPressed() async { + bool doCancel = true; + if (isDirty) { + doCancel = await ShowDiscardWarningCommand(context).execute(); + } + if (doCancel ?? false) { + /// If we're cancelling a new contact, return null indicating that it should be discarded + widget.onEditComplete?.call(tmpContact.isNew ? null : widget.contact); + } + } + + void handleSectionChanged(String section) { + setState(() => currentSection = section); + } + + void rebuild() => setState(() {}); + + void handlePhotoPressed() async { + final picker = UniversalPicker(accept: "image/"); + picker.onChange = (String e) { + tmpContact.profilePicBase64 = picker.base64Data; + tmpContact.profilePicBytes = picker.byteData; + tmpContact.hasNewProfilePic = true; + }; + + picker.open(); + } + + @override + Widget build(BuildContext context) => ContactEditFormView(this); +} diff --git a/flokk_src/lib/views/contact_edit/contact_edit_panel_view.dart b/flokk_src/lib/views/contact_edit/contact_edit_panel_view.dart new file mode 100644 index 0000000..5d48de0 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/contact_edit_panel_view.dart @@ -0,0 +1,145 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/_internal/widget_view.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/scrolling/styled_scrollview.dart'; +import 'package:flokk/styled_components/styled_progress_spinner.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/address_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/birthday_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/email_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/events_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/job_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/label_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/name_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/notes_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/phone_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/relationship_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/social_miniforms.dart'; +import 'package:flokk/views/contact_edit/miniforms/website_miniform.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactEditFormView extends WidgetView { + ContactEditFormView(ContactEditFormState state, {Key key}) : super(state, key: key); + + BuildContext get context => state.context; + + ContactData get contact => state.tmpContact; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + if (widget.contact == null || contact == null) return Container(); + return state.isLoading + ? Center(child: StyledProgressSpinner()) + : Column( + children: [ + SizedBox(height: Insets.sm), + + /// Top Buttons + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + TransparentTextBtn( + "CANCEL", + bigMode: true, + color: theme.grey, + onPressed: state.handleCancelPressed, + ).translate(offset: Offset(-Insets.sm, 0)), + TransparentTextBtn( + "SAVE", + bigMode: true, + onPressed: state.handleSavePressed, + ).translate(offset: Offset(Insets.sm, 0)), + ], + ).padding(horizontal: Insets.l), + + StyledScrollView( + child: Column( + children: [ + VSpace(3), + /// Profile Pic + StyledUserAvatar(contact: contact, size: 110), + + VSpace(Insets.sm), + + TransparentTextBtn( + "Upload a photo", + bigMode: true, + onPressed: state.handlePhotoPressed, + ), + + VSpace(Insets.l), + + /// Form fields + SeparatedColumn( + separatorBuilder: () => VSpace(Insets.m), + mainAxisSize: MainAxisSize.min, + children: [ + /// Name + ContactNameMiniForm(state), + + /// Labels + ContactLabelMiniForm(state), + + /// Email + ContactEmailMiniForm(state), + + /// Phone + ContactPhoneMiniForm(state), + + /// Twitter + ContactSocialMiniForm(state, SocialActivityType.Twitter), + + /// Git + ContactSocialMiniForm(state, SocialActivityType.Git), + + /// Address + ContactAddressMiniForm(state), + + /// Job + ContactJobMiniForm(state), + + /// BIRTHDAY + ContactBirthdayMiniForm(state), + + /// EVENTS + ContactEventsMiniForm(state), + + /// Links + ContactWebsiteMiniForm(state), + + /// NOTES + ContactNotesMiniForm(state), + + /// Relationships, set a smaller maxDropdownHeight since we're near the bottom of the view + ContactRelationshipMiniForm(state, maxDropdownHeight: 140), + + if (!contact.isNew) + BaseStyledBtn( + hoverColor: theme.isDark? ColorUtils.shiftHsl(theme.bg1, .2) : theme.bg2.withOpacity(.35), + child: Text("DELETE THIS CONTACT", style: TextStyles.T1.textColor(theme.error)), + onPressed: state.handleDeletePressed, + ).padding(vertical: Insets.m), + + //Add some extra padding at the bottom to account for the Relationship Dropdown menu + VSpace(30), + ], + ).padding(horizontal: Insets.l, bottom: Insets.m) + ], + ), + ).flexible(), + SizedBox(height: Insets.m), + ], + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/expanding_miniform_container.dart b/flokk_src/lib/views/contact_edit/expanding_miniform_container.dart new file mode 100644 index 0000000..9349757 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/expanding_miniform_container.dart @@ -0,0 +1,129 @@ +import 'dart:async'; + +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:provider/provider.dart'; + +/// [FocusChangedNotification] Dispatched from a mini-form up into the ExpandingFormContainer, +/// allowing the Container to track focus state +class FocusChangedNotification extends Notification { + final bool isFocused; + + FocusChangedNotification(this.isFocused); +} + +/// [FocusChangedNotification] Dispatched from a mini-form up indicating we should close the container +class CloseFormNotification extends Notification {} + +typedef Widget FormBuilder(); +typedef bool BoolCallback(); + +/// ///////////////////////////////////////////////////// +/// [ExpandingMiniformContainer] - Holds a textfield prompt that opens into a form, listens for focus [FocusChangedNotification] +/// and auto-closes the container after a certain amt of time un-focused +class ExpandingMiniformContainer extends StatefulWidget { + final AssetImage icon; + final String sectionType; + final String activeSectionType; + final BoolCallback hasContent; + final FormBuilder formBuilder; + final Function(String) onOpened; + final bool autoFocus; + + const ExpandingMiniformContainer(this.sectionType, this.icon, + {Key key, this.activeSectionType, this.hasContent, this.formBuilder, this.onOpened, this.autoFocus = false}) + : assert((icon is AssetImage) || (icon is IconData)), + super(key: key); + + @override + _ExpandingMiniformContainerState createState() => _ExpandingMiniformContainerState(); +} + +class _ExpandingMiniformContainerState extends State with TickerProviderStateMixin { + bool _isOpen; + String _hint; + Timer timer; + + set isOpen(bool value) => setState(() => _isOpen = value); + + void _handlePromptFocusChanged(v) { + if (v == false) return; + // FIX: Unfocus any current textfields otherwise Flutter seems to randomly miss the new autofocus when its added to the tree + Utils.unFocus(); + // Show the form widget + Future.delayed(1.milliseconds, () => isOpen = true); + widget.onOpened?.call(widget.sectionType); + } + + bool _handleFormFocusChanged(bool value) { + if (value == false) { + timer?.cancel(); + timer = Timer(Duration(milliseconds: 750), () { + if (widget.hasContent()) return; + isOpen = false; + }); + } else { + timer?.cancel(); + } + return true; + } + + @override + Widget build(BuildContext context) { + timeDilation = 1; // + _isOpen ??= widget.hasContent() || widget.autoFocus; + switch (widget.sectionType) { + case "github": + _hint = "Add GitHub ID"; + break; + case "twitter": + _hint = "Add Twitter ID"; + break; + default: + _hint = "Add ${widget.sectionType}"; + break; + } + AppTheme theme = context.watch(); + + return NotificationListener( + // Listen for FocusNotifications from the child mini-form, + // This way we can track our focus state without coupling directly to the mini-form + onNotification: (n) => _handleFormFocusChanged(n.isFocused), + child: NotificationListener( + onNotification: (n) => isOpen = false, + child: AnimatedSize( + alignment: Alignment.topLeft, + curve: Curves.easeOut, + duration: Durations.fast, + vsync: this, + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + /// Left Icon + StyledImageIcon(widget.icon, size: 20, color: theme.grey).translate(offset: Offset(0, 8)), + HSpace(Insets.l), + + /// Content - Either the miniform, or the StyledText + (_isOpen + // Mini-Form + ? widget.formBuilder() + // Empty Prompt Text + : StyledFormTextInput( + hintText: _hint, onFocusChanged: _handlePromptFocusChanged) + .padding(right: Insets.l * 1.5 - 2)) + .padding(right: Insets.m) + .flexible(), + ], + ), + ), + ), + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/address_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/address_miniform.dart new file mode 100644 index 0000000..27dbab6 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/address_miniform.dart @@ -0,0 +1,98 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactAddressMiniForm extends BaseMiniForm { + ContactAddressMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.address, key: key); + + @override + Widget build(BuildContext context) { + List types = ["Home", "Work", "Other"]; + return buildExpandingContainer( + StyledIcons.address, + hasContent: () => c.hasAddress, + formBuilder: () { + /// Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) { + if (c.addressList.isEmpty) c.addressList.add(AddressData()); + List kids = c.addressList.map((a) { + return SeparatedColumn(key: ObjectKey(a), + separatorBuilder: ()=>VSpace(Insets.xs), + children: [ + /// Street + Type + buildTextWithDropdown( + context, + null, + autoFocus: getIsFocused(c.addressList, a), + hint: "Street", + typeHint: "Type", + initialText: a.singleLineStreet, + initialType: a.type, + types: types.map((e) => e.toUpperCase()).toList(), + onTextChanged: (value) => setFormState(() => a.street = value), + onTypeChanged: (value) => setFormState(() => a.type = value), + onDelete: () => handleDeletePressed(context, a, c.addressList), + showDelete: !a.isEmpty, + typeWidth: 160, + ), + + /// City / State + buildDualTextInput( + context, + "City", + a.city, + (v) => setFormState(() => a.city = v), + "State", + a.region, + (v) => setFormState(() => a.region = v), + ).padding(right: rightPadding), + + /// Country / Postal Code + buildDualTextInput( + context, + "Postal Code", + a.postcode, + (v) => setFormState(() => a.postcode = v), + "Country", + a.country, + (v) => setFormState(() => a.country = v), + ).padding(right: rightPadding), +//TODO: Put the country-dropdown back in when we have time to debug the height issue. +// buildTextWithDropdown( +// context, +// null, +// hint: "Postal Code", +// typeHint: "Country", +// initialText: a.postcode, +// initialType: a.country, +// types: Countries.all.map((e) => e.toUpperCase()).toList(), +// onTextChanged: (value) => setFormState(() => a.postcode = value), +// onTypeChanged: (value) => setFormState(() => a.country = value), +// showDelete: false, +// typeWidth: 160, +// ), + + if (c.addressList.indexOf(a) < c.addressList.length - 1) VSpace(Insets.m), + ]); + }).toList(); + + /// Maybe add addNew btn + injectAddNewBtnIfNecessary( + "Add $sectionType", kids, c.addressList, (a) => a.isEmpty, () => AddressData()); + return SeparatedColumn( + separatorBuilder: ()=>VSpace(Insets.sm), + crossAxisAlignment: CrossAxisAlignment.start, + children: kids); + }, + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/base_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/base_miniform.dart new file mode 100644 index 0000000..c29e760 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/base_miniform.dart @@ -0,0 +1,224 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_autocomplete_dropdown.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/expanding_miniform_container.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +/// ///////////////////////////////////////////////////// +/// [BaseMiniForm] Provides common methods and component builders for all mini-forms +/// [SB] Currently this class basically just provides convenience methods, and buildFxns, +/// so you don't need to dispatch FocusNotifications in your concrete MiniForms. +/// It's composed mainly of sub-builds methods, which should probably be refactored into +/// individual FormWidgets, but it works for now. +abstract class BaseMiniForm extends StatelessWidget { + BaseMiniForm(this.form, this.sectionType, {Key key}) : super(key: key); + + double get rightPadding => Insets.l * 1.5 - 2; + + final String sectionType; + + final ContactEditFormState form; + + bool get isSelected => form.currentSection == sectionType; + + ContactData get c => form.tmpContact; + + bool getIsFocused(List list, T item) => isSelected && list.indexOf(item) == 0; + + /// ///////////////////////////////////////////////////// + /// SHARED HANDLERS AND BUSINESS LOGIC + void setFormState(Function() action) { + action(); + form.rebuild(); + } + + void handleFocusChanged(bool value, BuildContext context) => FocusChangedNotification(value).dispatch(context); + + void handleDeletePressed(BuildContext context, T item, List list) { + // Remove item + list.remove(item); + // Rebuild form + + //Manually request a close if we're empty + (list.isEmpty) ? CloseFormNotification().dispatch(context) : form.rebuild(); + } + + void handleAddPressed(T item, List list) { + list.add(item); + form.rebuild(); + } + + /// ///////////////////////////////////////////////////// + /// SHARED UI FACTORY BUILD METHODS + + /// Adds a build button if the final row in the list has some content, and we don't exceed some max # of items + void injectAddNewBtnIfNecessary( + String hint, List column, List list, Function(T) isEmpty, Function() itemBuilder) { + int maxItems = 8; + if (list.isNotEmpty && !isEmpty(list.last) && list.length < maxItems) { + Widget btn = TransparentIconAndTextBtn( + "Add $sectionType", + StyledIcons.formAdd, + bigMode: true, + textColor: form.theme.greyWeak, + onPressed: () => handleAddPressed(itemBuilder(), list), + ).translate(offset: Offset(-4, 0)); + // Wrap the button in a row with a spacer, so it will not stretch all the way across the form + column.add(Row(children: [btn, Spacer()])); + } + } + + /// ////////////////////////////////////////////////////////////// + /// Creates an ExpandingMiniformContainer with some shared boilerplate (auto-focus check, and onOpened handler). + /// Every miniform calls this fxn. + Widget buildExpandingContainer(dynamic icon, {BoolCallback hasContent, FormBuilder formBuilder}) { + return ExpandingMiniformContainer( + sectionType, + icon, + hasContent: hasContent, + formBuilder: formBuilder, + // Auto-focus if we're the current form section + autoFocus: form.currentSection == sectionType, + // When we open, let the form know that we're the current section + onOpened: (s) => form?.handleSectionChanged(s), + ); + } + + /// ////////////////////////////////////////////////// + /// Builds a basic TextInput that dispatches focusChanged + /// //TODO SB: Move this and the other components into their own widgets. They just need to be passed the miniform as a component. + Widget buildTextInput(BuildContext context, String hint, String initial, Function(String) onChanged, + {bool autoFocus = false, EdgeInsets padding, int maxLines = 1, TextEditingController controller}) { + return StyledFormTextInput( + controller: controller, + hintText: hint, + contentPadding: padding ?? StyledFormTextInput.kDefaultTextInputPadding, + autoFocus: autoFocus, + initialValue: initial, + maxLines: maxLines, + onChanged: onChanged, + // Let parent widget know when textfield focus has changed + onFocusChanged: (v) => handleFocusChanged(v, context)); + } + + /// ////////////////////////////////////////////////// + /// Builds a dual-column TextInput like those used in Address + Widget buildDualTextInput(BuildContext context, String hint1, String initial1, Function(String) onChanged1, + String hint2, String initial2, Function(String) onChanged2, + {bool autoFocus = false, EdgeInsets padding, int maxLines = 1}) { + return Row( + children: [ + buildTextInput(context, hint1, initial1, onChanged1, autoFocus: autoFocus, padding: padding, maxLines: maxLines) + .flexible(), + HSpace(Insets.m), + buildTextInput(context, hint2, initial2, onChanged2, padding: padding, maxLines: maxLines).flexible(), + ], + ); + } + + /// /////////////////////////////////////////////////// + /// Builds a single-row widget that is a combination of Text and AutoCompleteDropdown + /// This is your classic EMAIL / TYPE DROPDOWN field + Widget buildTextWithDropdown(BuildContext context, dynamic item, + {String hint, + String typeHint, + String initialText, + String initialType, + List types, + Function(String) onTextChanged, + Function(String) onTypeChanged, + Function() onDelete, + bool showDelete, + bool autoFocus = false, + double maxDropdownHeight = 300, + double typeWidth = 100}) { + return Row( + key: item != null ? ObjectKey(item) : null, + children: [ + /// Text Input + buildTextInput( + context, + hint, + initialText, + onTextChanged, + autoFocus: autoFocus, + ).flexible(), + HSpace(Insets.m), + + /// Type dropdown + StyledAutoCompleteDropdown( + items: types, + hint: typeHint, + initialValue: initialType, + onChanged: onTypeChanged, + maxHeight: maxDropdownHeight, + onFocusChanged: (v) => handleFocusChanged(v, context)).width(typeWidth).translate(offset: Offset(0, 3)), + HSpace(2), + + /// Delete Btn + ColorShiftIconBtn( + StyledIcons.formDelete, + size: 20, + onPressed: showDelete ? onDelete : null, + padding: EdgeInsets.all(Insets.sm), + ).opacity(showDelete ? 1 : 0, animate: true).animate(Durations.fast, Curves.linear), + ], + ); + } + + /// //////////////////////////////////////////////////////////// + /// Build a column of Text/Type dropdowns, from a list of items + buildColumnOfTextWithDropdown( + BuildContext context, + String hint, + String typeHint, { + List itemList, + List types, + T Function() newItemBuilder, + bool Function(T) isEmpty, + String Function(T) getValue, + Function(T, String) setValue, + String Function(T) getType, + Function(T, String) setType, + double maxDropdownHeight, + }) { + //If we've been given an empty list, populate it with at least one item. + if (itemList.isEmpty) itemList.add(newItemBuilder()); + + /// Build a list of rows for each item in the list + List kids = itemList.map((item) { + // Create a TextAndTypeRow widget + return buildTextWithDropdown(context, item, + autoFocus: getIsFocused(itemList, item), + hint: hint, + typeHint: typeHint, + initialText: getValue(item), + initialType: getType(item), + types: types.map((e) => e.toUpperCase()).toList(), + onTextChanged: (value) => setFormState(() => setValue(item, value)), + onTypeChanged: (value) => setFormState(() => setType(item, value)), + onDelete: () => handleDeletePressed(context, item, itemList), + showDelete: !isEmpty(item), + maxDropdownHeight: maxDropdownHeight); + }).toList(); + + /// Add a "Add New" btn to the column if certain conditions are met + injectAddNewBtnIfNecessary(hint, kids, itemList, isEmpty, newItemBuilder); + + /// Return the actual Column of content + return SeparatedColumn( + separatorBuilder: () => VSpace(Insets.sm), + crossAxisAlignment: CrossAxisAlignment.start, + children: kids, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/birthday_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/birthday_miniform.dart new file mode 100644 index 0000000..d5aef19 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/birthday_miniform.dart @@ -0,0 +1,29 @@ +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart'; +import 'package:flutter/material.dart'; + +class ContactBirthdayMiniForm extends BaseMiniForm { + ContactBirthdayMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.birthday, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.birthday, + hasContent: () => c.hasBirthday, + formBuilder: () { + return TextfieldWithDatePickerRow( + this, + hint: "Birthday", + isSelected: isSelected, + initialValue: c.birthday.text, + onDateChanged: (string, date) { + c.birthday.text = string; + c.birthday.date = date; + }, + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart b/flokk_src/lib/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart new file mode 100644 index 0000000..a19b66e --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart @@ -0,0 +1,104 @@ +import 'package:flokk/_internal/utils/date_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/secondary_btn.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_edit/expanding_miniform_container.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + + +class TextfieldWithDatePickerRow extends StatefulWidget { + final BaseMiniForm miniform; + final bool isSelected; + final String hint; + final String initialValue; + final void Function(String, DateTime) onDateChanged; + + const TextfieldWithDatePickerRow( + this.miniform, { + Key key, + this.isSelected, + this.hint, + this.initialValue, + this.onDateChanged, + }) : super(key: key); + + @override + _TextfieldWithDatePickerRowState createState() => _TextfieldWithDatePickerRowState(); +} + +class _TextfieldWithDatePickerRowState extends State { + + TextEditingController textController; + + void handleDatePicked(BuildContext context) async { + DateTime firstDate = DateTime.now().subtract((365 * 100).days); + DateTime lastDate = DateTime.now().add((365 * 10).days); + DateTime startDate; + + ///Parse the current date text, we can have no idea if this is a valid date or not + startDate = parseDate(textController.text); + + /// Manually 'clamp' these dates because material date picker likes to blow up with AssertErrors rather than fail gracefully + if (startDate.isBefore(firstDate)) startDate = firstDate; + if (startDate.isAfter(lastDate)) startDate = lastDate; + DateTime result = await showDatePicker( + context: context, + initialDate: startDate, + firstDate: firstDate, + lastDate: lastDate, + ); + if (result != null) { + textController.text = DateFormats.google.format(result); + widget.onDateChanged(textController.text, result); + } + } + + DateTime parseDate(String v) { + try { + return DateFormats.google.parse(v); + } on FormatException catch (e) { + return DateTime.now(); + } + } + + @override + void initState() { + textController = TextEditingController(text: widget.initialValue); + super.initState(); + } + + _handleFocusChanged(bool value) => FocusChangedNotification(value).dispatch(context); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return Stack( + children: [ + Container( + margin: EdgeInsets.only(right: 80), + child: widget.miniform.buildTextInput( + context, + widget.hint, + widget.initialValue, + (v) => widget.onDateChanged?.call(v, parseDate(v)), + autoFocus: widget.isSelected, + controller: textController, + ), + ), + SecondaryBtn( + onPressed: () => handleDatePicked(context), + minHeight: 20, + contentPadding: Insets.sm, + onFocusChanged: _handleFocusChanged, + child: StyledImageIcon(StyledIcons.calendar, color: theme.accent1), + ).positioned(right: 0, bottom: 3), + ], + ); + } + +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/email_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/email_miniform.dart new file mode 100644 index 0000000..b2be859 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/email_miniform.dart @@ -0,0 +1,31 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactEmailMiniForm extends BaseMiniForm { + ContactEmailMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.email, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.mail, + hasContent: () => c.hasEmail, + formBuilder: () { + // Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => buildColumnOfTextWithDropdown(context, "Email Address", "Type", + itemList: c.emailList, + types: ["Home", "Work", "Other"], + newItemBuilder: () => EmailData(), + isEmpty: (EmailData i) => i.isEmpty, + getValue: (i) => i.value, + setValue: (i, value) => i.value = value, + getType: (i) => i.type, + setType: (i, type) => i.type = type), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/events_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/events_miniform.dart new file mode 100644 index 0000000..ac00e4b --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/events_miniform.dart @@ -0,0 +1,102 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/date_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/styled_autocomplete_dropdown.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flokk/views/contact_edit/miniforms/controls/textfield_with_date_picker_row.dart'; +import 'package:flutter/material.dart'; + +class ContactEventsMiniForm extends BaseMiniForm { + ContactEventsMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.events, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.calendar, + hasContent: () => c.hasEvents, + formBuilder: () { + //If we've been given an empty list, populate it with at least one item. + var itemList = c.eventList; + EventData newItemBuilder() => EventData()..date = DateTime.now(); + if (itemList.isEmpty) itemList.add(newItemBuilder()); + + /// Build a list of rows for each item in the list + List kids = itemList.map((item) { + // Create a TextAndTypeRow widget + return buildTextWithDatePickerAndDropdown(context, item, + autoFocus: getIsFocused(itemList, item), + hint: "Event", + typeHint: "Type", + initialText: DateFormats.google.format(item.date), + initialType: item.type, + types: ["Anniversary", "Hire Date", "Other"].map((e) => e.toUpperCase()).toList(), + onDateChanged: (s, d) => setFormState(() => item.date = d), + onTypeChanged: (value) => setFormState(() => item.type = value), + onDelete: () => handleDeletePressed(context, item, itemList), + showDelete: !item.isEmpty); + }).toList(); + + /// Add a "Add New" btn to the column if certain conditions are met + injectAddNewBtnIfNecessary("Event", kids, itemList, (e) => e.isEmpty, newItemBuilder); + + /// Return the actual Column of content + return SeparatedColumn( + separatorBuilder: ()=>VSpace(Insets.sm * 1.5), + crossAxisAlignment: CrossAxisAlignment.start, + children: kids, + ); + }, + ); + } + + Widget buildTextWithDatePickerAndDropdown(BuildContext context, dynamic item, + {String hint, + String typeHint, + String initialText, + String initialType, + List types, + Function(String, DateTime) onDateChanged, + Function(String) onTypeChanged, + Function() onDelete, + bool showDelete, + bool autoFocus = false, + double typeWidth = 100}) { + return Row( + key: item != null ? ObjectKey(item) : null, + children: [ + /// Text Input + TextfieldWithDatePickerRow( + this, + hint: hint, + initialValue: initialText, + onDateChanged: onDateChanged, + isSelected: autoFocus, + ).flexible(), + HSpace(Insets.m), + + /// Type dropdown + StyledAutoCompleteDropdown( + items: types, + hint: typeHint, + initialValue: initialType, + onChanged: onTypeChanged, + onFocusChanged: (v) => handleFocusChanged(v, context)).width(typeWidth).translate(offset: Offset(0, 3)), + HSpace(2), + + /// Delete Btn + ColorShiftIconBtn( + StyledIcons.formDelete, + size: 20, + onPressed: showDelete ? onDelete : null, + padding: EdgeInsets.all(Insets.sm), + ).opacity(showDelete ? 1 : 0, animate: true).animate(Durations.fast, Curves.linear), + ], + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/job_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/job_miniform.dart new file mode 100644 index 0000000..0c91a37 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/job_miniform.dart @@ -0,0 +1,29 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactJobMiniForm extends BaseMiniForm { + ContactJobMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.job, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.work, + hasContent: () => c.hasJob, + formBuilder: () { + /// Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => SeparatedColumn( + children: [ + buildTextInput(context, "Company", c.jobCompany, (v) => c.jobCompany = v, autoFocus: isSelected), + buildTextInput(context, "Job Title", c.jobTitle, (v) => c.jobTitle = v), + ], + ).padding(right: rightPadding), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/label_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/label_miniform.dart new file mode 100644 index 0000000..7dfa76f --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/label_miniform.dart @@ -0,0 +1,155 @@ +import 'dart:async'; + +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/groups/create_label_command.dart'; +import 'package:flokk/data/group_data.dart'; +import 'package:flokk/styled_components/styled_form_label_input.dart'; +import 'package:flokk/styled_components/styled_group_label.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactLabelMiniForm extends BaseMiniForm { + ContactLabelMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.label, key: key); + + void _handleAddLabel(String label, BuildContext context) { + // If the label is empty or we already have that label on our contact then dont add it + if (label.isEmpty || c.groupList.any((g) => g.name == label)) return; + //TODO SB@CE - This (form.widget.contactsModel) is probably ok, since these miniforms are tightly coupled to form. But no need to reach out for contactsModel. Instead just look it up with provider: ContactsModel contactsModel = context.watch(); + GroupData groupToAdd = form.widget.contactsModel.getGroupByName(label); + if (groupToAdd != null) { + setFormState(() => c.groupList.add(groupToAdd)); + } else { + // We must make a new group, add that group to this contact when the creation has finished + CreateLabelCommand(context).execute(label).then((g) => setFormState(() => c.groupList.add(g))); + } + } + + void _handleRemoveLabel(String label) { + setFormState(() => c.groupList.removeWhere((g) => g.name == label)); + } + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.label, + hasContent: () => c.hasLabel, + formBuilder: () { + // Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) { + return _LabelMiniformWithSearch( + autoFocus: isSelected, + onAddLabel: (label) => _handleAddLabel(label, context), + onRemoveLabel: _handleRemoveLabel, + contactLabels: c.groupList.map((g) => g.name).toList(), + allLabels: form.widget.contactsModel.allGroups.map((g) => g.name).toList(), + onFocusChanged: (v) => handleFocusChanged(v, context), + ).padding(right: rightPadding); + }, + ); + }, + ); + } +} + +class _LabelMiniformWithSearch extends StatefulWidget { + final bool autoFocus; + final void Function(String) onAddLabel; + final void Function(String) onRemoveLabel; + final void Function(bool) onFocusChanged; + final List contactLabels; + final List allLabels; + + _LabelMiniformWithSearch({ + this.autoFocus, + this.onAddLabel, + this.onRemoveLabel, + this.onFocusChanged, + this.contactLabels, + this.allLabels, + }); + + @override + _LabelMiniformWithSearchState createState() => _LabelMiniformWithSearchState(); +} + +class _LabelMiniformWithSearchState extends State<_LabelMiniformWithSearch> { + bool _isOpen; + String _labelFilter = ""; + Timer _timer; + + _LabelMiniformWithSearchState(); + + @override + void didUpdateWidget(_LabelMiniformWithSearch oldWidget) { + super.didUpdateWidget(oldWidget); + } + + void _handleOnChanged(String filter) { + setState(() { + _labelFilter = filter; + }); + } + + bool _handleFocusChanged(bool value) { + if (value == false) { + _timer?.cancel(); + _timer = Timer(Duration(milliseconds: 750), () { + setState(() => _isOpen = false); + }); + } else { + _timer?.cancel(); + } + widget.onFocusChanged(value); + return true; + } + + bool _handleTextFocusChanged(bool value) { + final result = _handleFocusChanged(value); + if (value && !_isOpen) setState(() => _isOpen = true); + return result; + } + + @override + Widget build(BuildContext context) { + _isOpen ??= widget.autoFocus; + AppTheme theme = context.watch(); + final searchResults = widget.allLabels + .where((l) => l.toLowerCase().contains(_labelFilter.toLowerCase())) + .where((l) => !widget.contactLabels.contains(l)) + .take(6) + .map( + (l) => StyledGroupLabel( + text: l, + onPressed: () => widget.onAddLabel(l), + onFocusChanged: _handleFocusChanged, + ), + ) + .toList(); + + return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ + StyledFormLabelInput( + hintText: "Labels", + autoFocus: widget.autoFocus, + onAddLabel: widget.onAddLabel, + onRemoveLabel: widget.onRemoveLabel, + onChanged: _handleOnChanged, + labels: widget.contactLabels, + onFocusChanged: _handleTextFocusChanged, + ), + if (_isOpen) ...{ + Text("Suggestions".toUpperCase(), style: TextStyles.Caption.textColor(theme.grey)).padding(bottom: Insets.m), + Wrap( + runSpacing: Insets.sm * 1.5, + spacing: Insets.sm, + children: searchResults, + ), + }, + ]); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/name_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/name_miniform.dart new file mode 100644 index 0000000..2f66712 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/name_miniform.dart @@ -0,0 +1,35 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactNameMiniForm extends BaseMiniForm { + ContactNameMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.name, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.user, + hasContent: () => c.hasName, + formBuilder: () { + /// Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => SeparatedColumn( + separatorBuilder: ()=>VSpace(Insets.sm * .5), + children: [ + buildTextInput(context, "First Name", c.nameGiven, (v) => c.nameGiven = v, autoFocus: isSelected), + buildTextInput(context, "Middle Name", c.nameMiddle, (v) => c.nameMiddle = v), + buildTextInput(context, "Last Name", c.nameFamily, (v) => c.nameFamily = v), + buildDualTextInput(context, "Prefix", c.namePrefix, (v) => c.namePrefix = v, "Suffix", c.nameSuffix, + (v) => c.nameSuffix = v), + ], + ).padding(right: rightPadding), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/notes_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/notes_miniform.dart new file mode 100644 index 0000000..380d46c --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/notes_miniform.dart @@ -0,0 +1,35 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactNotesMiniForm extends BaseMiniForm { + ContactNotesMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.notes, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.note, + hasContent: () => c.hasNotes, + formBuilder: () { + /// Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => SeparatedColumn( + children: [ + buildTextInput( + context, + "Notes", + c.notes, + (v) => c.notes = v, + autoFocus: isSelected, + maxLines: null, + ) + ], + ).padding(right: rightPadding), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/phone_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/phone_miniform.dart new file mode 100644 index 0000000..532475f --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/phone_miniform.dart @@ -0,0 +1,31 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactPhoneMiniForm extends BaseMiniForm { + ContactPhoneMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.phone, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.phone, + hasContent: () => c.hasPhone, + formBuilder: () { + /// Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => buildColumnOfTextWithDropdown(context, "Phone Number", "Type", + itemList: c.phoneList, + types: ["Work", "Other", "Mobile", "Main", "Home Fax", "Work Fax", "Google Voice", "Pager"], + newItemBuilder: () => PhoneData(), + isEmpty: (PhoneData i) => i.isEmpty, + getValue: (i) => i.number, + setValue: (i, value) => i.number = value, + getType: (i) => i.type, + setType: (i, type) => i.type = type), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/relationship_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/relationship_miniform.dart new file mode 100644 index 0000000..aa5151a --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/relationship_miniform.dart @@ -0,0 +1,54 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactRelationshipMiniForm extends BaseMiniForm { + double maxDropdownHeight; + + ContactRelationshipMiniForm(ContactEditFormState form, {Key key, this.maxDropdownHeight}) + : super(form, ContactSectionType.relationship, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.relationship, + hasContent: () => c.hasRelationship, + formBuilder: () { + // Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => buildColumnOfTextWithDropdown( + context, + "Person", + "Relationship", + maxDropdownHeight: maxDropdownHeight, + itemList: c.relationList, + newItemBuilder: () => RelationData(), + isEmpty: (RelationData i) => i.isEmpty, + getValue: (i) => i.person, + setValue: (i, value) => i.person = value, + getType: (i) => i.type, + setType: (i, type) => i.type = type, + types: [ + "Spouse", + "Child", + "Mother", + "Father", + "Parent", + "Brother", + "Sister", + "Friend", + "Relative", + "Manager", + "Assistant", + "Reference", + "Partner", + "Domestic Partner" + ], + ), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/social_miniforms.dart b/flokk_src/lib/views/contact_edit/miniforms/social_miniforms.dart new file mode 100644 index 0000000..44aba83 --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/social_miniforms.dart @@ -0,0 +1,58 @@ +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactSocialMiniForm extends BaseMiniForm { + final SocialActivityType type; + + ContactSocialMiniForm(ContactEditFormState form, this.type, {Key key}) + : super(form, type == SocialActivityType.Git ? ContactSectionType.github : ContactSectionType.twitter, key: key); + + bool get isGit => type == SocialActivityType.Git; + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + isGit ? StyledIcons.githubActive : StyledIcons.twitterActive, + hasContent: isGit ? () => c.hasGit : () => c.hasTwitter, + formBuilder: () { + // Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder(builder: (context) { + if (type == SocialActivityType.Git) { + return buildPrefixedTextInput(context, "github.com/", c.gitUsername, (v) => c.gitUsername = v); + } else { + return buildPrefixedTextInput(context, "@", c.twitterHandle, (v) => c.twitterHandle = v); + } + }).padding(right: rightPadding); + }, + ); + } + + /// Builds prefixed TextInput used for git/twitter + Widget buildPrefixedTextInput(BuildContext context, String hint, String initial, Function(String) onChanged, + [bool autoFocus = false]) { + double prefixSize = StringUtils.measure(hint, TextStyles.Body1).width; + EdgeInsets padding = StyledFormTextInput.kDefaultTextInputPadding.copyWith(left: prefixSize + .5); + return FocusTraversalGroup( + child: Stack( + children: [ + /// Prefix text, non-interactive + IgnorePointer( + child: FocusScope( + canRequestFocus: false, + child: buildTextInput(context, hint, "", (v) {})), + ), + + /// Value text + buildTextInput(context, "", initial, onChanged, autoFocus: isSelected, padding: padding), + ], + ), + ); + } +} diff --git a/flokk_src/lib/views/contact_edit/miniforms/website_miniform.dart b/flokk_src/lib/views/contact_edit/miniforms/website_miniform.dart new file mode 100644 index 0000000..7ac3aae --- /dev/null +++ b/flokk_src/lib/views/contact_edit/miniforms/website_miniform.dart @@ -0,0 +1,31 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_edit/miniforms/base_miniform.dart'; +import 'package:flutter/material.dart'; + +class ContactWebsiteMiniForm extends BaseMiniForm { + ContactWebsiteMiniForm(ContactEditFormState form, {Key key}) : super(form, ContactSectionType.websites, key: key); + + @override + Widget build(BuildContext context) { + return buildExpandingContainer( + StyledIcons.link, + hasContent: () => c.hasLink, + formBuilder: () { + // Wrap content in a builder so the FocusNotification will get caught by the ExpandingFormContainer + return Builder( + builder: (context) => buildColumnOfTextWithDropdown(context, "Link", "Type", + itemList: c.websiteList, + types: ["Blog", "Home Page", "Profile", "Work"], + newItemBuilder: () => WebsiteData(), + isEmpty: (WebsiteData i) => i.isEmpty, + getValue: (i) => i.href, + setValue: (i, value) => i.href = value, + getType: (i) => i.type, + setType: (i, type) => i.type = type), + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_info/contact_info_details_card.dart b/flokk_src/lib/views/contact_info/contact_info_details_card.dart new file mode 100644 index 0000000..ff993f6 --- /dev/null +++ b/flokk_src/lib/views/contact_info/contact_info_details_card.dart @@ -0,0 +1,117 @@ +import 'package:flokk/_internal/url_launcher/url_launcher.dart'; +import 'package:flokk/_internal/utils/date_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/clickable_icon_row.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:tuple/tuple.dart'; + +class ContactInfoDetailsCard extends StatelessWidget { + const ContactInfoDetailsCard({Key key}) : super(key: key); + + void _handlePhonePressed(String value) => UrlLauncher.openPhoneNumber(value); + + void _handleEmailPressed(String value) => UrlLauncher.openEmail(value); + + void _handleLocationPressed(String value) => UrlLauncher.openGoogleMaps(value); + + void _handleGitPressed(String value) => UrlLauncher.openGitUser(value); + + void _handleTwitterPressed(String value) => UrlLauncher.openTwitterUser(value); + + void _handleLinkPressed(String value) => UrlLauncher.openHttp(value); + + @override + Widget build(BuildContext context) { + /// /////////////////////////////////////////////// + /// Bind to provided contact + ContactData contact = context.watch(); + + return Column( + children: [ + /// EMAIL + if (contact.hasEmail) + MultilineClickableIconRow( + icon: StyledIcons.mail, + onPressed: _handleEmailPressed, + editType: ContactSectionType.email, + rows: contact.emailList.map((e) => Tuple2(e.value, e.type)).toList(), + ), + + /// PHONE + if (contact.hasPhone) + MultilineClickableIconRow( + icon: StyledIcons.phone, + onPressed: _handlePhonePressed, + editType: ContactSectionType.phone, + rows: contact.phoneList.map((e) => Tuple2(e.number, e.type)).toList(), + ), + + /// SOCIAL + if (contact.hasGit) + ClickableIconRow( + icon: StyledIcons.githubActive, + onPressed: _handleGitPressed, + value: "github.com/${contact.gitUsername}", + editType: ContactSectionType.github, + ), + if (contact.hasTwitter) + ClickableIconRow( + icon: StyledIcons.twitterActive, + onPressed: _handleTwitterPressed, + value: "@${contact.twitterHandle}", + editType: ContactSectionType.twitter, + ), + + /// ADDRESS + if (contact.hasAddress) + MultilineClickableIconRow( + icon: StyledIcons.address, + onPressed: _handleLocationPressed, + rows: contact.addressList.map((a) => Tuple2(a.getFullAddress(), a.type)).toList(), + editType: ContactSectionType.address, + ), + + /// Job + if (contact.hasJob) + ClickableIconRow(icon: StyledIcons.work, value: contact.formattedJob, editType: ContactSectionType.job), + + /// BIRTHDAY + if (contact.hasBirthday) + ClickableIconRow( + icon: StyledIcons.birthday, value: contact.birthday.text, editType: ContactSectionType.birthday), + + /// Events + MultilineClickableIconRow( + icon: StyledIcons.calendar, + rows: contact.eventList.map((d) => Tuple2(DateFormats.google.format(d.date), d.type)).toList(), + editType: ContactSectionType.events, + ), + + /// LINKS + if (contact.hasLink) + MultilineClickableIconRow( + icon: StyledIcons.link, + onPressed: _handleLinkPressed, + rows: contact.websiteList.map((a) => Tuple2(a.href, a.type)).toList(), + editType: ContactSectionType.websites), + + /// NOTES + if (contact.hasNotes) + ClickableIconRow(icon: StyledIcons.note, value: contact.notes, editType: ContactSectionType.notes), + + /// RELATIONSHIP + if (contact.hasRelationship) + MultilineClickableIconRow( + icon: StyledIcons.relationship, + rows: contact.relationList.map((a) => Tuple2(a.person, a.type)).toList(), + editType: ContactSectionType.relationship, + ), + ], + ).padding(top: Insets.m * 1.5, bottom: 50); + } +} diff --git a/flokk_src/lib/views/contact_info/contact_info_header_card.dart b/flokk_src/lib/views/contact_info/contact_info_header_card.dart new file mode 100644 index 0000000..64eb3af --- /dev/null +++ b/flokk_src/lib/views/contact_info/contact_info_header_card.dart @@ -0,0 +1,91 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/toggle_favorite_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/styled_group_label.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactInfoHeaderCard extends StatefulWidget { + const ContactInfoHeaderCard({Key key}) : super(key: key); + + @override + _ContactInfoHeaderCardState createState() => _ContactInfoHeaderCardState(); +} + +class _ContactInfoHeaderCardState extends State { + void handleStarPressed(ContactData c) { + ToggleFavoriteCommand(context).execute(c); + setState(() {}); + } + + @override + Widget build(BuildContext context) { + /// /////////////////////////////////////////////// + /// Bind to provided contact + ContactData contact = context.watch(); + + AppTheme theme = context.watch(); + + List labels = contact.groupList + .map((e) => StyledGroupLabel(icon: null, text: e.name.toUpperCase()).padding( + horizontal: Insets.sm * .5, + )) + .toList(); + + return SeparatedColumn( + separatorBuilder: () => SizedBox(height: Insets.m * .5), + children: [ + VSpace(Insets.sm - 1), + + /// PROFILE PIC + StyledUserAvatar(key: ValueKey(contact.id), size: 110, contact: contact), + + /// TITLE + Row( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + OneLineText(contact.nameFull, style: TextStyles.H1).flexible(), + HSpace(Insets.sm * .5), + ColorShiftIconBtn( + contact.isStarred ? StyledIcons.starFilled : StyledIcons.starEmpty, + color: contact.isStarred ? theme.accent1 : theme.grey, + onPressed: () => handleStarPressed(contact), + ), + ], + ), + + /// LABELS + if (contact.groupList.isNotEmpty) Wrap(children: labels), + + /// Social Icons + //SocialIconStrip(contact: contact), + ], + ).translate(offset: Offset(0, -Insets.m)); + } +} + +class SocialIconStrip extends StatelessWidget { + final ContactData contact; + final bool vtMode; + + const SocialIconStrip({Key key, this.contact, this.vtMode = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + List widgets = [ + ColorShiftIconBtn(StyledIcons.githubActive), + ColorShiftIconBtn(StyledIcons.twitterActive), + //StyledIconButton(child: Icon(Icons.contacts)), + ]; + return vtMode ? widgets.toColumn(mainAxisSize: MainAxisSize.min) : widgets.toRow(mainAxisSize: MainAxisSize.min); + } +} diff --git a/flokk_src/lib/views/contact_info/contact_info_panel.dart b/flokk_src/lib/views/contact_info/contact_info_panel.dart new file mode 100644 index 0000000..9a8516c --- /dev/null +++ b/flokk_src/lib/views/contact_info/contact_info_panel.dart @@ -0,0 +1,145 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/scrolling/styled_scrollview.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_tab_bar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_info/contact_info_details_card.dart'; +import 'package:flokk/views/contact_info/contact_info_header_card.dart'; +import 'package:flokk/views/contact_info/contact_info_social_card.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactInfoPanel extends StatefulWidget { + final Function() onClosePressed; + final Function(String) onEditPressed; + + const ContactInfoPanel({Key key, this.onClosePressed, this.onEditPressed}) : super(key: key); + + @override + ContactInfoPanelState createState() => ContactInfoPanelState(); +} + +class ContactInfoPanelState extends State { + ContactData _prevContact; + ValueNotifier opacityNotifier = ValueNotifier(0); + + @override + void initState() { + super.initState(); + } + + void startFadeIfContactsHaveChanged(ContactData c) { + if (c != null && c?.id != _prevContact?.id) { + opacityNotifier.value = 0; + Future.microtask(() => opacityNotifier.value = 1); + } + } + + @override + Widget build(BuildContext context) { + /// /////////////////////////////////////////////// + /// Bind to Provided contact + AppTheme theme = context.watch(); + return Consumer( + builder: (_, c, __) { + // Fade in each time we change contact + startFadeIfContactsHaveChanged(c); + //c ??= _prevContact; + if (c != null) _prevContact = c; + return Column( + children: [ + /// TOP ICON ROW + Row(children: [ + ColorShiftIconBtn(StyledIcons.closeLarge, size: 16, color: theme.grey, onPressed: widget.onClosePressed), + Spacer(), + ColorShiftIconBtn(StyledIcons.edit, + size: 22, color: theme.accent1Dark, onPressed: () => widget.onEditPressed(null)), + ]).padding(horizontal: Insets.l), + + /// CONTENT STACK + + ValueListenableBuilder( + valueListenable: opacityNotifier, + builder: (_, value, __) => AnimatedOpacity( + opacity: value, + duration: (value == 0 ? 0 : .35).seconds, + child: StyledScrollView( + child: Column( + + children: [ + VSpace(2), + /// HEADER CARD + ContactInfoHeaderCard(), + VSpace(Insets.l), + + + /// INFO & SOCIAL + _DetailsAndSocialTabView( + onEditPressed: widget.onEditPressed, + ), + ], + ).padding(horizontal: Insets.l), + ), + ), + ).flexible(), + + + ], + ); + }, + ); + } +} + +class _DetailsAndSocialTabView extends StatefulWidget { + final Function(String) onEditPressed; + + const _DetailsAndSocialTabView({Key key, this.onEditPressed}) : super(key: key); + + @override + _DetailsAndSocialTabViewState createState() => _DetailsAndSocialTabViewState(); +} + +class _DetailsAndSocialTabViewState extends State<_DetailsAndSocialTabView> with SingleTickerProviderStateMixin { + TabController tabController; + + void _handleTabPressed(int i) { + AppModel appModel = context.read(); + setState(() => appModel.showSocialTabOnInfoView = i == 1); + } + + @override + void initState() { + //Lookup the starting tab index + int index = context.read().showSocialTabOnInfoView ? 1 : 0; + tabController = TabController(length: 2, vsync: this, initialIndex: index); + super.initState(); + } + + @override + Widget build(BuildContext context) { + // Use .select to bind to the AppModel when showSocialTabOnInfoView changes + int index = context.select((model) => model.showSocialTabOnInfoView) ? 1 : 0; + return Column( + children: [ + StyledTabBar( + index: index, + sections: ["DETAILS", "SOCIAL"], + onTabPressed: _handleTabPressed, + ), + IndexedStack( + index: index, + children: [ + ContactInfoDetailsCard(), + ContactInfoSocialCard(), + ], + ) + ], + ); + } +} diff --git a/flokk_src/lib/views/contact_info/contact_info_social_card.dart b/flokk_src/lib/views/contact_info/contact_info_social_card.dart new file mode 100644 index 0000000..719112b --- /dev/null +++ b/flokk_src/lib/views/contact_info/contact_info_social_card.dart @@ -0,0 +1,76 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/social_contact_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styled_components/social/git_item_renderer.dart'; +import 'package:flokk/styled_components/social/tweet_item_renderer.dart'; +import 'package:flokk/styled_components/styled_card.dart'; +import 'package:flokk/styled_components/styled_progress_spinner.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flokk/views/empty_states/placeholder_git.dart'; +import 'package:flokk/views/empty_states/placeholder_twitter.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactInfoSocialCard extends StatefulWidget { + const ContactInfoSocialCard({Key key}) : super(key: key); + + @override + _ContactInfoSocialCardState createState() => _ContactInfoSocialCardState(); +} + +class _ContactInfoSocialCardState extends State { + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + + /// /////////////////////////////////////////////// + /// Bind to provided contact + ContactData contact = context.watch(); + ContactsModel contactsModel = context.watch(); + bool isGitLoading = context.select((gm) => gm.isLoading); + bool isTwitterLoading = context.select((tm) => tm.isLoading); + SocialContactData social = contactsModel.getSocialById(contact.id); + + int maxItems = 30; + var gitItems = social?.gitEvents?.map((event) => GitEventListItem(event))?.take(maxItems)?.toList() ?? []; + var tweetItems = social?.tweets?.map((tweet) => TweetListItem(tweet))?.take(maxItems)?.toList() ?? []; + + //return Container(); + return Column( + children: [ + (isTwitterLoading + ? StyledCard(bgColor: theme.bg1, child: StyledProgressSpinner()) + : PlaceholderContentSwitcher( + hasContent: () => tweetItems.isNotEmpty, + placeholder: TwitterPlaceholder(contact: contact), + content: StyledListViewWithTitle( + bgColor: theme.bg1.withOpacity(.35), + listItems: tweetItems, + title: "TWITTER RECENT ACTIVITY", + ), + )) + .height(300), + VSpace(Insets.l), + (isGitLoading + ? StyledCard(bgColor: theme.bg1, child: StyledProgressSpinner()) + : PlaceholderContentSwitcher( + hasContent: () => gitItems.isNotEmpty, + placeholder: GitPlaceholder(contact: contact), + content: StyledListViewWithTitle( + bgColor: theme.bg1.withOpacity(.35), + listItems: gitItems, + title: "GITHUB RECENT ACTIVITY", + ), + )) + .height(300), + ], + ).padding(top: Insets.m * 1.5, bottom: Insets.l); + } +} diff --git a/flokk_src/lib/views/contact_page/bulk_contact_edit_bar.dart b/flokk_src/lib/views/contact_page/bulk_contact_edit_bar.dart new file mode 100644 index 0000000..1429c4a --- /dev/null +++ b/flokk_src/lib/views/contact_page/bulk_contact_edit_bar.dart @@ -0,0 +1,85 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/delete_contact_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_checkbox.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class BulkContactEditBar extends StatefulWidget { + final List checked; + final List all; + final Function() onCheckChanged; + + const BulkContactEditBar({Key key, this.checked, this.onCheckChanged, this.all}) : super(key: key); + + @override + _BulkContactEditBarState createState() => _BulkContactEditBarState(); +} + +class _BulkContactEditBarState extends State { + void _handleCheckChanged(bool value) { + if (value == true) { + widget.checked.clear(); + widget.checked.addAll(widget.all); + } else if (value == false) { + widget.checked.clear(); + } + widget.onCheckChanged?.call(); + } + + void _handleDeletePressed() async { + //Make a copy of the list, so it doesn't get cleared while the Command is still working + List usersToDelete = widget.checked.toList(); + await DeleteContactCommand(context).execute(usersToDelete, onDeleteConfirmed: () { + // For a nicer UI interaction, we want to clear the list immediately when the User has confirmed their delete intent. + widget.checked.clear(); + widget.onCheckChanged?.call(); + }); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + TextStyle linkStyle = TextStyles.Body2.textHeight(1.1).textColor(theme.accent1); + return StyledContainer( + theme.bg1, + height: 48, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + HSpace(Insets.l), + StyledCheckbox(value: _getValue(), onChanged: _handleCheckChanged), + HSpace(Insets.m), + Text("Select", style: TextStyles.H2.textHeight(1)), + HSpace(Insets.sm * 1.5), + TransparentTextBtn("All", style: linkStyle, onPressed: () => _handleCheckChanged(true)), + Text(" / ", style: linkStyle).translate(offset: Offset(-Insets.sm, 0)), + TransparentTextBtn("None", style: linkStyle, onPressed: () => _handleCheckChanged(false)) + .translate(offset: Offset(-Insets.sm * 2, 0)), + HSpace(Insets.m), +//TODO: Implement ManageLabels btn +// TransparentIconAndTextBtn("Manage Labels", StyledIcons.label, style: linkStyle), +// HSpace(Insets.m), + TransparentIconAndTextBtn("Delete", StyledIcons.trash, + style: linkStyle.textColor(theme.grey), onPressed: _handleDeletePressed, color: theme.grey), + Spacer(), + Text("${widget.checked.length} Selected", style: TextStyles.H2.textColor(theme.grey)), + HSpace(Insets.l), + ], + ), + ); + } + + bool _getValue() { + if (widget.checked.isEmpty) return false; + if (widget.checked.length == widget.all.length) return true; + return null; + } +} diff --git a/flokk_src/lib/views/contact_page/contacts_list_row.dart b/flokk_src/lib/views/contact_page/contacts_list_row.dart new file mode 100644 index 0000000..0000dc8 --- /dev/null +++ b/flokk_src/lib/views/contact_page/contacts_list_row.dart @@ -0,0 +1,250 @@ +import 'package:flokk/_internal/components/mouse_hover_builder.dart'; +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/widget_view.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/toggle_favorite_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/social/clickable_social_badges.dart'; +import 'package:flokk/styled_components/styled_checkbox.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactsListRow extends StatefulWidget { + final ContactData contact; + final bool oddRow; + final bool lastNameFirst; + final double parentWidth; + final bool isSelected; + final bool isChecked; + final bool isStarred; + final bool showDividers; + final ShapeBorder shape; + + ContactsListRow( + this.contact, { + Key key, + this.oddRow = false, + this.lastNameFirst = false, + this.parentWidth, + this.isSelected = false, + this.isChecked = false, + this.isStarred = false, + this.shape, + this.showDividers = true, + }) : super(key: key); + + @override + _ContactsListRowState createState() => _ContactsListRowState(); +} + +class _ContactsListRowState extends State { + void handleStarPressed() { + ToggleFavoriteCommand(context).execute(widget.contact); + setState(() {}); + } + + @override + Widget build(BuildContext context) => ContactListCardView(this); +} + +class ContactListCardView extends WidgetView { + const ContactListCardView(_ContactsListRowState state, {Key key}) : super(state, key: key); + + ContactData get contact => widget.contact; + + bool get headerMode => contact == null; + + void _handleRowPressed(BuildContext context) { + context.read().trySetSelectedContact(widget.contact); + } + + void _handleRowChecked(BuildContext context, bool value) { + context.read().setCheckedContact(widget.contact, value); + } + + @override + Widget build(BuildContext context) { + var theme = context.watch(); + Color bgColor = headerMode ? Colors.transparent : theme.surface; + if (widget.isSelected) { + bgColor = theme.greyWeak.withOpacity(.35); + } + + double width = widget.parentWidth ?? context.widthPx; + int colCount = 1; + if (width > 450) colCount = 2; + if (width > 600) colCount = 3; + if (width > 1000) colCount = 4; + if (width > 1300) colCount = 5; + + TextStyle textStyle = !headerMode ? TextStyles.Body1.size(15) : TextStyles.H2.copyWith(color: theme.greyStrong); + Widget rowText(String value) => OneLineText(value, style: textStyle); + + Widget btn = BaseStyledBtn( + onPressed: headerMode ? null : () => _handleRowPressed(context), + bgColor: bgColor, + downColor: bgColor, + hoverColor: widget.isSelected ? bgColor : Colors.transparent, + shape: widget.shape ?? RoundedRectangleBorder(), + contentPadding: EdgeInsets.zero, + useBtnText: false, + child: Stack( + children: [ + /// DIVIDERS - Top and Bottom + if (!headerMode && widget.showDividers) Container(width: double.infinity, height: 1, color: theme.bg1), + if (headerMode) + Align( + alignment: Alignment.bottomLeft, + child: Container(width: double.infinity, height: 1, color: theme.grey.withOpacity(.6)), + ), + Row( + //mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + /// Name & ProfilePic + (headerMode + ? rowText("Name") + : _ProfileCheckboxWithLabels( + contact, + isChecked: state.widget.isChecked, + onChecked: (value) => _handleRowChecked(context, value), + )) + .constrained(minWidth: 300) + .expanded(flex: 20 * 100), + + /// Social Media + _FadingFlexContent( + isVisible: colCount > 1, + flex: 10, + child: headerMode ? rowText("Social") : ClickableSocialBadges(contact, showTimeSince: false), + ), + + /// Phone + _FadingFlexContent( + child: rowText(headerMode ? "Phone" : contact.firstPhone), + flex: 11, + isVisible: colCount > 2, + ), + + /// Email + _FadingFlexContent( + isVisible: colCount > 3, + flex: 16, + child: rowText(headerMode ? "Email" : contact.firstEmail), + ), + + /// COMPANY + _FadingFlexContent( + isVisible: colCount > 4, + flex: 16, + child: rowText(headerMode ? "Job / Company" : contact.jobCompany), + ), + + //SizedBox(width: Insets.m), + /// Star Icon + if (!headerMode) + TransparentBtn( + bigMode: true, + onPressed: state.handleStarPressed, + child: StyledImageIcon( + widget.contact.isStarred ? StyledIcons.starFilled : StyledIcons.starEmpty, + color: widget.contact.isStarred ? theme.accent1Dark : theme.greyWeak, + ).opacity(headerMode ? 0 : 1), + ) + ], + ).padding( + left: headerMode ? 0 : Insets.m, + right: Insets.m * 1.5, + vertical: Insets.sm, + ) + ], + ), + ); + return btn; + } +} + +class _ProfileCheckboxWithLabels extends StatefulWidget { + final Function(bool) onChecked; + final ContactData contact; + final bool isChecked; + + const _ProfileCheckboxWithLabels(this.contact, {Key key, this.onChecked, this.isChecked}) : super(key: key); + + @override + _ProfileCheckboxWithLabelsState createState() => _ProfileCheckboxWithLabelsState(); +} + +class _ProfileCheckboxWithLabelsState extends State<_ProfileCheckboxWithLabels> { + @override + Widget build(BuildContext context) { + double size = 42; + return Row( + children: [ + MouseHoverBuilder( + builder: (_, isHovering) { + bool showCheckbox = isHovering || widget.isChecked; + return IndexedStack( + index: showCheckbox ? 0 : 1, + children: [ + _buildCheckbox(size), + StyledUserAvatar(size: size, contact: widget.contact), + ], + ); + }, + ).gestures(onTapUp: (d) => widget.onChecked(!widget.isChecked), behavior: HitTestBehavior.opaque), + SizedBox(width: Insets.m), + OneLineText(widget.contact.nameFull, style: TextStyles.Body1.size(15)).expanded(), + ], + ); + } + + Widget _buildCheckbox(double size) { + return Container( + width: size, + height: size, + alignment: Alignment.center, + child: StyledCheckbox(size: 18, value: widget.isChecked), + ); + } +} + +class _FadingFlexContent extends StatelessWidget { + final Widget child; + final int flex; + final bool isVisible; + final bool enableAnimations; + + const _FadingFlexContent({Key key, this.child, this.flex, this.isVisible = true, this.enableAnimations = true}) + : super(key: key); + + @override + Widget build(BuildContext context) { + if (isVisible == false) return Container(); + int targetFlex = 1 + flex * 100; + if (enableAnimations) { + return TweenAnimationBuilder( + curve: !isVisible ? Curves.easeOut : Curves.easeIn, + tween: Tween(begin: isVisible ? 1 : 0, end: isVisible ? 1 : 0), + duration: (isVisible ? .5 : .2).seconds, + builder: (_, value, child) { + if (value == 0 && !isVisible) return Container(); + return child.opacity(value).expanded(flex: (targetFlex * value).round()); +// + }, + child: Container(child: child, alignment: Alignment.centerLeft)); + } + + return Container( + child: child, + alignment: Alignment.centerLeft, + ).expanded(flex: targetFlex); + } +} diff --git a/flokk_src/lib/views/contact_page/contacts_list_with_headers.dart b/flokk_src/lib/views/contact_page/contacts_list_with_headers.dart new file mode 100644 index 0000000..6de1882 --- /dev/null +++ b/flokk_src/lib/views/contact_page/contacts_list_with_headers.dart @@ -0,0 +1,133 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_page/bulk_contact_edit_bar.dart'; +import 'package:flokk/views/contact_page/contacts_list_row.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:tuple/tuple.dart'; + +class ContactsListWithHeaders extends StatefulWidget { + final List contacts; + final List checkedContacts; + final ContactData selectedContact; + final ContactOrderBy orderBy; + final bool orderDesc; + final bool searchMode; + final bool showHeaders; + + const ContactsListWithHeaders({ + Key key, + this.contacts, + this.orderBy, + this.orderDesc, + this.showHeaders, + this.checkedContacts, + this.selectedContact, + this.searchMode, + }) : super(key: key); + + @override + _ContactsListWithHeadersState createState() => _ContactsListWithHeadersState(); +} + +class _ContactsListWithHeadersState extends State { + bool orderDesc = false; + + List get checked => widget.checkedContacts; + + bool _getIsChecked(String id) { + if (id == null) return false; + ContactData c = widget.checkedContacts?.firstWhere((_c) => _c.id == id, orElse: () => null); + return c != null; + } + + Tuple2, int> getSortedContactsWithFavoriteCount() { + List starred = widget.contacts.toList()..removeWhere((element) => !element.isStarred); + int starCount = starred.length; + List nonStarred = widget.contacts.toList()..removeWhere((element) => element.isStarred); + return Tuple2(starred..addAll({...nonStarred}), starCount); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return LayoutBuilder( + builder: (_, constraints) { + Tuple2, int> contactsWithFavCount = getSortedContactsWithFavoriteCount(); + List contacts = contactsWithFavCount.item1; + int favCount = contactsWithFavCount.item2; + + return Stack( + children: [ + /// //////////////////////////////////////// + /// LIST / HEADER COLUMN + Column( + children: [ + /// Header: Pass a null contact, the renderer will switch to header mode + ContactsListRow(null, parentWidth: constraints.maxWidth) + .constrained(height: 48) + .padding(right: Insets.lGutter - Insets.sm), + + /// List + StyledListView( + itemExtent: 78, + itemCount: widget.contacts.length + (favCount == 0 || favCount == widget.contacts.length ? 1 : 2), + itemBuilder: (context, i) { + /// Inject 1 or 2 header rows into the results + bool isFirstHeader = i == 0; + bool isSecondHeader = i == favCount + 1 && favCount != 0; + if (isFirstHeader || (isSecondHeader && !widget.searchMode)) { + String headerText = "SEARCH RESULTS"; + int count = contacts.length; + if (!widget.searchMode) { + bool isFavorite = i == 0 && favCount > 0; + headerText = isFavorite ? "FAVORITE CONTACTS" : "OTHER CONTACTS"; + count = isFavorite ? favCount : contacts.length - favCount; + } + /// Header text + return Container( + child: Text("$headerText ($count)", style: TextStyles.T1.textColor(theme.accent1Dark)), + alignment: Alignment.bottomLeft, + margin: EdgeInsets.only(bottom: Insets.l + 4), + ); + } + // Regular Row + else { + //Because the list is 2 items longer + int offset = i <= favCount || favCount == 0 ? 1 : 2; + ContactData c = contacts[i - offset]; + return ContactsListRow( + c, + key: ValueKey(c.id), + // Pass our width into the renderers as an optimization, so they don't need to calculate their own + parentWidth: constraints.maxWidth, + isSelected: c.id == widget.selectedContact?.id, + isChecked: _getIsChecked(c.id), + ); + } + }, + ).expanded(), + ], + ), + + /// //////////////////////////////////////// + /// BULK CONTROLS + BulkContactEditBar( + checked: checked, + all: context.read().allContacts, + onCheckChanged: () => setState(() {}), + ) + .opacity(checked.isEmpty ? 0 : 1, animate: true) + .scale(checked.isEmpty ? .98 : 1, animate: true) + .translate(offset: Offset(0, checked.isEmpty ? -4 : 0), animate: true) + .animate(.1.seconds, Curves.easeOut) + ], + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/contact_page/contacts_page.dart b/flokk_src/lib/views/contact_page/contacts_page.dart new file mode 100644 index 0000000..b552d5d --- /dev/null +++ b/flokk_src/lib/views/contact_page/contacts_page.dart @@ -0,0 +1,78 @@ +import 'package:flokk/_internal/components/listenable_builder.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/widget_view.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/contact_page/contacts_list_with_headers.dart'; +import 'package:flokk/views/empty_states/placeholder_contact_list.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flokk/views/search/search_engine.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactsPage extends StatefulWidget { + final SearchEngine searchEngine; + final List checkedContacts; + final ContactData selectedContact; + + const ContactsPage({Key key, this.searchEngine, this.checkedContacts, this.selectedContact}) : super(key: key); + + @override + ContactsPageState createState() => ContactsPageState(); +} + +class ContactsPageState extends State { + Future handleRefreshTriggered() async => await RefreshContactsCommand(context).execute(); + + @override + Widget build(BuildContext context) => _ContactsPageView(this); +} + +class _ContactsPageView extends WidgetView { + _ContactsPageView(ContactsPageState state) : super(state); + + @override + Widget build(BuildContext context) { + context.watch(); + return Stack( + alignment: Alignment.center, + children: [ + Column(children: [ + VSpace(Insets.sm), + + /// Bind to SearchEngine + ListenableBuilder( + listenable: widget.searchEngine, + builder: (_, __) { + /// Filter active contacts using the search engine provided + List sorted = widget.searchEngine.getResults(); + + /// Wrap content in PlaceholderSwitcher, which will handle empty results + return PlaceholderContentSwitcher( + hasContent: () => sorted.isNotEmpty, + placeholder: ContactListPlaceholder(isSearching: widget.searchEngine.hasQuery), + showOutline: false, + placeholderPadding: EdgeInsets.only(top: Insets.m * 1.5, right: Insets.m, bottom: Insets.m), + + /// ContactList + content: ContactsListWithHeaders( + contacts: sorted, + // Indicate to page that it should show search-results formatting + searchMode: widget.searchEngine.hasQuery, + selectedContact: widget.selectedContact, + checkedContacts: widget.checkedContacts, + orderBy: widget.searchEngine.orderBy, + orderDesc: widget.searchEngine.orderDesc, + ), + ); + }, + ).expanded(), + VSpace(Insets.m), + ]), + ], + ); + } +} diff --git a/flokk_src/lib/views/dashboard_page/dashboard_page.dart b/flokk_src/lib/views/dashboard_page/dashboard_page.dart new file mode 100644 index 0000000..19b79ea --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/dashboard_page.dart @@ -0,0 +1,39 @@ +import 'package:flokk/_internal/components/scrolling_flex_view.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/dashboard_page/dates/important_dates_section.dart'; +import 'package:flokk/views/dashboard_page/social/social_activities_section.dart'; +import 'package:flokk/views/dashboard_page/top/top_contacts_section.dart'; +import 'package:flutter/material.dart'; + +class DashboardPage extends StatefulWidget { + final ContactData selectedContact; + + const DashboardPage({Key key, this.selectedContact}) : super(key: key); + + @override + DashboardPageState createState() => DashboardPageState(); +} + +class DashboardPageState extends State { + @override + Widget build(BuildContext context) { + return ConstrainedFlexView(850, + scrollPadding: EdgeInsets.only(right: Insets.m), + child: Column( + children: [ + SizedBox(height: Insets.l), + TopContactsSection(), + VSpace(Insets.m), + SocialActivitySection().padding(horizontal: Insets.lGutter).flexible(), + SizedBox(height: Insets.l * 1.5), + RepaintBoundary( + child: UpcomingActivitiesSection().height(170).padding(horizontal: Insets.lGutter), + ), + SizedBox(height: Insets.l), + ], + )); + } +} diff --git a/flokk_src/lib/views/dashboard_page/dates/important_date_card.dart b/flokk_src/lib/views/dashboard_page/dates/important_date_card.dart new file mode 100644 index 0000000..b306745 --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/dates/important_date_card.dart @@ -0,0 +1,63 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/styled_card.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:intl/intl.dart'; +import 'package:provider/provider.dart'; + +class ImportantEventCard extends StatelessWidget { + const ImportantEventCard(this.contact, this.event, {Key key}) : super(key: key); + + static DateFormat get monthDayFmt => DateFormat("MMMMEEEEd"); + + final ContactData contact; + final DateMixin event; + + bool get isBirthday => event is BirthdayData; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + TextStyle cardContentText = TextStyles.H2.textColor(theme.txt); + Color eventColor = isBirthday ? theme.accent3 : theme.accent2; + + return TransparentBtn( + onPressed: () => context.read().trySetSelectedContact(contact, showSocial: false), + borderRadius: Corners.s8, + contentPadding: EdgeInsets.zero, + child: StyledCard( + align: Alignment.center, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + HSpace(Insets.m), + StyledUserAvatar(contact: contact, size: 40), + HSpace(Insets.sm), + Text(contact.nameFull, style: cardContentText), + Spacer(), + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Spacer(), + OneLineText(event.getType(), style: cardContentText.textColor(eventColor)), + VSpace(Insets.sm), + OneLineText(monthDayFmt.format(event.date), style: cardContentText), + Spacer(), + ], + ).width(110), + HSpace(Insets.m), + //Text(cWithD.item2.date.toString()), + ], + ).padding(all: Insets.sm), + ).height(54), + ); + } +} diff --git a/flokk_src/lib/views/dashboard_page/dates/important_dates_section.dart b/flokk_src/lib/views/dashboard_page/dates/important_dates_section.dart new file mode 100644 index 0000000..217ebbb --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/dates/important_dates_section.dart @@ -0,0 +1,56 @@ +import 'dart:math'; + +import 'package:flokk/_internal/components/simple_grid.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/dashboard_page/dates/important_date_card.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flokk/views/empty_states/placeholder_important_dates.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:provider/provider.dart'; +import 'package:tuple/tuple.dart'; + +class UpcomingActivitiesSection extends StatelessWidget { + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + ContactsModel contactsModel = context.watch(); + List> contactsWithDate = contactsModel.upcomingDateContacts; + TextStyle headerStyle = TextStyles.T1; + + /// Create list of ItemRenderers + List kids = contactsWithDate.map((cWithD) => ImportantEventCard(cWithD.item1, cWithD.item2)).toList(); + + /// Build list + return LayoutBuilder( + builder: (_, constraints) { + int colCount = max(1, (constraints.maxWidth / 320).floor()); + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("UPCOMING IMPORTANT DATES", style: headerStyle.textColor(theme.accent1Darker)), + VSpace(Insets.l * .75), + PlaceholderContentSwitcher( + hasContent: () => kids.isNotEmpty, + placeholder: ImportantDatesPlaceholder(), + content: SingleChildScrollView( + child: SimpleGrid( + kidHeight: 54, + kids: kids, + colCount: colCount, + hSpace: Insets.m * 1.5, + vSpace: Insets.l * .75, + ), + ), + ).flexible(), + ], + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/dashboard_page/social/responsive_double_list.dart b/flokk_src/lib/views/dashboard_page/social/responsive_double_list.dart new file mode 100644 index 0000000..b035148 --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/social/responsive_double_list.dart @@ -0,0 +1,83 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/dashboard_page/social/tabbed_list_view.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flutter/material.dart'; + +/// This Widget displays 2 lists in either a dual-column mode or a combined tabbed-view +class ResponsiveDoubleList extends StatefulWidget { + final bool useTabView; + + final List list1; + final String list1Title; + + final List list2; + final String list2Title; + + final Widget list1Placeholder; + final Widget list2Placeholder; + + final AssetImage list1Icon; + final AssetImage list2Icon; + + const ResponsiveDoubleList( + {Key key, + @required this.list1, + @required this.list2, + @required this.list1Title = "", + @required this.list2Title = "", + @required this.list1Placeholder, + @required this.list2Placeholder, + @required this.useTabView, + @required this.list1Icon, + @required this.list2Icon}) + : super(key: key); + + @override + _ResponsiveDoubleListState createState() => _ResponsiveDoubleListState(); +} + +class _ResponsiveDoubleListState extends State { + int _selectedTabIndex = 0; + + void _handleSocialTabPressed(int index) { + print(index); + setState(() => _selectedTabIndex = index); + } + + @override + Widget build(BuildContext context) { + if (widget.useTabView) { + return TabbedListView( + index: _selectedTabIndex, + onTabPressed: _handleSocialTabPressed, + list1: widget.list1, + list1Placeholder: widget.list1Placeholder, + list1Title: widget.list1Title, + list1Icon: widget.list1Icon, + list2: widget.list2, + list2Placeholder: widget.list2Placeholder, + list2Title: widget.list2Title, + list2Icon: widget.list2Icon, + ); + } else { + return Row( + children: [ + PlaceholderContentSwitcher( + hasContent: () => widget.list1.isNotEmpty, + placeholder: widget.list1Placeholder, + content: StyledListViewWithTitle(listItems: widget.list1, title: widget.list1Title, icon: widget.list1Icon), + ).flexible(), + HSpace(Insets.l), + PlaceholderContentSwitcher( + hasContent: () => widget.list2.isNotEmpty, + placeholder: widget.list2Placeholder, + content: StyledListViewWithTitle(listItems: widget.list2, title: widget.list2Title, icon: widget.list2Icon), + ).flexible(), + ], + ); + } + } +} diff --git a/flokk_src/lib/views/dashboard_page/social/social_activities_section.dart b/flokk_src/lib/views/dashboard_page/social/social_activities_section.dart new file mode 100644 index 0000000..ae27b19 --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/social/social_activities_section.dart @@ -0,0 +1,139 @@ +import 'package:flokk/_internal/components/fading_index_stack.dart'; +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/github_model.dart'; +import 'package:flokk/models/twitter_model.dart'; +import 'package:flokk/styled_components/social/git_item_renderer.dart'; +import 'package:flokk/styled_components/social/tweet_item_renderer.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_tab_bar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/dashboard_page/social/responsive_double_list.dart'; +import 'package:flokk/views/empty_states/placeholder_git.dart'; +import 'package:flokk/views/empty_states/placeholder_twitter.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SocialActivitySection extends StatefulWidget { + @override + _SocialActivitySectionState createState() => _SocialActivitySectionState(); +} + +class _SocialActivitySectionState extends State { + void _handleTabPressed(int index) { + if (index == 0) context.read().dashSocialSection = DashboardSocialSectionType.All; + if (index == 1) context.read().dashSocialSection = DashboardSocialSectionType.Twitter; + if (index == 2) context.read().dashSocialSection = DashboardSocialSectionType.Git; + context.read().scheduleSave(); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + GithubModel gitModel = context.watch(); + TwitterModel twitterModel = context.watch(); + return LayoutBuilder( + builder: (_, constraints) { + /// Responsively size tab bars + double tabWidth = constraints.maxWidth < PageBreaks.LargePhone ? 240 : 280; + TextStyle headerStyle = TextStyles.T1; + + bool useTabView = constraints.maxWidth < PageBreaks.TabletPortrait - 100; + + /// Determine which tab should be selected + var sectionType = context.select((model) => model.dashSocialSection); + int tabIndex = 0; + if (sectionType == DashboardSocialSectionType.Twitter) tabIndex = 1; + if (sectionType == DashboardSocialSectionType.Git) tabIndex = 2; + + /// Get the 2 lists that should be displayed + int maxItems = 20; + List list1; + String list1Title = ""; + List list2; + String list2Title = ""; + Widget list1Placeholder; + Widget list2Placeholder; + AssetImage icon1; + AssetImage icon2; + + // ALL + if (sectionType == DashboardSocialSectionType.All) { + list1Title = "TWITTER RECENT ACTIVITY"; + list1 = twitterModel.allTweets.map((tweet) => TweetListItem(tweet)).take(maxItems).toList(); + list1Placeholder = TwitterPlaceholder(); + icon1 = StyledIcons.twitterActive; + list2Title = "GITHUB RECENT ACTIVITY"; + list2 = gitModel.allEvents.map((event) => GitEventListItem(event)).take(maxItems).toList(); + list2Placeholder = GitPlaceholder(); + icon2 = StyledIcons.githubActive; + } + // GITHUB + else if (sectionType == DashboardSocialSectionType.Git) { + list1Title = "GITHUB RECENT ACTIVITY"; + list1Placeholder = GitPlaceholder(); + list1 = gitModel.allEvents.map((event) => GitEventListItem(event)).take(maxItems).toList(); + icon1 = StyledIcons.githubActive; + list2Title = "TRENDING REPOSITORIES"; + list2Placeholder = GitPlaceholder(isTrending: true); + list2 = gitModel.popularRepos.map((repo) => GitRepoListItem(repo)).take(maxItems).toList(); + icon2 = StyledIcons.githubActive; + } + // TWITTER + else if (sectionType == DashboardSocialSectionType.Twitter) { + list1 = twitterModel.allTweets.map((e) => TweetListItem(e)).take(maxItems).toList(); + list1Placeholder = TwitterPlaceholder(); + list1Title = "TWITTER RECENT ACTIVITY"; + icon1 = StyledIcons.twitterActive; + list2 = twitterModel.popularTweets.map((e) => TweetListItem(e)).take(maxItems).toList(); + list2Placeholder = TwitterPlaceholder(isPopular: true); + list2Title = "POPULAR TWEETS"; + icon2 = StyledIcons.twitterActive; + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + OneLineText("SOCIAL ACTIVITIES", style: headerStyle.textColor(theme.accent1Darker)).flexible(), + StyledTabBar( + index: tabIndex, + sections: ["All", "Twitter", "GitHub"], + onTabPressed: _handleTabPressed, + ).constrained(maxWidth: tabWidth, animate: true).animate(Durations.medium, Curves.easeOut), + ], + ), + VSpace(Insets.l * .75), + FadingIndexedStack( + index: tabIndex, + duration: Durations.fastest, + children: [ + /// This looks weird, but it's really pretty robust / elegant + /// Create 3 children, only the child that matches tabIndex will get the latest data, the previous index will fadeout while retaining it's old state. + /// Doing it this way preserves scroll position & state for all tabs + ...List.generate(3, (index) { + return ResponsiveDoubleList( + list1: list1, + list1Title: list1Title, + list2: list2, + list2Title: list2Title, + list1Placeholder: list1Placeholder, + list2Placeholder: list2Placeholder, + useTabView: useTabView, + list1Icon: icon1, + list2Icon: icon2, + ); + }), + ], + ).expanded(), + ], + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/dashboard_page/social/tabbed_list_view.dart b/flokk_src/lib/views/dashboard_page/social/tabbed_list_view.dart new file mode 100644 index 0000000..b5aa56d --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/social/tabbed_list_view.dart @@ -0,0 +1,194 @@ +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/social_activity_type.dart'; +import 'package:flokk/styled_components/buttons/base_styled_button.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class TabbedListView extends StatelessWidget { + final List list1; + final String list1Title; + + final List list2; + final String list2Title; + + final Widget list1Placeholder; + final Widget list2Placeholder; + final AssetImage list1Icon; + final AssetImage list2Icon; + + final void Function(int) onTabPressed; + + final int index; + + const TabbedListView( + {Key key, + @required this.list1, + @required this.list1Title, + @required this.list2, + @required this.list2Title, + this.list1Placeholder, + this.list2Placeholder, + this.index = 0, + this.onTabPressed, this.list1Icon, this.list2Icon}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double barHeight = 40; + + ShapeDecoration buildTabDec(bool isBg) { + return ShapeDecoration( + shape: TabBorder(selectedTab: isBg ? null : index, barHeight: barHeight), + color: isBg ? theme.surface : ColorUtils.blend(theme.bg1, theme.bg2, .35), + shadows: isBg ? Shadows.m(theme.accent1) : null, + ); + } + + bool firstSelected = index == 0; + + return Stack( + children: [ + /// Tab Bg + Container(decoration: buildTabDec(true), foregroundDecoration: buildTabDec(false)), + + /// Top Row of Btns + Row( + children: [ + Container( + child: _TransparentTabBtn( + title: list1Title, + icon: list1Icon, + isSelected: firstSelected, + height: barHeight, + type: SocialActivityType.Git, + onPressed: () => onTabPressed?.call(0), + ), + ).expanded(), + Container( + child: _TransparentTabBtn( + title: list2Title, + icon: list2Icon, + isSelected: !firstSelected, + height: barHeight, + type: SocialActivityType.Twitter, + onPressed: () => onTabPressed?.call(1), + ), + ).expanded(), + ], + ).height(barHeight), + + /// Content + Container( + child: Container( + margin: EdgeInsets.all(Insets.l).copyWith(right: Insets.m, top: Insets.m * 1.5), + child: PlaceholderContentSwitcher( + hasContent: () => firstSelected ? list1.isNotEmpty : list2.isNotEmpty, + placeholderPadding: EdgeInsets.only(right: Insets.m), + placeholder: (firstSelected ? list1Placeholder : list2Placeholder) ?? Container(), + content: StyledListView( + itemCount: firstSelected ? list1.length : list2.length, + itemBuilder: (_, i) => firstSelected ? list1[i] : list2[i], + ), + ), + ), + ).positioned(top: barHeight, bottom: 0, left: 0, right: 0), + ], + ); + } +} + +class _TransparentTabBtn extends StatelessWidget { + final bool isSelected; + final SocialActivityType type; + final void Function() onPressed; + final double height; + final String title; + final AssetImage icon; + + const _TransparentTabBtn({Key key, this.isSelected = false, this.type, this.onPressed, this.height, this.title, this.icon}) + : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color color = isSelected ? theme.accent1Darker : theme.grey; + TextStyle titleStyle = TextStyles.T2.textColor(color); + return BaseStyledBtn( + contentPadding: EdgeInsets.zero, + bgColor: Colors.transparent, + downColor: Colors.transparent, + hoverColor: Colors.transparent, + onPressed: isSelected ? null : onPressed, + child: Row( + children: [ + HSpace(Insets.m * 1.5), + StyledImageIcon(icon, color: color, size: 26), + HSpace(Insets.sm), + OneLineText(title, style: titleStyle).flexible(), + ], + ), + ).height(height); + } +} + +class TabBorder extends ShapeBorder { + final int selectedTab; + final double barHeight; + + TabBorder({this.selectedTab, this.barHeight}); + + @override + EdgeInsetsGeometry get dimensions => EdgeInsets.zero; + + @override + Path getInnerPath(Rect rect, {TextDirection textDirection}) => null; + + @override + Path getOuterPath(Rect rect, {TextDirection textDirection}) { + var radius = Radius.circular(8); + + void drawBody(Path p) { + Rect tabRect = Rect.fromLTWH(rect.left, rect.top + barHeight, rect.width, rect.height - barHeight); + p.addRRect(RRect.fromRectAndCorners(tabRect, + topLeft: Radius.zero, bottomLeft: radius, topRight: Radius.zero, bottomRight: radius)); + } + + void drawTab(Path p, bool rightSide) { + double xPos = rightSide ? rect.width * .5 : 0; + Rect tabRect = Rect.fromLTWH(rect.left + xPos, rect.top, rect.width * .5, barHeight); + p.addRRect(RRect.fromRectAndCorners(tabRect, + topLeft: radius, bottomLeft: Radius.zero, topRight: radius, bottomRight: Radius.zero)); + } + + //Bg mode draws 2 tabs and a body section. Otherwise, just the un-selected tab is drawn. + bool bgMode = selectedTab == null; + Path path = Path(); + //Draw Left side? + if (bgMode || selectedTab == 1) { + drawTab(path, false); + } + //Draw Right Side? + if (bgMode || selectedTab == 0) { + drawTab(path, true); + } + if (bgMode) { + drawBody(path); + } + return path; + } + + @override + void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {} + + @override + ShapeBorder scale(double t) => this; +} diff --git a/flokk_src/lib/views/dashboard_page/top/small_contact_card.dart b/flokk_src/lib/views/dashboard_page/top/small_contact_card.dart new file mode 100644 index 0000000..08efd0d --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/top/small_contact_card.dart @@ -0,0 +1,55 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/social/clickable_social_badges.dart'; +import 'package:flokk/styled_components/styled_card.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SmallContactCard extends StatelessWidget { + + static const double cardWidth = 162; + + final ContactData contact; + + const SmallContactCard(this.contact, {Key key}) : super(key: key); + + void _handleCardPressed(BuildContext c) => + c.read().trySetSelectedContact(contact, showSocial: false); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + Color txtColor = theme.isDark ? Colors.white : Colors.black; + return StyledCard( + onPressed: () => _handleCardPressed(context), + child: Container( + margin: EdgeInsets.all(Insets.m), + width: cardWidth - Insets.m * 2, + child: Column( + children: [ + StyledUserAvatar(contact: contact, size: 60), + VSpace(Insets.m), + Text( + contact?.nameFull ?? "", + maxLines: 2, + overflow: TextOverflow.fade, + style: TextStyles.H2.textHeight(1.3).textColor(txtColor).regular, + textAlign: TextAlign.center, + ).center().height(30), + Spacer(), + ClickableSocialBadges(contact, showTimeSince: true), + ], + ), + ), + ).padding( + right: Insets.m * 1.75, + vertical: Insets.m, + ); + } +} diff --git a/flokk_src/lib/views/dashboard_page/top/top_contacts_section.dart b/flokk_src/lib/views/dashboard_page/top/top_contacts_section.dart new file mode 100644 index 0000000..7068dbe --- /dev/null +++ b/flokk_src/lib/views/dashboard_page/top/top_contacts_section.dart @@ -0,0 +1,117 @@ +import 'package:flokk/_internal/components/fading_index_stack.dart'; +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styled_components/scrolling/styled_listview.dart'; +import 'package:flokk/styled_components/styled_tab_bar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/dashboard_page/top/small_contact_card.dart'; +import 'package:flokk/views/empty_states/placeholder_content_switcher.dart'; +import 'package:flokk/views/empty_states/placeholder_top_contacts.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class TopContactsSection extends StatefulWidget { + const TopContactsSection({Key key}) : super(key: key); + + @override + _TopContactsSectionState createState() => _TopContactsSectionState(); +} + +class _TopContactsSectionState extends State { + void _handleTabPressed(int index) { + context.read().dashContactsSection = + index == 0 ? DashboardContactsSectionType.Favorites : DashboardContactsSectionType.RecentlyActive; + context.read().scheduleSave(); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + ContactsModel contactsModel = context.watch(); + + /// Bind to section type on AppModel + var sectionType = context.select((model) => model.dashContactsSection); + int tabIndex = 0; + if (sectionType == DashboardContactsSectionType.RecentlyActive) { + tabIndex = 1; + } + + /// Use a layout builder so we can size this view responsively when the panel slides out + return LayoutBuilder( + builder: (_, constraints) { + List contacts = sectionType == DashboardContactsSectionType.Favorites + ? contactsModel.starred + : contactsModel.mostRecentSocialContacts.map((e) => e.contact).toList(); + double tabWidth = constraints.maxWidth < PageBreaks.LargePhone ? 240 : 280; + TextStyle headerStyle = TextStyles.T1; + double cardHeight = 208; + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + OneLineText("CONTACTS", style: headerStyle.textColor(theme.accent1Darker)).flexible(), + StyledTabBar( + index: tabIndex, + sections: ["Favorites", "Recently Active"], + onTabPressed: _handleTabPressed, + ).constrained(maxWidth: tabWidth, animate: true).animate(Durations.medium, Curves.easeOut), + ], + ).padding(horizontal: Insets.lGutter), + VSpace(Insets.sm), + + /// Fading Stack to hold the 2 lists + FadingIndexedStack( + index: tabIndex, + children: [ + _ContactCardList(this, contacts: contacts, placeholder: TopContactsPlaceholder()), + _ContactCardList(this, contacts: contacts, placeholder: TopContactsPlaceholder(isRecent: true)), + ], + ).height(cardHeight + Insets.m * 2), + ], + ); + }, + ); + } +} + +class _ContactCardList extends StatelessWidget { + final _TopContactsSectionState state; + final List contacts; + final Widget placeholder; + + const _ContactCardList(this.state, {Key key, this.contacts, this.placeholder}) : super(key: key); + + @override + Widget build(BuildContext context) { + /// Create list of item renderers + List contactCards = contacts.map((c) => SmallContactCard(c)).toList(); + + /// Layout content + EdgeInsets padding = EdgeInsets.symmetric(horizontal: Insets.l, vertical: Insets.m); + // Placeholder content-box + return PlaceholderContentSwitcher( + hasContent: () => contacts.isNotEmpty, + placeholder: placeholder, + placeholderPadding: padding, + content: StyledListView( + axis: Axis.horizontal, + itemCount: contacts.length, + itemExtent: SmallContactCard.cardWidth, + padding: EdgeInsets.only(left: Insets.l), + scrollbarPadding: EdgeInsets.only(left: Insets.m, right: Insets.sm), + barSize: 6, + itemBuilder: (_, index) => SmallContactCard(contacts[index]), + //itemExtent: itemSize, + )); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_contact_list.dart b/flokk_src/lib/views/empty_states/placeholder_contact_list.dart new file mode 100644 index 0000000..edfe7ce --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_contact_list.dart @@ -0,0 +1,37 @@ + +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class ContactListPlaceholder extends StatelessWidget { + final bool isSearching; + + const ContactListPlaceholder({Key key, this.isSearching = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + var bgImage = Image.asset("assets/images/empty-noresult-bg@2x.png", height: 108, color: theme.bg2) + .translate(offset: Offset(8, 2)); + return Column(mainAxisAlignment: MainAxisAlignment.center, children: [ + PlaceholderImageAndBgStack("noresult-owl", bgWidget: bgImage, height: 126, top: 15, left: -30), + VSpace(Insets.l), + isSearching + ? EmptyStateTitleAndClickableText( + title: "NO RESULTS IN YOUR CONTACTS", + startText: "We couldn't find any results that matched your search.\nPlease try another search.", + ) + : EmptyStateTitleAndClickableText( + onPressed: () => showContactPage(context), + title: "NO CONTACTS YET", + startText: "", + linkText: "Create Contacts", + endText: " to get started!", + ) + ]); + } +} \ No newline at end of file diff --git a/flokk_src/lib/views/empty_states/placeholder_content_switcher.dart b/flokk_src/lib/views/empty_states/placeholder_content_switcher.dart new file mode 100644 index 0000000..ac5774c --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_content_switcher.dart @@ -0,0 +1,52 @@ +import 'package:dotted_border/dotted_border.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +export 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; + +typedef bool HasContentCallback(); + +/// [PlaceholderContentSwitcher] Takes content and a placeholder, and swaps between them depending on the results of the hasContent delegate. +class PlaceholderContentSwitcher extends StatelessWidget { + final bool showOutline; + final Widget placeholder; + final Widget content; + final HasContentCallback hasContent; + final EdgeInsets placeholderPadding; + + const PlaceholderContentSwitcher( + {Key key, + this.showOutline = true, + @required this.placeholder, + @required this.content, + @required this.hasContent, + this.placeholderPadding = EdgeInsets.zero}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return Stack( + fit: StackFit.expand, + children: [ + hasContent()? content : _buildPlaceholder(context), + ], + ); + } + + _buildPlaceholder(BuildContext context) { + AppTheme theme = context.watch(); + return Container( + alignment: Alignment.center, + margin: placeholderPadding, + child: showOutline + ? DottedBorder( + dashPattern: [2, 4], + color: theme.greyWeak.withOpacity(.7), + borderType: BorderType.RRect, + radius: Corners.s8Radius, + child: Center(child: placeholder)) + : placeholder); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_git.dart b/flokk_src/lib/views/empty_states/placeholder_git.dart new file mode 100644 index 0000000..5be0a9c --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_git.dart @@ -0,0 +1,41 @@ + +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; +import 'package:flutter/material.dart'; + +class GitPlaceholder extends StatelessWidget { + final bool isTrending; + + // If contact is set, this widget will act as if it belongs to a single contact + final ContactData contact; + + const GitPlaceholder({Key key, this.isTrending = false, this.contact}) : super(key: key); + + void _handleLinkPressed(BuildContext context) { + //If in single-contact mode, try and edit the selected contact + if (contact != null) { + showSocial(context, ContactSectionType.github); + } + // Try and move to ContactList page + else { + showContactPage(context); + } + } + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (_, constraints) => Column(mainAxisAlignment: MainAxisAlignment.center, children: [ + if (constraints.maxHeight > 250) PlaceholderImageAndBgStack("dashboard-github", height: 126, top: 43, left: -30), + EmptyStateTitleAndClickableText( + title: isTrending ? "NO TRENDING REPOS" : "NO GITHUB ACTIVITY", + startText: contact == null ? "Add GitHub ID in " : "Add ", + linkText: contact == null ? "contacts" : "GitHub ID", + endText: " to show ${isTrending ? "trending repos" : "recent activity"}", + onPressed: () => _handleLinkPressed(context), + ), + ]), + ); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_important_dates.dart b/flokk_src/lib/views/empty_states/placeholder_important_dates.dart new file mode 100644 index 0000000..3d6f47b --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_important_dates.dart @@ -0,0 +1,19 @@ +import 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; +import 'package:flutter/material.dart'; + +class ImportantDatesPlaceholder extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + EmptyStateTitleAndClickableText( + title: "NO UPCOMING IMPORTANT DATES", + startText: "Add birthdays/special dates to your ", + linkText: "contacts", + onPressed: ()=>showContactPage(context), + ), + ], + ); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_top_contacts.dart b/flokk_src/lib/views/empty_states/placeholder_top_contacts.dart new file mode 100644 index 0000000..17a4dd0 --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_top_contacts.dart @@ -0,0 +1,43 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; + +class TopContactsPlaceholder extends StatelessWidget { + final bool isRecent; + + const TopContactsPlaceholder({Key key, this.isRecent = false}) : super(key: key); + + + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (_, constraints) { + bool showImage = constraints.maxWidth > 500; + return Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (showImage) ...{ + isRecent + ? PlaceholderImageAndBgStack("dashboard-recentActive", height: 157, top: 2) + : PlaceholderImageAndBgStack("dashboard-favorites", height: 126, top: 22), + HSpace(Insets.xl), + }, + EmptyStateTitleAndClickableText( + title: isRecent ? "NO RECENT ACTIVITY" : "NO FAVORITE CONTACTS", + startText: "${isRecent ? "Add GitHub and Twitter handles in " : "Star "}", + linkText: "contacts", + endText: " to show their recent activity", + onPressed: () => showContactPage(context), + crossAxisAlign: showImage ? CrossAxisAlignment.start : CrossAxisAlignment.center, + ).width(230).translate(offset: Offset(0, -15)) + ], + ); + }, + ); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_twitter.dart b/flokk_src/lib/views/empty_states/placeholder_twitter.dart new file mode 100644 index 0000000..f1a56a6 --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_twitter.dart @@ -0,0 +1,41 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/empty_states/placeholder_widget_helpers.dart'; +import 'package:flutter/material.dart'; + +class TwitterPlaceholder extends StatelessWidget { + // If popular, this widget will use slightly different text + final bool isPopular; + + // If contact is set, this widget will act as if it belongs to a single contact + final ContactData contact; + + const TwitterPlaceholder({Key key, this.isPopular = false, this.contact}) : super(key: key); + + void _handleLinkPressed(BuildContext context) { + //If in single-contact mode, try and edit the selected contact + if (contact != null) { + showSocial(context, ContactSectionType.github); + } + // Try and move to ContactList page + else { + showContactPage(context); + } + } + + @override + Widget build(BuildContext context) { + return LayoutBuilder( + builder: (_, constraints) => Column(mainAxisAlignment: MainAxisAlignment.center, children: [ + if (constraints.maxHeight > 250) PlaceholderImageAndBgStack("dashboard-twitter", height: 126, top: 43), + EmptyStateTitleAndClickableText( + title: isPopular ? "NO POPULAR TWEETS" : "NO TWITTER ACTIVITY", + startText: contact == null ? "Add Twitter Handles in " : "Add ", + linkText: contact == null ? "contacts" : "Twitter Handle", + endText: " to show ${isPopular ? "popular tweets" : "recent activity"}", + onPressed: () => _handleLinkPressed(context), + ), + ]), + ); + } +} diff --git a/flokk_src/lib/views/empty_states/placeholder_widget_helpers.dart b/flokk_src/lib/views/empty_states/placeholder_widget_helpers.dart new file mode 100644 index 0000000..0f437e2 --- /dev/null +++ b/flokk_src/lib/views/empty_states/placeholder_widget_helpers.dart @@ -0,0 +1,103 @@ + +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flutter/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:styled_widget/styled_widget.dart'; + +void showSocial(BuildContext context, String type) { + context.read().editSelectedContact(type); +} + +void showContactPage(BuildContext context) { + context.read().trySetCurrentPage(PageType.ContactsList); +} + +/// ////////////////////////////////////////////////// +/// INTERNAL HELPER WIDGETS +class EmptyStateTitleAndClickableText extends StatelessWidget { + final String title; + final String startText; + final String endText; + final String linkText; + final CrossAxisAlignment crossAxisAlign; + final Function() onPressed; + + const EmptyStateTitleAndClickableText({ + Key key, + this.title, + this.startText, + this.endText, + this.linkText, + this.onPressed, + this.crossAxisAlign, + }) : super(key: key); + + TextSpan _buildTapSpan(String text, TextStyle style, Function() handler) { + return TextSpan(text: text, style: style, recognizer: TapGestureRecognizer()..onTap = handler); + } + + @override + Widget build(BuildContext context) { + + AppTheme theme = context.watch(); + TextStyle style = TextStyles.Body2.textColor(theme.grey).textHeight(1.4); + return Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: crossAxisAlign ?? CrossAxisAlignment.center, + children: [ + VSpace(Insets.l), + Text( + title, + style: TextStyles.T1.textColor(theme.grey), + ), + VSpace(Insets.m), + RichText( + text: TextSpan( + style: style, + children: [ + if (StringUtils.isNotEmpty(startText)) TextSpan(text: startText), + if (StringUtils.isNotEmpty(linkText)) _buildTapSpan(linkText, style.textColor(theme.accent1), onPressed), + if (StringUtils.isNotEmpty(endText)) TextSpan(text: endText), + ], + ), + ), + VSpace(Insets.m * 1.5), + ], + ); + } +} + +class PlaceholderImageAndBgStack extends StatelessWidget { + final String path; + final Widget bgWidget; + final double height; + final double top; + final double left; + + const PlaceholderImageAndBgStack(this.path, {Key key, this.height, this.top, this.left, this.bgWidget}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Stack( + overflow: Overflow.visible, + children: [ + bgWidget ?? _BgCircle(), + Image.asset("assets/images/empty-$path@2x.png", height: height).positioned(top: top, left: left), + ], + ); + } +} + +class _BgCircle extends StatelessWidget { + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return StyledContainer(theme.bg2, width: 157, height: 157, borderRadius: BorderRadius.circular(999)); + } +} diff --git a/flokk_src/lib/views/main_scaffold/contact_panel.dart b/flokk_src/lib/views/main_scaffold/contact_panel.dart new file mode 100644 index 0000000..593c171 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/contact_panel.dart @@ -0,0 +1,108 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/models/contacts_model.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_edit/contact_edit_panel.dart'; +import 'package:flokk/views/contact_info/contact_info_panel.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +/// Holds the Contact Info and Edit pages, and provides an API to switch between them +class ContactPanel extends StatefulWidget { + final Function() onClosePressed; + final ContactsModel contactsModel; + + const ContactPanel({Key key, this.onClosePressed, this.contactsModel}) : super(key: key); + + @override + ContactPanelState createState() => ContactPanelState(); +} + +class ContactPanelState extends State { + GlobalKey detailsKey = GlobalKey(); + GlobalObjectKey editKey; + ContactData _prevContact; + + bool _isEditingContact = false; + + String _initialEditSection; + + bool get hasUnsavedChanged => _isEditingContact && (editKey?.currentState?.isDirty ?? false); + + void showEditView(String sectionType) { + _initialEditSection = sectionType; + setState(() => _isEditingContact = true); + } + + void showInfoView() { + setState(() => _isEditingContact = false); + } + + void _handleEditPressed(String startSection) => showEditView(startSection); + + void _handleEditComplete(ContactData contact) { + /// If contact is not null, then we want to switch back to the InfoView + if (contact != null) { + showInfoView(); + } + + /// Set selected contact, this will hide the panel if the edit form returns null + context.read().selectedContact = contact; + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + + return StyledContainer( + theme.surface, + borderRadius: BorderRadius.only( + topLeft: Corners.s10Radius, + bottomLeft: Corners.s10Radius, + ), + shadows: Shadows.m(theme.accent1Darker), + child: Consumer( + builder: (_, contact, __) { + /// Create a key from each unique contact to make sure we get state-rebuilds when changing Contact + editKey = GlobalObjectKey(contact ?? ContactData()); + + /// When contact has been set to null, we want to use the prevContact so we get a clean transition out + /// Bit of a hack, but not sure how else to maintain state as we slide out. + contact ??= _prevContact; + if (contact != null) _prevContact = contact; + + /// Anytime we're working on a new contact, we want to be in edit mode + if (contact.isNew) _isEditingContact = true; + + return Provider.value( + /// Pass either the latest contact, or the previous, down the tree + value: contact, + child: (_isEditingContact + ? ContactEditForm( + key: editKey, + initialSection: _initialEditSection, + contact: contact, + contactsModel: widget.contactsModel, + onEditComplete: _handleEditComplete, + ) + : ContactInfoPanel( + key: detailsKey, + onClosePressed: widget.onClosePressed, + onEditPressed: _handleEditPressed, + )) + .constrained( + width: double.infinity, + height: double.infinity, + ) + .padding( + top: Insets.l * .75, + ), + ); + }, + ), + ); + } +} diff --git a/flokk_src/lib/views/main_scaffold/light_dark_toggle_switch.dart b/flokk_src/lib/views/main_scaffold/light_dark_toggle_switch.dart new file mode 100644 index 0000000..097f078 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/light_dark_toggle_switch.dart @@ -0,0 +1,91 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class LightDarkToggleSwitch extends StatefulWidget { + @override + _LightDarkToggleSwitchState createState() => _LightDarkToggleSwitchState(); +} + +class _LightDarkToggleSwitchState extends State { + int lastSwitchTime = 0; + + void _handleTogglePressed(BuildContext context) { + if (DateTime.now().millisecondsSinceEpoch - lastSwitchTime < Durations.medium.inMilliseconds) { + return; + } + lastSwitchTime = DateTime.now().millisecondsSinceEpoch; + context.read().nextTheme(); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double iconSize = 18; + double innerWidth = 54; + // Use a stateful builder so we can rebuild ourselves on click without going to a StatefulWidget + return Row( + children: [ + StyledImageIcon(StyledIcons.lightMode, size: iconSize, color: Colors.white), + HSpace(Insets.sm), + Stack(children: [ + StyledContainer( + theme.accent1Darker, + borderRadius: BorderRadius.circular(19), + width: innerWidth, + height: 24, + ), + TweenAnimationBuilder( + tween: Tween(begin: 0, end: theme.isDark ? 1 : 0), + duration: Durations.fastest, + builder: (_, value, __) => StyledContainer( + theme.surface, + duration: Durations.medium, + margin: EdgeInsets.only(top: 2, left: 2 + (innerWidth - 20 - 4) * value, right: 2), + borderRadius: BorderRadius.circular(99), + width: 20, + height: 20, + ), + ), + ]), + HSpace(Insets.sm), + StyledImageIcon(StyledIcons.darkMode, size: iconSize - 2, color: ColorUtils.shiftHsl(theme.accent1, -.1)), + ], + ).clickable(() => _handleTogglePressed(context), opaque: true); + } +} + +class _AnimatedMenuIndicator extends StatefulWidget { + final double indicatorY; + final double width; + final double height; + + _AnimatedMenuIndicator(this.indicatorY, {this.width = 6, this.height = 24}); + + @override + _AnimatedMenuIndicatorState createState() => _AnimatedMenuIndicatorState(); +} + +class _AnimatedMenuIndicatorState extends State<_AnimatedMenuIndicator> { + final double _duration = .5; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return AnimatedContainer( + duration: _duration.seconds, + curve: Curves.easeOutBack, + width: widget.width, + height: widget.height, + child: Container(color: theme.surface), + margin: EdgeInsets.only(top: widget.indicatorY ?? 0)); + } +} diff --git a/flokk_src/lib/views/main_scaffold/main_scaffold.dart b/flokk_src/lib/views/main_scaffold/main_scaffold.dart new file mode 100644 index 0000000..9256273 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/main_scaffold.dart @@ -0,0 +1,162 @@ +import 'dart:async'; + +import 'package:flokk/_internal/components/simple_value_notifier.dart'; +import 'package:flokk/_internal/utils/utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/contacts/refresh_contacts_command.dart'; +import 'package:flokk/commands/dialogs/show_discard_warning_command.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/views/contact_page/contacts_page.dart'; +import 'package:flokk/views/dashboard_page/dashboard_page.dart'; +import 'package:flokk/views/main_scaffold/contact_panel.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold_view.dart'; +import 'package:flokk/views/search/search_bar.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +enum PageType { None, Dashboard, ContactsList } + +class MainScaffold extends StatefulWidget { + static GlobalKey scaffoldKey = GlobalKey(); + static GlobalKey sidePanelKey = GlobalKey(); + static GlobalKey dashboardKey = GlobalKey(); + static GlobalKey contactPageKey = GlobalKey(); + static GlobalKey searchBarKey = GlobalKey(); + + @override + MainScaffoldState createState() => MainScaffoldState(); +} + +/// Handles all button handlers and business logic functions for the MainScaffoldView +/// Also contains any local view state. +class MainScaffoldState extends State { + //Pages + List pages = [ + PageType.Dashboard, + PageType.ContactsList, + ]; + + SimpleValueNotifier> checkedContactsNotifier = SimpleValueNotifier([]); + + AppModel appModel; + + /// Easily lookup the current state of the SidePanel + ContactPanelState get contactsPanel => MainScaffold.sidePanelKey.currentState; + + SearchBarState get searchBar => MainScaffold.searchBarKey.currentState; + + /// Disable scaffold animations, used when changing pages, so the new page does not animate in + bool skipScaffoldAnims = false; + + @override + void initState() { + /// Get a reference to the app model + appModel = context.read(); + + /// Change current page + Future.microtask(() => trySetCurrentPage(PageType.Dashboard, false)); + super.initState(); + } + + /// Setting an empty id will trigger the Create User panel to open + void addNew() async { + if (!await showDiscardWarningIfNecessary()) return; + searchBar?.cancel(); + + /// FutureUser Case: Need to jump from mainScaffold, into any contact and edit. + appModel.selectedContact = ContactData(); + } + + void editSelectedContact(String section) => contactsPanel.showEditView(section); + + /// Attempt to change current page, this might not complete if user is currently editing + Future trySetCurrentPage(PageType t, [bool refresh = true]) async { + if (t == appModel.currentMainPage) return; + + // Show a Ok/Cancel dialog if the user has un-saved edits. + // Exit early if the user chooses to cancel the page change. + if (!await showDiscardWarningIfNecessary()) return; + + // Change page + appModel.currentMainPage = t; + + // Close SearchBar if it's open + searchBar?.cancel(); + + //Skip Scaffold animations if the editPanel is currently open, we don't want the new page animating with the closing panel + if (appModel.selectedContact != null) skipScaffoldAnims = true; + + //Clear any selected contact, causing the editPanel to close + appModel.selectedContact = null; + + // Clear any checked contacts + checkedContactsNotifier.value = []; + + //Refresh each time we change pages + if (refresh) { + RefreshContactsCommand(context).execute(); + } + } + + /// Change selected contact, this might not complete if user is currently editing + Future trySetSelectedContact(ContactData value, {showSocial = false}) async { + if (!await showDiscardWarningIfNecessary()) return; + //De-select? + bool hasSocialChanged = showSocial != appModel.showSocialTabOnInfoView; + if (!hasSocialChanged && appModel.selectedContact != null && appModel.selectedContact?.id == value?.id) { + value = null; + } + appModel.selectedContact = value; + appModel.showSocialTabOnInfoView = showSocial; + contactsPanel?.showInfoView(); + } + + /// Change checked contacts + Future setCheckedContact(ContactData contact, bool value) async { + List checked = checkedContactsNotifier.value; + if (value) { + checked.add(contact); + } else { + checked.removeWhere((element) => element.id == contact.id); + } + checkedContactsNotifier.notify(); + } + + Future showDiscardWarningIfNecessary() async { + // If there are no actual changes, no need to bug the user. + if (!(contactsPanel?.hasUnsavedChanged ?? false)) return true; + // Ask user if they'd like to discard + return await ShowDiscardWarningCommand(context).execute(); + } + + // Avoids a layout error thrown by Flutter when scaffold is forced to close while re-sizing the window + void closeScaffoldOnResize() { + if (MainScaffold.scaffoldKey.currentState?.isDrawerOpen ?? false) { + scheduleMicrotask(() => Navigator.pop(context)); + } + } + + void openMenu() => MainScaffold.scaffoldKey.currentState.openDrawer(); + + void handleBgTapped() { + Utils.unFocus(); + } + + void handleSearchSubmit() { + // When a search is submitted, try and navigate to the contactsView + trySetCurrentPage(PageType.ContactsList); + // [SB] Hack to try and get more reliable scroll-bar sizing when submitting. + //TODO: Confirm this bug still exists (scrollbar can stay stuck on, even when there are no results) + Future.delayed(1000.milliseconds, () => setState(() {})); + } + + /// Provide this state to all the views below it, enabling child-widgets to request page changes, select a certain contact, + /// or make other requests on MainScaffold to do something. + @override + Widget build(BuildContext context) => Provider.value( + value: this, + child: MainScaffoldView(this), + ); + +} diff --git a/flokk_src/lib/views/main_scaffold/main_scaffold_view.dart b/flokk_src/lib/views/main_scaffold/main_scaffold_view.dart new file mode 100644 index 0000000..d583247 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/main_scaffold_view.dart @@ -0,0 +1,224 @@ + +import 'package:flokk/_internal/components/fading_index_stack.dart'; +import 'package:flokk/_internal/widget_view.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/styled_components/flokk_logo.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/contact_page/contacts_page.dart'; +import 'package:flokk/views/dashboard_page/dashboard_page.dart'; +import 'package:flokk/views/main_scaffold/contact_panel.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flokk/views/main_scaffold/main_side_menu.dart'; +import 'package:flokk/views/search/search_bar.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; +import 'package:universal_platform/universal_platform.dart'; + +class MainScaffoldView extends WidgetView { + MainScaffoldView(MainScaffoldState state) : super(state); + + @override + Widget build(BuildContext context) { + /// /////////////////////////////////////////////////////////// + /// Bind to AppModel when selectedContact changes, and provide it to the sub-tree + ContactData selectedContact = context.select((model) => model.selectedContact); + + /// Bind to page-change + var currentPage = context.select((value) => value.currentMainPage); + + /// Flutter throws an error when it's forced to close the drawer on resize, so pre-emptively close it + state.closeScaffoldOnResize(); + + /// ///////////////////////////////////////////////// + /// RESPONSIVE LAYOUT LOGIC + + /// Calculate Left Menu Size + double leftMenuWidth = Sizes.sideBarSm; + bool skinnyMenuMode = true; + if (context.widthPx >= PageBreaks.Desktop) { + leftMenuWidth = Sizes.sideBarLg; + skinnyMenuMode = false; + } else if (context.widthPx > PageBreaks.TabletLandscape) { + leftMenuWidth = Sizes.sideBarMed; + } + + /// Calculate Right panel size + double detailsPanelWidth = 400; + if (context.widthInches > 8) { + //Panel size gets a little bigger as the screen size grows + detailsPanelWidth += (context.widthInches - 8) * 12; + } + + bool isNarrow = context.widthPx < PageBreaks.TabletPortrait; + + /// Calculate Top bar height + double topBarHeight = 60; + double topBarPadding = isNarrow ? Insets.m : Insets.l; + + /// Figure out what should be visible, and the size of our viewport + /// 3 cases: 1) Single Column, 2) LeftMenu + Single Column, 3) LeftMenu + Dual Column + /// (Dual Column means it can show both ContentArea and EditPanel at the same time) + bool showPanel = selectedContact != null; //Contact panel is always shown if a contact is selected + bool showLeftMenu = !isNarrow; //Whether main menu is shown, or hidden behind hamburger btn + bool useSingleColumn = context.widthInches < 10; //Whether detail panel fills the entire content area + bool hideContent = showPanel && useSingleColumn; //If single column + panel, we can hide the content + double leftContentOffset = showLeftMenu ? leftMenuWidth : Insets.mGutter; //Left position for the main content stack + double contentRightPos = showPanel ? detailsPanelWidth : 0; //Right position for main content stack + + /// Sometimes we want to skip the layout animations, for example, when we're changing main pages , + /// we want the new page to ignore the panel that is sliding out of the view. + Duration animDuration = state.skipScaffoldAnims ? .01.seconds : .35.seconds; + state.skipScaffoldAnims = false; // Reset flag so we only skip animations for one build cycle + if (UniversalPlatform.isWeb && !AppModel.enableAnimationsOnWeb) { + animDuration = .0.seconds; + } + + /// ///////////////////////////////////////////////// + /// CONTENT WIDGETS + + /// Edit Panel + Widget editPanel = ContactPanel( + key: MainScaffold.sidePanelKey, + onClosePressed: () => state.trySetSelectedContact(null), + contactsModel: state.appModel.contactsModel, + ); + editPanel = RepaintBoundary(child: editPanel); + editPanel = FocusTraversalGroup(child: editPanel); + + /// Search Bar + Widget searchBar = SearchBar( + key: MainScaffold.searchBarKey, + closedHeight: topBarHeight, + narrowMode: !showLeftMenu, + searchEngine: state.appModel.searchEngine, + onContactPressed: (c) => state.trySetSelectedContact(c, showSocial: false), + onSearchSubmitted: state.handleSearchSubmit, + ); + searchBar = RepaintBoundary(child: searchBar); + searchBar = FocusTraversalGroup(child: searchBar); + + /// Main content page stack + Widget contentStack = FadingIndexedStack( + index: state.pages.indexOf(currentPage), + children: [ + /// DASHBOARD PAGE + DashboardPage( + selectedContact: selectedContact, + ), + + /// CONTACTS PAGE + ValueListenableBuilder>( + valueListenable: state.checkedContactsNotifier, + builder: (_, checkedContacts, __) { + return ContactsPage( + //key: MainScaffold.contactPageKey, + selectedContact: selectedContact, + checkedContacts: checkedContacts, + searchEngine: state.appModel.searchEngine, + //onContactSelected: state.setSelectedContact, + ) + //Asymmetric padding for the ListView, as we need to leave room in the gutter for the scroll bar + .padding(left: Insets.lGutter, right: Insets.mGutter); + }, + ), + ], + ); + //contentStack = RepaintBoundary(child: contentStack); + contentStack = FocusTraversalGroup(child: contentStack); + + /// ///////////////////////////////////////////////// + /// BUILD + AppTheme theme = context.watch(); + return Provider.value( + /// Provide the currently selected contact to all views below this + value: selectedContact, + child: Scaffold( + key: MainScaffold.scaffoldKey, + + /// If menu is hidden, pass it to the .drawer property of scaffold. + /// Assign a max width since it will be unconstrained in overlay mode and we don't want it to fill the entire screen. + drawer: showLeftMenu + ? null + : MainSideMenu( + onPageSelected: state.trySetCurrentPage, + onAddNewPressed: state.addNew, + ).constrained(maxWidth: Sizes.sideBarLg), + body: + //Main App Bg + StyledContainer( + theme.bg1, + child: Stack( + children: [ + Stack(children: [ + /// ///////////////////////////////////////////////// + /// INNER CONTENT STACK + contentStack.padding(top: topBarHeight + topBarPadding), + + /// ///////////////////////////////////////////////// + /// HAMBURGER MENU BTN + IconButton(icon: Icon(Icons.menu, size: 24, color: theme.accent1), onPressed: state.openMenu) + .animatedPanelX(closeX: -50, isClosed: showLeftMenu) + .positioned(left: Insets.m, top: Insets.m), + + /// Flokk Logo, Top-Center, only shown in narrow mode + if (isNarrow) FlokkLogo(40, theme.accent1).alignment(Alignment.topCenter).padding(top: Insets.l), + + /// ///////////////////////////////////////////////// + /// SEARCH BAR + searchBar.constrained(minHeight: topBarHeight), + ]) // Shared styling for the entire content area (content + search) + .constrained(minWidth: 500) + .opacity(hideContent ? 0 : 1, animate: true) + .positioned(left: leftContentOffset, right: contentRightPos, bottom: 0, top: 0, animate: true) + .animate(animDuration, Curves.easeOut), + + /// ///////////////////////////////////////////////// + /// LEFT MENU + /// This is defined in the tree unlike the other elements because actually want it to exist twice + /// This menu may be animating out, while the other version exists in the app drawer + MainSideMenu( + onPageSelected: state.trySetCurrentPage, + onAddNewPressed: state.addNew, + skinnyMode: skinnyMenuMode, + ) + .animatedPanelX( + closeX: -leftMenuWidth, + // Rely on the animatedPanel to toggle visibility of this when it's hidden. It renders an empty Container() when closed + isClosed: !showLeftMenu, + ) // Styling, pin to left, fixed width + .positioned(left: 0, top: 0, width: leftMenuWidth, bottom: 0, animate: true) + .animate(animDuration, Curves.easeOut), + + /// ///////////////////////////////////////////////// + /// RIGHT PANEL - Layout editPanel in 1 of 2 ways, single or double column + !useSingleColumn + + /// Dual-column mode: the edit panel is a fixed width + ? editPanel + .animatedPanelX( + duration: animDuration.inMilliseconds * .001, + closeX: detailsPanelWidth, + isClosed: !showPanel, + ) // Styling: Pin to right, using a fixed-width for the panel + .positioned(right: 0, width: detailsPanelWidth, top: 0, bottom: 0) + //.animate(animDuration, Curves.easeOut) + + /// Single-column mode: the edit panel is the entire width, minus the left-menu + : editPanel + .animatedPanelX( + closeX: context.widthPx - leftContentOffset, + isClosed: !showPanel, + ) // Styling: Pin to left instead of right for better window resizing, allow panel to stretch as needed + .padding(left: leftContentOffset, animate: true) + .animate(animDuration, Curves.easeOut), + ], + ), + ), + ).gestures(onTap: state.handleBgTapped), + ); + } +} diff --git a/flokk_src/lib/views/main_scaffold/main_side_menu.dart b/flokk_src/lib/views/main_scaffold/main_side_menu.dart new file mode 100644 index 0000000..1791e70 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/main_side_menu.dart @@ -0,0 +1,214 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/color_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/commands/logout_command.dart'; +import 'package:flokk/models/app_model.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/flokk_logo.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/light_dark_toggle_switch.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flokk/views/main_scaffold/main_side_menu_btn.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class MainMenuOffsetNotification extends Notification { + final Offset offset; + final PageType pageType; + + MainMenuOffsetNotification(this.pageType, this.offset); +} + +class MainSideMenu extends StatefulWidget { + final Function(PageType t) onPageSelected; + final Function() onAddNewPressed; + final bool skinnyMode; + + const MainSideMenu({Key key, this.onPageSelected, this.onAddNewPressed, this.skinnyMode = false}) : super(key: key); + + @override + _MainSideMenuState createState() => _MainSideMenuState(); +} + +class _MainSideMenuState extends State { + + Map _menuBtnOffsetsByType = {}; + PageType _prevPage; + + double get _headerHeight => 106; + + double get _indicatorHeight => 48; + + double get _btnHeight => 60; + + double _indicatorY; + + @override + void initState() { + //PageType p = PageType.Dashboard; + Future.delayed(100.milliseconds).then((value) { + _updateIndicatorState(context.read().currentMainPage); + }); + super.initState(); + } + + void _handleLogoutPressed() => LogoutCommand(context).execute(doConfirm: true); + + void _handlePageSelected(PageType pageType) => widget.onPageSelected?.call(pageType); + + void _updateIndicatorState(PageType type) { + if (_menuBtnOffsetsByType.containsKey(type)) { + Offset o = _menuBtnOffsetsByType[type]; + setState(() => _indicatorY = o.dy - _headerHeight + _btnHeight * .5 - _indicatorHeight * .5); + } + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + String versionNum = context.select((m) => m.version); + /// Bind to AppModel when currentPage changes + var currentPage = context.select((value) => value.currentMainPage); + if (currentPage != _prevPage) { + _updateIndicatorState(currentPage); + } + _prevPage = currentPage; + Color bgColor = theme.isDark? ColorUtils.blend(theme.bg1, theme.accent1, .08) : theme.accent1; + return FocusTraversalGroup( + child: Container( + child: Column( + children: [ + /// //////////////////////////////////////////////////////// + /// HEADER + Stack( + children: [ + // Background layer, scaled a bit on the Y axis so it under-hangs the menu below + // This opaque background is only needed when the menu is in the slide-out drawer state + StyledContainer(theme.bg1).transform(transform: Matrix4.diagonal3Values(1.0, 1.2, 1.0)), + + /// //////////////////////////////////////////////// + /// Main Flock Logo + FlokkSidebarLogo(widget.skinnyMode).center(), + //Text("APP NAME", style: TextStyles.T1).textColor(theme.accent1Dark).center(), + ], + ).height(_headerHeight), + + /// //////////////////////////////////////////////////////// + /// MENU + Stack( + children: [ + /// Menu-Background + StyledContainer(bgColor, borderRadius: BorderRadius.only(topRight: Corners.s10Radius)), + + /// Version + Text("v$versionNum", style: TextStyles.Caption.textColor(Colors.white)).positioned(left: 4, bottom: 4), + + /// //////////////////////////////////////////////////////// + /// Buttons + NotificationListener( + // Listen for [MainMenuOffsetNotification], dispatched from each [MainMenuBtn] that is assigned a pageType. + // We use these to position the animated indicator in [_updateIndicatorState] + onNotification: (n) { + _menuBtnOffsetsByType[n.pageType] = n.offset; + return true; // Return true so the notification stops here + }, + child: Column( + children: [ + VSpace(Insets.l), + + /// New Contact Btn + MainMenuBtn(StyledIcons.add, "Create Contact", + compact: widget.skinnyMode, + height: _btnHeight, + transparent: false, + iconSize: 20, + isSelected: true, + dottedBorder: true, + onPressed: () => widget.onAddNewPressed()), + + VSpace(Insets.l), + + /// Dashboard Btn + MainMenuBtn( + StyledIcons.dashboard, + "DASHBOARD", + compact: widget.skinnyMode, + pageType: PageType.Dashboard, + height: _btnHeight, + isSelected: currentPage == PageType.Dashboard, + onPressed: () => _handlePageSelected(PageType.Dashboard), + ), + + /// Contacts Out Btn + MainMenuBtn( + StyledIcons.user, + "CONTACTS", + compact: widget.skinnyMode, + pageType: PageType.ContactsList, + height: _btnHeight, + isSelected: currentPage == PageType.ContactsList, + onPressed: () => _handlePageSelected(PageType.ContactsList), + ), + + Spacer(), + + /// Light / Dark Toggle + //Use a row to easily center the Toggle inside the column + [ + LightDarkToggleSwitch(), + ].toRow(mainAxisAlignment: MainAxisAlignment.center), + + VSpace(Insets.m), + + /// Sign Out Btn + TransparentBtn( + hoverColor: theme.txt.withOpacity(.05), + contentPadding: EdgeInsets.all(Insets.m), + child: Text("SIGN OUT", style: TextStyles.Btn.textColor(Colors.white)), + onPressed: _handleLogoutPressed, + ), + + ], + )).padding(all: Insets.l, bottom: Insets.m).constrained(maxWidth: 280), + + /// Animated line that moves up and down to select the current page + _AnimatedMenuIndicator(_indicatorY ?? 0, height: _indicatorHeight) + ], + ).flexible(), + ], + ), + ), + ); + } +} + +class _AnimatedMenuIndicator extends StatefulWidget { + final double indicatorY; + final double width; + final double height; + + _AnimatedMenuIndicator(this.indicatorY, {this.width = 6, this.height = 24}); + + @override + _AnimatedMenuIndicatorState createState() => _AnimatedMenuIndicatorState(); +} + +class _AnimatedMenuIndicatorState extends State<_AnimatedMenuIndicator> { + final double _duration = .5; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return AnimatedContainer( + duration: _duration.seconds, + curve: Curves.easeOutBack, + width: widget.width, + height: widget.height, + child: StyledContainer(theme.surface), + margin: EdgeInsets.only(top: widget.indicatorY ?? 0)); + } +} diff --git a/flokk_src/lib/views/main_scaffold/main_side_menu_btn.dart b/flokk_src/lib/views/main_scaffold/main_side_menu_btn.dart new file mode 100644 index 0000000..c3505a6 --- /dev/null +++ b/flokk_src/lib/views/main_scaffold/main_side_menu_btn.dart @@ -0,0 +1,96 @@ +import 'package:dotted_border/dotted_border.dart'; +import 'package:flokk/_internal/components/one_line_text.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/build_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flokk/views/main_scaffold/main_side_menu.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class MainMenuBtn extends StatefulWidget { + final AssetImage icon; + final String label; + final VoidCallback onPressed; + final bool isSelected; + final double iconSize; + final bool compact; + final bool transparent; + final double height; + final PageType pageType; + final bool dottedBorder; + + MainMenuBtn(this.icon, this.label, + {Key key, + this.onPressed, + this.isSelected = false, + this.iconSize = 26, + this.compact = false, + this.transparent = true, + this.height = 60, + this.pageType = PageType.None, this.dottedBorder = false}) + : assert((icon is AssetImage) || (icon is IconData)), + super(key: key); + + @override + MainMenuBtnState createState() => MainMenuBtnState(); +} + +class MainMenuBtnState extends State { + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + + /// If we have a pageType, send a notification to the parent menu, so it know the position of each btn, and can position it's current-page indicator + if (widget.pageType != PageType.None) { + Future.delayed(1.milliseconds, () { + Offset o = BuildUtils.getOffsetFromContext(context); + MainMenuOffsetNotification(widget.pageType, o).dispatch(context); + }); + } + + /// Create the Icon / Text Row that animates opacity when selected and hides text when compactMode = true + TextStyle btnStyle = TextStyles.Btn; + Widget btnContents = Row( + mainAxisAlignment: widget.compact ? MainAxisAlignment.center : MainAxisAlignment.start, + children: [ + if (!widget.compact) HSpace(Insets.l), + Padding( + padding: EdgeInsets.all(2.0), + child: StyledImageIcon(widget.icon, size: widget.iconSize - 4.0, color: Colors.white), + ), + if (!widget.compact)... { + HSpace(Insets.l * .5), + OneLineText(widget.label.toUpperCase(), style: btnStyle).flexible() + } + ], + ).height(widget.height).opacity(widget.isSelected ? 1 : .8, animate: true).animate(.3.seconds, Curves.easeOut); + + + //Wrap btn in a border... maybe + btnContents = widget.dottedBorder? DottedBorder( + dashPattern: [3, 5], + color: Colors.white.withOpacity(.7), + borderType: widget.compact? BorderType.Circle : BorderType.RRect, + radius: Corners.s8Radius, + child: Center(child: btnContents)) : btnContents; + + /// Wrap contents in a btn + return RawMaterialButton( + textStyle: (widget.isSelected ? TextStyles.BtnSelected : TextStyles.Btn).textColor(Colors.white), + fillColor: Colors.transparent, + highlightColor: Colors.white.withOpacity(.1), + focusElevation: 0, + hoverElevation: 0, + highlightElevation: 0, + elevation: 0, + padding: EdgeInsets.zero, + shape: widget.compact ? CircleBorder() : RoundedRectangleBorder(borderRadius: Corners.s8Border), + onPressed: widget.onPressed, + child: btnContents); + + } +} diff --git a/flokk_src/lib/views/search/search_bar.dart b/flokk_src/lib/views/search/search_bar.dart new file mode 100644 index 0000000..d6bb46b --- /dev/null +++ b/flokk_src/lib/views/search/search_bar.dart @@ -0,0 +1,175 @@ +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/views/main_scaffold/main_scaffold.dart'; +import 'package:flokk/views/search/search_bar_view.dart'; +import 'package:flokk/views/search/search_engine.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +class SearchBar extends StatefulWidget { + final Function(ContactData) onContactPressed; + final Function() onSearchSubmitted; + final double closedHeight; + final SearchEngine searchEngine; + final bool narrowMode; + final double topPadding; + + const SearchBar({ + Key key, + this.searchEngine, + this.closedHeight, + this.onContactPressed, + this.onSearchSubmitted, + this.narrowMode, + this.topPadding, + }) : super(key: key); + + @override + SearchBarState createState() => SearchBarState(); +} + +class SearchBarState extends State { + final SearchEngine tmpSearch = SearchEngine(); + final GlobalKey textKey = GlobalKey(); + final GlobalKey resultsColumnKey = GlobalKey(); + + FocusNode textFocusNode; + + @override + void initState() { + RawKeyboard.instance.addListener(_handleRawKeyPressed); + super.initState(); + } + + @override + void dispose() { + RawKeyboard.instance.removeListener(_handleRawKeyPressed); + super.dispose(); + } + + bool _isOpen = false; + + bool get isOpen => _isOpen; + + double _resultsHeight = 0; + + double get resultsHeight => _resultsHeight; + + set resultsHeight(double height) { + if (_resultsHeight != height) setState(() => _resultsHeight = height); + } + + bool get hasQuery => tmpSearch.hasQuery; + + set isOpen(bool value) { + if (_isOpen == value) return; + // When we open up, make a copy of the current search settings to work with + if (value == true) { + // Put the focus in the text field to start + textFocusNode?.requestFocus(); + } else { + // Unfocus textNode when closing + textFocusNode.unfocus(); + } + // Anytime we toggle, make sure the search bar contents match the main searchEngine, + // this will either revert the un-submitted changes, or do nothing. + tmpSearch.copyFrom(widget.searchEngine); + textKey?.currentState?.text = tmpSearch.query ?? ""; + + setState(() => _isOpen = value); + } + + void cancel() => isOpen = false; + + void handleSearchChanged(String value) => tmpSearch.query = value; + + // Expand when we get focus + void handleFocusChanged(bool value) { + if (value || !hasQuery) isOpen = value; + } + + void handleSearchSubmitted() { + /// Copy the tmp values back into the main search engine, triggering a rebuild in the main list, + save(); + widget.onSearchSubmitted?.call(); + isOpen = false; + } + + void handleContactPressed(ContactData c) async { + MainScaffoldState scaffold = context.read(); + if (!await scaffold.showDiscardWarningIfNecessary()) + return; + tmpSearch.addFilterContact(c.nameFull); + clearQueryString(); + handleSearchSubmitted(); + Future.microtask(() => scaffold.trySetSelectedContact(c)); + } + + void handleTagPressed(String tag) { + tmpSearch.addTag(tag); + clearQueryString(); + handleSearchSubmitted(); + } + + void _handleRawKeyPressed(RawKeyEvent evt) { + if (evt is RawKeyDownEvent) { + if (evt.logicalKey == LogicalKeyboardKey.keyK && evt.isControlPressed) { + isOpen = true; + } else if (textFocusNode.hasFocus && evt.logicalKey == LogicalKeyboardKey.enter) { + handleSearchSubmitted(); + } else if (textFocusNode.hasFocus && evt.logicalKey == LogicalKeyboardKey.backspace) { + if (textKey != null && textKey.currentState != null && textKey.currentState.text.isEmpty) { + final tl = tmpSearch.tagList; + final cl = tmpSearch.filterContactList; + if (cl.isNotEmpty) { + tmpSearch.removeFilterContact(cl.last); + } else if (tl.isNotEmpty) { + tmpSearch.removeTag(tl.last); + } + } + } + } + } + + void handleTextFocusCreated(FocusNode node) { + textFocusNode = node; + } + + void handleRemoveTag(String tag) { + tmpSearch.removeTag(tag); + if (!isOpen) save(); + } + + void handleRemoveFilterContact(String filterContact) { + tmpSearch.removeFilterContact(filterContact); + if (!isOpen) save(); + } + + void handleSearchIconPressed() => textFocusNode?.requestFocus(); + + void clearQueryString() { + handleSearchChanged(""); + textKey?.currentState?.text = ""; + textFocusNode.requestFocus(); + } + + void clearSearch() { + handleSearchChanged(""); + textKey?.currentState?.text = ""; + tmpSearch.clearTags(); + tmpSearch.clearFilterContacts(); + if (!isOpen) + save(); + else + textFocusNode.requestFocus(); + } + + void save() { + widget.searchEngine.copyFrom(tmpSearch); + } + + @override + Widget build(BuildContext context) => SearchBarView(this); + +} diff --git a/flokk_src/lib/views/search/search_bar_view.dart b/flokk_src/lib/views/search/search_bar_view.dart new file mode 100644 index 0000000..e3c3acf --- /dev/null +++ b/flokk_src/lib/views/search/search_bar_view.dart @@ -0,0 +1,112 @@ +import 'dart:math'; + +import 'package:flokk/_internal/components/content_underlay.dart'; +import 'package:flokk/_internal/widget_view.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/opening_divider.dart'; +import 'package:flokk/styled_components/styled_container.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/search/search_bar.dart'; +import 'package:flokk/views/search/search_query_results.dart'; +import 'package:flokk/views/search/search_query_row.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:provider/provider.dart'; + +class SearchBarView extends WidgetView { + + SearchBarView(SearchBarState state, {Key key}) : super(state, key: key); + + bool get isOpen => state.isOpen; + + + bool _handleKeyPress(FocusNode node, RawKeyEvent evt) { + if (evt is RawKeyDownEvent) { + if (evt.logicalKey == LogicalKeyboardKey.escape) { + state.cancel(); + return true; + } + } + return false; + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + + // Fixed content height plus top and bottom padding + double barHeight = 30 + Insets.m * 1.25 * 2.0; + double topPadding = state.widget.narrowMode? Insets.m : Insets.l; + double leftPadding = state.widget.narrowMode? 50 : 0; // Move over to not overlay with main-app menu btn + /// CONTENT UNDERLAY + Widget underlay = ContentUnderlay( + isActive: isOpen && state.resultsHeight > 0, + color: theme.bg1.withOpacity(.7), + ); + return FocusScope( + onKey: _handleKeyPress, + child: Stack( + children: [ + /// Clickable underlay, closes on press + underlay.gestures(onTap: state.cancel), + /// Wrap content in an animated card, this will handle open and closing animations + _AnimatedSearchCard( + state, + // Content Column + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + // Search Box + SearchQueryRow(state), + // Search Results + SearchResults(state) + // Fade search results out when we're not open + .opacity(isOpen ? 1 : 0, animate: true) + .animate(Durations.fast, Curves.easeOut) + .expanded() + ], + ), + ).padding(left: Insets.lGutter + leftPadding, right: Insets.lGutter, vertical: topPadding), + + /// Animated Search Underline + if (state.resultsHeight > 0) ...{ + Positioned( + top: topPadding + barHeight - 6, + left: Insets.lGutter + leftPadding + Insets.l, + right: Insets.lGutter + Insets.l, + child: OpeningDivider(isOpen: isOpen), + ), + }, + + ], + ), + ); + } +} + +/// Handles the transition from open and closed, the content is a Column, contains the SearchBox, and SearchResults +class _AnimatedSearchCard extends StatelessWidget { + final Widget child; + final SearchBarState searchBar; + + const _AnimatedSearchCard(this.searchBar, {Key key, this.child}) : super(key: key); + + bool get isOpen => searchBar.isOpen; + + bool get hasQuery => searchBar.hasQuery; + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + double openHeight = min(searchBar.widget.closedHeight + searchBar.resultsHeight + 1, 600); + return StyledContainer(isOpen || hasQuery ? theme.surface : Color(0x00ffffff), + height: isOpen ? openHeight : searchBar.widget.closedHeight, + borderRadius: BorderRadius.circular(6), + duration: Durations.fast, + //border: Border.all(color: Colors.grey.withOpacity(isOpen ? .3 : 0)), + shadows: isOpen || hasQuery ? Shadows.m(theme.accent1Darker) : [], + child: child); + } +} diff --git a/flokk_src/lib/views/search/search_engine.dart b/flokk_src/lib/views/search/search_engine.dart new file mode 100644 index 0000000..cd48f3c --- /dev/null +++ b/flokk_src/lib/views/search/search_engine.dart @@ -0,0 +1,189 @@ +import 'package:flokk/_internal/components/simple_value_notifier.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/_internal/utils/utils.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/data/group_data.dart'; + +class SearchEngine extends SimpleNotifier { + bool _isDirty = false; + List _cachedResults; + List _tagCache; + + get hasQuery => (query?.isNotEmpty ?? false) || tags.isNotEmpty || filterContacts.isNotEmpty; + + SearchEngine copy() => SearchEngine()..copyFrom(this); + + void copyFrom(SearchEngine se) { + _query = se.query; + _tags = se.tags; + _filterContacts = se.filterContacts; + _orderDesc = se.orderDesc; + _contactsList = se.contactsList; + _groupsList = se.groupsList; + _orderBy = se._orderBy; + _isDirty = true; + notifyListeners(); + } + + /// //////////////////////////////////////////// + /// QUERY STRING + String get query => _query; + + set query(String query) => setAndMarkDirty(() => _query = query); + String _query; + + /// //////////////////////////////////////////// + /// Filter tags + String get tags => _tags ?? ""; + + set tags(String tags) => setAndMarkDirty(() => _tags = tags); + + List get tagList => tags.split(",").where((e) => e.isNotEmpty).toList(); + + void addTag(String tag) { + final tl = tagList; + if (!tl.contains(tag)) { + tl.add(tag); + tags = tl.join(","); + } + } + + void removeTag(String tag) { + final tl = tagList; + if (tl.remove(tag)) { + tags = tl.join(","); + } + } + + void clearTags() => tags = ""; + + /// _tags is a comma separated list of tags + String _tags; + + /// //////////////////////////////////////////// + /// Filter contacts + String get filterContacts => _filterContacts ?? ""; + + set filterContacts(String filterContacts) => setAndMarkDirty(() => _filterContacts = filterContacts); + + List get filterContactList => filterContacts.split(",").where((e) => e.isNotEmpty).toList(); + + void addFilterContact(String filterContact) { + final fcl = filterContactList; + if (!fcl.contains(filterContact)) { + fcl.add(filterContact); + filterContacts = fcl.join(","); + } + } + + void removeFilterContact(String filterContact) { + final fcl = filterContactList; + if (fcl.remove(filterContact)) { + filterContacts = fcl.join(","); + } + } + + void clearFilterContacts() => filterContacts = ""; + + String _filterContacts; + + /// //////////////////////////////////////////// + /// ORDER BY + ContactOrderBy get orderBy => _orderBy; + + set orderBy(ContactOrderBy orderBy) => setAndMarkDirty(() => _orderBy = orderBy); + ContactOrderBy _orderBy = ContactOrderBy.FirstName; + + /// //////////////////////////////////////////// + /// ORDER DESCENDING + bool get orderDesc => _orderDesc; + + set orderDesc(bool value) => setAndMarkDirty(() => _orderDesc = value); + bool _orderDesc = false; + + /// //////////////////////////////////////////// + /// DATA SOURCE + List get contactsList => _contactsList; + + set contactsList(List value) => setAndMarkDirty(() => _contactsList = value); + List _contactsList; + + List get groupsList => _groupsList; + + set groupsList(List value) => setAndMarkDirty(() => _groupsList = value); + List _groupsList; + + List getResults([List newContacts, ContactOrderBy _orderBy]) { + if (newContacts != null) contactsList = newContacts; + if (_orderBy != null) orderBy = _orderBy; + // If we have no data + if (_contactsList == null) return []; + _updateCache(); + return _cachedResults ?? []; + } + + List getTagResults() { + if (query == null || query.isEmpty) return []; + _updateCache(); + return _tagCache ?? []; + } + + List _buildGroups() { + return _groupsList.map((g) => g.name).toList(); + } + + void _updateCache() { + if (!_isDirty) return; + + Utils.benchmark("Search - Sorted and Filtered", () { + List results = List.from(_contactsList); + List groups = _buildGroups(); + { + final lowerQuery = !StringUtils.isEmpty(_query) ? _query.toLowerCase() : ""; + if (hasQuery) { + results.retainWhere((c) { + bool matchsGroups = false; + for (var g in tagList) { + if (c.searchable.contains(g.toLowerCase())) { + matchsGroups = true; + break; + } + } + bool matchsContact = false; + for (var g in filterContactList) { + if (c.searchable.contains(g.toLowerCase())) { + matchsContact = true; + break; + } + } + bool queryNotEmpty = lowerQuery.isNotEmpty; + //bool hasTags = tagList.isNotEmpty || filterContactList.isNotEmpty; + bool matchsTags = matchsGroups || matchsContact; + return (queryNotEmpty && c.searchable.contains(lowerQuery)) || matchsTags; + }); + } + groups.retainWhere((g) { + return g.toLowerCase().contains(lowerQuery) && !tags.contains(g); + }); + } + if (orderBy == ContactOrderBy.FirstName) { + results.sort((a, b) => _nullSafeSort(a.nameGiven, b.nameGiven, _orderDesc)); + } else if (orderBy == ContactOrderBy.LastName) { + results.sort((a, b) => _nullSafeSort(a.nameFamily, b.nameFamily, _orderDesc)); + } + _cachedResults = results; + _tagCache = groups; + _isDirty = false; + }); + } + + int _nullSafeSort(String a, String b, bool orderDesc) { + return (a ?? "").compareTo(b ?? "") * (orderDesc ? -1 : 1); + } + + void setAndMarkDirty(Function() setter) { + setter(); + _isDirty = true; + notifyListeners(); + } +} diff --git a/flokk_src/lib/views/search/search_query_results.dart b/flokk_src/lib/views/search/search_query_results.dart new file mode 100644 index 0000000..2862476 --- /dev/null +++ b/flokk_src/lib/views/search/search_query_results.dart @@ -0,0 +1,171 @@ +import 'dart:math'; + +import 'package:flokk/_internal/components/listenable_builder.dart'; +import 'package:flokk/_internal/components/simple_grid.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/build_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/data/contact_data.dart'; +import 'package:flokk/styled_components/buttons/transparent_btn.dart'; +import 'package:flokk/styled_components/scrolling/styled_scrollview.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_label_pill.dart'; +import 'package:flokk/styled_components/styled_user_avatar.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/search/search_bar.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +/// SEARCH RESULTS LIST +/// Binds to notifications from the tmpSearchEngine using ListenableBuilder +class SearchResults extends StatelessWidget { + final SearchBarState state; + + const SearchResults(this.state, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return LayoutBuilder( + builder: (_, constraints) { + return ListenableBuilder( + listenable: state.tmpSearch, + builder: (_, __) { + //Add a callback hook, so the column can pass us it's size after layout. + BuildUtils.getFutureSizeFromGlobalKey(state.resultsColumnKey, (size) => state.resultsHeight = size.height); + + int maxResults = 6; + int colCount = max(1, (constraints.maxWidth / 280).floor()).clamp(1, maxResults); + + /// Create Result Items + List contacts = state.tmpSearch.hasQuery ? state.tmpSearch.getResults() : []; + + List tags = state.tmpSearch.getTagResults(); + final List labelPills = tags + .take(maxResults) + .map((tag) => StyledLabelPill(tag.toUpperCase(), + textStyle: TextStyles.Footnote.textColor(theme.grey).letterSpace(0).textHeight(1.63), + borderRadius: Corners.s5, onPressed: () => state.handleTagPressed(tag))) + .toList(); + + final List<_ContactSearchListItem> contactListItems = contacts + .take(maxResults) + .map((c) => _ContactSearchListItem( + contact: c, + onPressed: () => state.handleContactPressed(c), + )) + .toList(); + + /// Layout + return StyledScrollView( + child: Column( + key: state.resultsColumnKey, + mainAxisSize: MainAxisSize.min, + children: [ + /// Labels/Tags + if (tags.isNotEmpty) ...{ + _SearchCategory( + icon: StyledIcons.label, + text: "Labels", + child: Wrap( + spacing: Insets.m, + runSpacing: Insets.sm, + children: labelPills, + ), + ), + }, + /// Contacts / People + if (contacts.isNotEmpty) ...{ + _SearchCategory( + icon: StyledIcons.user, + text: "Contacts", + child: SimpleGrid( + colCount: colCount, + hSpace: Insets.xl, + vSpace: Insets.sm, + kidHeight: 48, + kids: contactListItems, + ), + ), + }, + /// Submit Btn + if (contacts.length > 6) ...{ + TransparentTextBtn( + "Show More (${contacts.length - 6} results)", + bgColor: theme.surface, + bigMode: true, + onPressed: state.handleSearchSubmitted, + ).constrained(width: 220, height: 60).center().padding(top: Insets.l), + VSpace(Insets.m * 1.5), + }, + ], + ), + ); + }, + ); + }, + ); + } +} + +class _ContactSearchListItem extends StatelessWidget { + final ContactData contact; + final VoidCallback onPressed; + + _ContactSearchListItem({this.contact, this.onPressed}); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return TransparentBtn( + bgColor: theme.surface, + onPressed: onPressed, + bigMode: true, + child: Container( + child: Row( + children: [ + StyledUserAvatar(contact: contact, size: 36), + HSpace(Insets.m * 1.5), + Text(contact.nameFull, style: TextStyles.H2.textColor(theme.txt)), + ], + ), + ), + ); + } +} + +class _SearchCategory extends StatelessWidget { + final AssetImage icon; + final String text; + final Widget child; + + _SearchCategory({@required this.icon, @required this.text, @required this.child}); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [_SearchHeading(icon, text), child.padding(horizontal: Insets.xl, top: Insets.m)], + ).padding(horizontal: Insets.xl, top: Insets.l * 0.9); + } +} + +class _SearchHeading extends StatelessWidget { + final AssetImage icon; + final String text; + + _SearchHeading(this.icon, this.text); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + TextStyle txtStyle = TextStyles.T1.size(FontSizes.s16).letterSpace(0.8).textColor(theme.accent1Darker); + return Row(children: [ + StyledImageIcon(icon, color: theme.grey), + HSpace(Insets.m * 1.5), + Text(text.toUpperCase(), style: txtStyle), + ]); + } +} diff --git a/flokk_src/lib/views/search/search_query_row.dart b/flokk_src/lib/views/search/search_query_row.dart new file mode 100644 index 0000000..081df58 --- /dev/null +++ b/flokk_src/lib/views/search/search_query_row.dart @@ -0,0 +1,133 @@ +import 'dart:math'; + +import 'package:flokk/_internal/components/listenable_builder.dart'; +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/_internal/utils/string_utils.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/scrolling/styled_horizontal_scroll_view.dart'; +import 'package:flokk/styled_components/styled_group_label.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_image_icon.dart'; +import 'package:flokk/styled_components/styled_text_input.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/search/search_bar.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class SearchQueryRow extends StatelessWidget { + final SearchBarState state; + + const SearchQueryRow(this.state, {Key key}) : super(key: key); + + double calcTagWidth(String tag) { + //Calculate all padding in the row (searchIcon + padding + closeIcon + padding) + double tagPadding = 30 + Insets.m + 24 + Insets.m; + //Return size of text + padding + return StringUtils.measure(tag.toUpperCase(), TextStyles.Footnote.letterSpace(0)).width + tagPadding; + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return LayoutBuilder( + builder: (_, constraints) { + //Bind to search engine for results + return ListenableBuilder( + listenable: state.tmpSearch, + builder: (_, __) { + // Calculate the width of the text input based off of the width of the search bar + double contentWidth = constraints.maxWidth - Insets.l + Insets.m; + // Remove size of the close and search icons (in mobile mode, they are combined) + double barQueryWidth = max(0, contentWidth - (Sizes.iconMed + Insets.l)); + if (state.widget.narrowMode == false) { + barQueryWidth -= (Sizes.iconMed + Insets.m * 1.5); + } + //Subtract widths of tags and contacts, to get the max size for text input + double barTextFieldWidth = barQueryWidth; + state.tmpSearch.tagList.forEach((t) => barTextFieldWidth -= calcTagWidth(t)); + state.tmpSearch.filterContactList.forEach((fc) => barTextFieldWidth -= calcTagWidth(fc)); + //Enforce min-size of 200px for search input + barTextFieldWidth = max(200, barTextFieldWidth); + + return Row( + children: [ + HSpace(Insets.l), + if (state.widget.narrowMode == false) ...{ + _SearchIconBtn(state.handleSearchIconPressed), + HSpace(Insets.m), + }, + ConstrainedBox( + constraints: BoxConstraints(maxWidth: barQueryWidth), + child: StyledHorizontalScrollView( + autoScrollDuration: Durations.fast, + autoScrollCurve: Curves.easeOut, + child: Row( + children: [ + for (var tag in state.tmpSearch.tagList) ...{ + StyledGroupLabel(icon: StyledIcons.label, text: tag, onClose: () => state.handleRemoveTag(tag)) + .padding(right: Insets.m), + }, + for (var filterContact in state.tmpSearch.filterContactList) ...{ + StyledGroupLabel( + icon: StyledIcons.user, + text: filterContact, + onClose: () => state.handleRemoveFilterContact(filterContact)).padding(right: Insets.m), + }, + Container( + constraints: BoxConstraints(maxWidth: barTextFieldWidth), + child: StyledSearchTextInput( + contentPadding: EdgeInsets.all(Insets.m * 1.25 - 0.5).copyWith(left: 0), + hintText: state.widget.narrowMode ? "" : "Search for contacts", + key: state.textKey, + onChanged: state.handleSearchChanged, + // Disabled because this callback has different behavior on web for some reason, + // the hook is now in the states _handleRawKeyPressed method + //onFieldSubmitted: (s) => state.handleSearchSubmitted(), + onEditingCancel: state.cancel, + onFocusChanged: state.handleFocusChanged, + onFocusCreated: state.handleTextFocusCreated, + ), + ), + ], + ), + ), + ), + if (state.hasQuery) ...{ + ColorShiftIconBtn( + StyledIcons.closeLarge, + padding: EdgeInsets.zero, + size: 16, + minHeight: 0, + minWidth: 0, + color: theme.grey, + onPressed: state.clearSearch, + ), + } else if (state.widget.narrowMode) ...{ + _SearchIconBtn(state.handleSearchIconPressed), + }, + HSpace(Insets.m), + ], + ); + }); + }, + ); + } +} + +class _SearchIconBtn extends StatelessWidget { + final void Function() onPressed; + + const _SearchIconBtn(this.onPressed, {Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + return StyledImageIcon( + StyledIcons.search, + size: Sizes.iconMed, + color: theme.accent1Darker, + ).clickable(onPressed, opaque: true); + } +} diff --git a/flokk_src/lib/views/welcome/animated_bird_splash.dart b/flokk_src/lib/views/welcome/animated_bird_splash.dart new file mode 100644 index 0000000..9b9afc0 --- /dev/null +++ b/flokk_src/lib/views/welcome/animated_bird_splash.dart @@ -0,0 +1,108 @@ +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/flokk_logo.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/welcome/animated_bird_splash_clipper.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class AnimatedBirdSplashWidget extends StatefulWidget { + final Alignment alignment; + final bool showText; + final bool showLogo; + + const AnimatedBirdSplashWidget({Key key, this.alignment, this.showText = false, this.showLogo = true}) + : super(key: key); + + @override + _AnimatedBirdSplashState createState() => _AnimatedBirdSplashState(); +} + +class _AnimatedBirdSplashState extends State with SingleTickerProviderStateMixin { + GooeyEdge _gooeyEdge; + + AnimationController _animationController; + double _cloudXOffset = 0.0; + + @override + void initState() { + _gooeyEdge = GooeyEdge(); + _animationController = AnimationController(vsync: this); + _animationController.repeat(reverse: true, min: 0.0, max: 1.0, period: 800.milliseconds); + _animationController.addListener(_tick); + super.initState(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + void _tick() { + _gooeyEdge.tick(_animationController.lastElapsedDuration); + _cloudXOffset += _animationController.velocity * 0.08; + while (_cloudXOffset > 800.0) { + _cloudXOffset -= 800.0; + } + setState(() {}); + } + + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + String bgImagePath = "assets/images/onboarding-bg.png"; + String cloudImagePath = "assets/images/onboarding-clouds.png"; + String fgImagePath = "assets/images/onboarding-birds.png"; + return Stack( + children: [ + Stack(children: [ + /// Clipped Image Stack + ClipPath( + clipper: AnimatedBirdSplashClipper(_gooeyEdge), + child: Stack(children: [ + /// BG + _BuildImage(bgImagePath, BoxFit.fill) + .positioned(left: 0, top: 0, right: 0, bottom: 0), + + /// CLOUD 1 + _BuildImage(cloudImagePath) + .translate(offset: Offset(_cloudXOffset, 0)) + .fractionallySizedBox(heightFactor: 0.4), + + /// CLOUD2 + _BuildImage(cloudImagePath) + .translate(offset: Offset(-800 + _cloudXOffset, 0)) + .fractionallySizedBox(heightFactor: 0.4), + + /// Foreground + _BuildImage(fgImagePath, BoxFit.scaleDown).center(), + ]), + ).aspectRatio(aspectRatio: 1.8).constrained(maxWidth: 700), + + /// Loading Text + Text( + "GATHERING YOUR FLOKK...", + style: TextStyles.T1.textColor(theme.accent1Darker), + textAlign: TextAlign.center, + ) //Bottom positioned, fades in and out + .alignment(Alignment.bottomCenter) + .translate(offset: Offset(0, 46)) // Offset text below the bottom edge of the images + .opacity(widget.showText ? 1 : 0, animate: true) + .animate(Durations.slow, Curves.easeOut) + .positioned(left: 0, top: 0, right: 0, bottom: 0) + ]).center(), + + /// Flock Logo + if (widget.showLogo) + FlokkLogo(56, Color(0xff116d5a)) + .center() + .constrained(width: 156, height: 56) + .alignment(Alignment(-0.84, -0.84)), + ], + ); + } + + Widget _BuildImage(String url, [BoxFit fit = BoxFit.fitHeight]) => + Image.asset(url, filterQuality: FilterQuality.high, fit: fit); +} diff --git a/flokk_src/lib/views/welcome/animated_bird_splash_clipper.dart b/flokk_src/lib/views/welcome/animated_bird_splash_clipper.dart new file mode 100644 index 0000000..d2f08e0 --- /dev/null +++ b/flokk_src/lib/views/welcome/animated_bird_splash_clipper.dart @@ -0,0 +1,124 @@ + +import 'dart:math'; + +import 'package:flutter/material.dart'; +import 'package:rnd/rnd.dart'; + +class AnimatedBirdSplashClipper extends CustomClipper { + final GooeyEdge gooeyEdge; + + AnimatedBirdSplashClipper(this.gooeyEdge); + + @override + Path getClip(Size size) { + return gooeyEdge.buildPath(size); + } + + @override + bool shouldReclip(AnimatedBirdSplashClipper oldClipper) { + return true; + } +} + + +class GooeyEdge { + List<_Point> points; + double damping = 0.85; + double tension = 0.005; + double roundness = 0.6; + int count; + double edgeFactor; + int lastT = 0; + + // TODO: initValues? + GooeyEdge({this.count=8, this.edgeFactor=0.09}) { + points = []; + int ttl = count * 4 - 2; + for (int i=0; i WelcomePageState(); +} + +/// WelcomePage will hold the state for the sub-views, this primarily to easily avoid any issues +/// with state of [WelcomePageStep2] being lost when we re-arrange the widget tree +class WelcomePageState extends State { + GoogleRestService googleRest; + GoogleAuthEndpointInfo authInfo; + String authUrl = "https://google.com"; + String authCode = "10001"; + bool httpError = false; + bool authCodeError = false; + int pageIndex = 0; + + bool get isLoading => _isLoading; + bool _isLoading = false; + + set isLoading(bool value) => setState(() => _isLoading = value); + + Size prevSize; + bool showContent; + bool twoColumnMode = true; + + @override + void initState() { + showContent = widget.initialPanelOpen; + googleRest = GoogleRestService(); + loadAuthInfo(); + + //Need to call signInSilently() in initState() to prevent FF from showing popup alert + if (UniversalPlatform.isWeb) { + final gs = GoogleSignIn( + clientId: ApiKeys().googleWebClientId, + scopes: ['https://www.googleapis.com/auth/contacts'], + ); + gs.signInSilently(); + } + super.initState(); + } + + //TODO: This is currently firing every time the app loads, should only fire when they hit the btn, and only on desktop + Future loadAuthInfo() async { + httpError = false; + authCodeError = false; + ServiceResult result = await googleRest.auth.getAuthEndpoint(); + authInfo = result.content; + if (authInfo != null) { + authCode = authInfo.userCode; + authUrl = authInfo.verificationUrl; + } else { + httpError = true; + } + isLoading = false; + } + + /// Allows someone else to tell us to open the panel + void showPanel(value) => setState(() => showContent = value); + + void refreshDataAndLoadApp() async { + /// Load initial contacts + isLoading = true; + await RefreshContactsCommand(context).execute(); + await RefreshSocialCommand(context).execute(context.read().allContacts); + + /// Show main app view + Navigator.push(context, PageRoutes.fade(() => MainScaffold(), Durations.slow.inMilliseconds * .001)); + } + + void handleUrlClicked() => UrlLauncher.open(authUrl); + + void handleCodeClicked() => Clipboard.setData(ClipboardData(text: authCode)); + + void handleRefreshPressed() { + setState(() => _isLoading = true); + loadAuthInfo(); + } + + void handleStartPressed() async { + if (UniversalPlatform.isWeb) { + bool success = await WebSignInCommand(context).execute(); + // We're in :) Load main app + if (success) refreshDataAndLoadApp(); + } else { + setState(() => pageIndex = 1); + } + } + + void handleCompletePressed() async { + if (httpError) { + Dialogs.show(OkCancelDialog( + message: "We are unable to authorize with Google's servers. " + "Check your internet connection and try again.", + )); + return; + } + isLoading = true; + authCodeError = false; + await Future.delayed(Duration(milliseconds: 500)); + ServiceResult result = await googleRest.auth.authorizeDevice(authInfo.deviceCode); + GoogleAuthResults authResults = result.content; + if (authResults != null) { + //We have a token! Update the model. + AuthModel model = Provider.of(context, listen: false); + model.googleEmail = authResults.email; + model.googleAccessToken = authResults.accessToken; + model.googleRefreshToken = authResults.refreshToken; + model.setExpiry(authResults.expiresIn); + model.scheduleSave(); + // Hide panel since we know we're basically logged in now... + setState(() => showContent = false); + // Load main app + refreshDataAndLoadApp(); + } else { + authCodeError = true; + isLoading = false; + } + } + + @override + Widget build(BuildContext context) { + /// Provide this ViewModel/State to the sub-views, so they can easily call fxns or lookup state + return Provider.value(value: this, child: _WelcomePageStateView()); + } +} + +class _WelcomePageStateView extends StatelessWidget { + @override + Widget build(BuildContext context) { + WelcomePageState state = context.watch(); + //Check a breakpoint to see whether we want side:side view or full screen + double columnBreakPt = PageBreaks.TabletLandscape - 100; + state.twoColumnMode = context.widthPx > columnBreakPt; + // Calculate how wide we want the panel, add some extra width as it grows + double contentWidth = state.twoColumnMode ? 300 : double.infinity; + if (state.twoColumnMode) { + // For every 100px > the PageBreak add some panel width. Cap at some max width. + double maxWidth = 700; + contentWidth += min(maxWidth, context.widthPx * .15); + } + // Looks janky if Birds animate when resizing window + // disable animations if we're rebuilding because of resize + bool skipBirdTransition = false; + if (state.prevSize != context.sizePx) skipBirdTransition = true; + state.prevSize = context.sizePx; + + return Scaffold( + backgroundColor: Colors.white, + body: TweenAnimationBuilder( + duration: Durations.slow, + tween: Tween(begin: 0, end: 1), + builder: (_, value, ___) => Opacity( + opacity: value, + child: Center( + child: Stack( + fit: StackFit.expand, + children: [ + Container( + alignment: Alignment.center, + child: AnimatedBirdSplashWidget( + showText: state.isLoading, + ), + ) + .opacity(1.0) + .padding(right: (state.showContent && state.twoColumnMode ? contentWidth : 0), animate: true) + .animate( + skipBirdTransition ? 0.seconds : Durations.slow, + Curves.easeOut, + ), + _WelcomeContentStack() + .width(contentWidth) + // Use an AnimatedPanel to slide the panel open/closed + .animatedPanelX( + isClosed: !state.showContent, + closeX: context.widthPx, + curve: Curves.easeOut, + duration: Durations.slow.inMilliseconds * .001, + ) + // Pin the left side on fullscreen, respect existing width otherwise + .positioned(top: 0, bottom: 0, right: 0, left: state.twoColumnMode ? null : 0) + ], + ), + ), + ), + )); + } +} + +/// Holds the 2 WelcomePages and an IndexedStack to switch between them +class _WelcomeContentStack extends StatelessWidget { + const _WelcomeContentStack({Key key}) : super(key: key); + + void _handlePrivacyPolicyPressed(String value) { + UrlLauncher.openHttp("https://flokk.app/privacy.html"); + } + + @override + Widget build(BuildContext context) { + WelcomePageState state = context.watch(); + //Bg shape is rounded on the left corners when in dual-column mode, but square in full-screen + BorderRadius getBgShape() => state.twoColumnMode + ? BorderRadius.only(topLeft: Radius.circular(Corners.s10), bottomLeft: Radius.circular(Corners.s10)) + : null; + + AppTheme theme = context.watch(); + return state.isLoading + ? StyledProgressSpinner().backgroundColor(theme.accent1) + : Stack( + children: [ + FadingIndexedStack( + duration: Durations.slow, + index: state.pageIndex, + children: [ + WelcomePageStep1(singleColumnMode: !state.twoColumnMode).scrollable().center(), + WelcomePageStep2().scrollable().center(), + ], + ).padding(vertical: Insets.l * 1.5).center(), + ClickableText( + "Privacy Policy", + linkColor: Colors.white, + underline: true, + onPressed: _handlePrivacyPolicyPressed, + ).padding(bottom: Insets.m).alignment(Alignment.bottomCenter), + ], + ) + .padding(horizontal: Insets.l) + .decorated(color: theme.accent1, borderRadius: getBgShape()) + .alignment(Alignment.center) + .width(double.infinity); + } +} diff --git a/flokk_src/lib/views/welcome/welcome_page_step1.dart b/flokk_src/lib/views/welcome/welcome_page_step1.dart new file mode 100644 index 0000000..c000d62 --- /dev/null +++ b/flokk_src/lib/views/welcome/welcome_page_step1.dart @@ -0,0 +1,57 @@ +import 'package:flokk/_internal/components/seperated_flexibles.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/primary_btn.dart'; +import 'package:flokk/styled_components/flokk_logo.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/views/welcome/animated_bird_splash.dart'; +import 'package:flokk/views/welcome/welcome_page.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class WelcomePageStep1 extends StatelessWidget { + final bool singleColumnMode; + + const WelcomePageStep1({Key key, this.singleColumnMode = false}) : super(key: key); + + @override + Widget build(BuildContext context) { + WelcomePageState state = context.watch(); + TextStyle bodyTxtStyle = TextStyles.Body1.textColor(Color(0xfff1f7f0)).textHeight(1.6); + return SeparatedColumn( + separatorBuilder: () => SizedBox(height: Insets.l), + mainAxisAlignment: MainAxisAlignment.start, + children: [ + if (singleColumnMode) FlokkLogo(50, Colors.white).center(), + if (singleColumnMode) + AnimatedBirdSplashWidget(alignment: Alignment.bottomCenter, showLogo: false) + .padding(all: Insets.m * 1.5) + .height(context.heightPx * .4), + [ + Text( + "Welcome to Flokk Contacts", + style: TextStyles.CalloutFocus.bold.size(24).textColor(Colors.white), + textAlign: TextAlign.center, + ), + Text( + "Flokk is a modern Google Contacts manager that integrates with your connections on Twitter and GitHub.", + style: bodyTxtStyle, + textAlign: TextAlign.center, + ).padding(vertical: Insets.l), + Text( + "To get started, you will first need to authorize this application and import your existing Google Contacts.", + style: bodyTxtStyle, + textAlign: TextAlign.center, + ), + ].toColumn().constrained(maxWidth: 400), + kIsWeb + ? Image.asset("assets/images/google-signin.png", height: 50).gestures(onTap: state.handleStartPressed) + : PrimaryTextBtn( + "LET'S START!", + bigMode: true, + onPressed: state.handleStartPressed, + ).padding(top: Insets.m).width(239), + ], + ).padding(vertical: Insets.l); + } +} diff --git a/flokk_src/lib/views/welcome/welcome_page_step2.dart b/flokk_src/lib/views/welcome/welcome_page_step2.dart new file mode 100644 index 0000000..12f87b7 --- /dev/null +++ b/flokk_src/lib/views/welcome/welcome_page_step2.dart @@ -0,0 +1,153 @@ +import 'package:flokk/_internal/components/spacing.dart'; +import 'package:flokk/app_extensions.dart'; +import 'package:flokk/styled_components/buttons/colored_icon_btn.dart'; +import 'package:flokk/styled_components/buttons/primary_btn.dart'; +import 'package:flokk/styled_components/styled_icons.dart'; +import 'package:flokk/styled_components/styled_progress_spinner.dart'; +import 'package:flokk/styles.dart'; +import 'package:flokk/themes.dart'; +import 'package:flokk/views/welcome/welcome_page.dart'; +import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; + +class WelcomePageStep2 extends StatefulWidget { + const WelcomePageStep2({Key key}) : super(key: key); + + @override + _WelcomePageStep2State createState() => _WelcomePageStep2State(); +} + +class _WelcomePageStep2State extends State { + @override + Widget build(BuildContext context) { + AppTheme theme = context.watch(); + WelcomePageState state = context.watch(); + + TextStyle bodyTxtStyle = TextStyles.Body1.textColor(Colors.white).textHeight(1.6); + TextStyle titleTxtStyle = TextStyles.T1.textColor(theme.accent1Darker); + TextStyle headerTxtStyle = TextStyles.CalloutFocus.bold.size(24).textColor(Colors.white); + + return state.isLoading + ? StyledProgressSpinner() + : Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text("Authorization", style: headerTxtStyle, textAlign: TextAlign.center), + VSpace(Insets.l * 2), + + /// //////////////////////////////////////////////// + /// STEP 1 + Text("STEP 1", style: titleTxtStyle, textAlign: TextAlign.center), + Text( + "Copy the following code to your clipboard by clicking the icon or selecting the text.", + style: bodyTxtStyle, + textAlign: TextAlign.center, + ), + + /// DEVICE CODE BOX + StyledOutlinedBox( + child: state.isLoading + ? StyledProgressSpinner() + : Stack( + fit: StackFit.expand, + children: [ + SelectableText("${state.authCode}", style: bodyTxtStyle.size(16)).center(), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ColorShiftIconBtn(StyledIcons.refresh, + size: 28, color: Colors.white, onPressed: state.handleRefreshPressed), + ColorShiftIconBtn(StyledIcons.copy, + size: 24, color: Colors.white, onPressed: state.handleCodeClicked), + ], + ).padding(horizontal: Insets.m), + ], + ), + ).padding(vertical: Insets.l), + VSpace(Insets.m), + + /// //////////////////////////////////////////////// + /// STEP 2 + Text("STEP 2", style: titleTxtStyle, textAlign: TextAlign.center), + Text( + "Navigate to the following link and enter the code you’ve copied.\nFollow the provided instructions to authorize this application.", + style: bodyTxtStyle, + textAlign: TextAlign.center, + ), + + /// DEVICE URL BOX + StyledOutlinedBox( + child: state.isLoading + ? StyledProgressSpinner() + : Stack( + fit: StackFit.expand, + children: [ + SelectableText("${state.authUrl}", style: bodyTxtStyle.size(16)).center(), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ColorShiftIconBtn(StyledIcons.linkout, + size: 24, color: Colors.white, onPressed: state.handleUrlClicked), + ], + ).padding(horizontal: Insets.m), + ], + ), + ).padding(vertical: Insets.l), + VSpace(Insets.m), + + /// //////////////////////////////////////////////// + /// STEP 3 + Text("STEP 3", style: titleTxtStyle, textAlign: TextAlign.center), + Text( + "Press the button below when you have completed the process.", + style: bodyTxtStyle, + textAlign: TextAlign.center, + ), + VSpace(Insets.m), + PrimaryTextBtn( + "CONTINUE", + bigMode: true, + onPressed: state.handleCompletePressed, + ).padding(top: Insets.m).width(215), + VSpace(Insets.l), + if (state.authCodeError || state.httpError) + Text( + "Error: ${getCurrentErrorCode(state)}", + textAlign: TextAlign.center, + style: TextStyles.T1.bold.textColor( + theme.error, + ), + ).padding(all: Insets.m).decorated( + color: Colors.white, + borderRadius: BorderRadius.circular(Corners.s5), + ), + ], + ).constrained(maxWidth: 500); + } + + String getCurrentErrorCode(WelcomePageState state) { + if (state.httpError) { + return "We couldn’t connect to the internet. Please check your connection."; + } else { + return "We couldn’t authorize your account. Please make sure that you’ve completed the entire verification process."; + } + } +} + +class StyledOutlinedBox extends StatelessWidget { + final Widget child; + + const StyledOutlinedBox({Key key, this.child}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + height: 60, + decoration: BoxDecoration( + borderRadius: Corners.s8Border, + border: Border.all(color: Colors.white.withOpacity(.35), width: 1.2), + ), + child: child, + ); + } +} diff --git a/flokk_src/linux/.gitignore b/flokk_src/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/flokk_src/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/flokk_src/linux/CMakeLists.txt b/flokk_src/linux/CMakeLists.txt new file mode 100644 index 0000000..6f28e6a --- /dev/null +++ b/flokk_src/linux/CMakeLists.txt @@ -0,0 +1,96 @@ +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +set(BINARY_NAME "flokk-contacts") + +cmake_policy(SET CMP0063 NEW) + +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Configure build options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") + +# Flutter library and tool build rules. +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +# Application build +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "window_configuration.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) +apply_standard_settings(${BINARY_NAME}) +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/flokk_src/linux/flutter/.template_version b/flokk_src/linux/flutter/.template_version new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/flokk_src/linux/flutter/.template_version @@ -0,0 +1 @@ +4 diff --git a/flokk_src/linux/flutter/CMakeLists.txt b/flokk_src/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..17576f6 --- /dev/null +++ b/flokk_src/linux/flutter/CMakeLists.txt @@ -0,0 +1,86 @@ +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + linux-x64 ${CMAKE_BUILD_TYPE} +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/flokk_src/linux/flutter/generated_plugin_registrant.h b/flokk_src/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..9bf7478 --- /dev/null +++ b/flokk_src/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,13 @@ +// +// Generated file. Do not edit. +// + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/flokk_src/linux/flutter/generated_plugins.cmake b/flokk_src/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..cb9b998 --- /dev/null +++ b/flokk_src/linux/flutter/generated_plugins.cmake @@ -0,0 +1,17 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_chooser + window_size +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter\ephemeral\.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) diff --git a/flokk_src/linux/main.cc b/flokk_src/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/flokk_src/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/flokk_src/linux/my_application.cc b/flokk_src/linux/my_application.cc new file mode 100644 index 0000000..eb36c6d --- /dev/null +++ b/flokk_src/linux/my_application.cc @@ -0,0 +1,42 @@ +#include "my_application.h" + +#include + +#include "flutter/generated_plugin_registrant.h" +#include "window_configuration.h" + +struct _MyApplication { + GtkApplication parent_instance; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + gtk_widget_show(GTK_WIDGET(window)); + gtk_widget_set_size_request(GTK_WIDGET(window), kFlutterWindowWidth, + kFlutterWindowHeight); + gtk_window_set_title(window, kFlutterWindowTitle); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), nullptr)); +} diff --git a/flokk_src/linux/my_application.h b/flokk_src/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/flokk_src/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/flokk_src/linux/window_configuration.cc b/flokk_src/linux/window_configuration.cc new file mode 100644 index 0000000..39b1add --- /dev/null +++ b/flokk_src/linux/window_configuration.cc @@ -0,0 +1,5 @@ +#include "window_configuration.h" + +const char *kFlutterWindowTitle = "Flokk Contacts"; +const unsigned int kFlutterWindowWidth = 1366; +const unsigned int kFlutterWindowHeight = 768; diff --git a/flokk_src/linux/window_configuration.h b/flokk_src/linux/window_configuration.h new file mode 100644 index 0000000..8592c5b --- /dev/null +++ b/flokk_src/linux/window_configuration.h @@ -0,0 +1,15 @@ +#ifndef WINDOW_CONFIGURATION_ +#define WINDOW_CONFIGURATION_ + +// This is a temporary approach to isolate common customizations from main.cc, +// where the APIs are still in flux. This should simplify re-creating the +// runner while preserving local changes. +// +// Longer term there should be simpler configuration options for common +// customizations like this, without requiring native code changes. + +extern const char *kFlutterWindowTitle; +extern const unsigned int kFlutterWindowWidth; +extern const unsigned int kFlutterWindowHeight; + +#endif // WINDOW_CONFIGURATION_ diff --git a/flokk_src/macos/.gitignore b/flokk_src/macos/.gitignore new file mode 100644 index 0000000..d2fd377 --- /dev/null +++ b/flokk_src/macos/.gitignore @@ -0,0 +1,6 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/xcuserdata/ diff --git a/flokk_src/macos/Flutter/Flutter-Debug.xcconfig b/flokk_src/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..785633d --- /dev/null +++ b/flokk_src/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/flokk_src/macos/Flutter/Flutter-Release.xcconfig b/flokk_src/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..5fba960 --- /dev/null +++ b/flokk_src/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1,2 @@ +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/flokk_src/macos/Flutter/GeneratedPluginRegistrant.swift b/flokk_src/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..af52176 --- /dev/null +++ b/flokk_src/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,20 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import file_chooser +import window_size +import path_provider_macos +import shared_preferences_macos +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + FileChooserPlugin.register(with: registry.registrar(forPlugin: "FileChooserPlugin")) + WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/flokk_src/macos/Podfile b/flokk_src/macos/Podfile new file mode 100644 index 0000000..d60ec71 --- /dev/null +++ b/flokk_src/macos/Podfile @@ -0,0 +1,82 @@ +platform :osx, '10.11' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def parse_KV_file(file, separator='=') + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return []; + end + pods_ary = [] + skip_line_start_symbols = ["#", "/"] + File.foreach(file_abs_path) { |line| + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } + plugin = line.split(pattern=separator) + if plugin.length == 2 + podname = plugin[0].strip() + path = plugin[1].strip() + podpath = File.expand_path("#{path}", file_abs_path) + pods_ary.push({:name => podname, :path => podpath}); + else + puts "Invalid plugin specification: #{line}" + end + } + return pods_ary +end + +def pubspec_supports_macos(file) + file_abs_path = File.expand_path(file) + if !File.exists? file_abs_path + return false; + end + File.foreach(file_abs_path) { |line| + return true if line =~ /^\s*macos:/ + } + return false +end + +target 'Runner' do + use_frameworks! + use_modular_headers! + + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock + # referring to absolute paths on developers' machines. + ephemeral_dir = File.join('Flutter', 'ephemeral') + symlink_dir = File.join(ephemeral_dir, '.symlinks') + symlink_plugins_dir = File.join(symlink_dir, 'plugins') + system("rm -rf #{symlink_dir}") + system("mkdir -p #{symlink_plugins_dir}") + + # Flutter Pods + generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig')) + if generated_xcconfig.empty? + puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first." + end + generated_xcconfig.map { |p| + if p[:name] == 'FLUTTER_FRAMEWORK_DIR' + symlink = File.join(symlink_dir, 'flutter') + File.symlink(File.dirname(p[:path]), symlink) + pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path])) + end + } + + # Plugin Pods + plugin_pods = parse_KV_file('../.flutter-plugins') + plugin_pods.map { |p| + symlink = File.join(symlink_plugins_dir, p[:name]) + File.symlink(p[:path], symlink) + if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml')) + pod p[:name], :path => File.join(symlink, 'macos') + end + } +end + +# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system. +install! 'cocoapods', :disable_input_output_paths => true diff --git a/flokk_src/macos/Podfile.lock b/flokk_src/macos/Podfile.lock new file mode 100644 index 0000000..9b2e864 --- /dev/null +++ b/flokk_src/macos/Podfile.lock @@ -0,0 +1,56 @@ +PODS: + - file_chooser (0.0.2): + - FlutterMacOS + - FlutterMacOS (1.0.0) + - path_provider_macos (0.0.1): + - FlutterMacOS + - shared_preferences (0.0.1) + - shared_preferences_macos (0.0.1): + - FlutterMacOS + - url_launcher (0.0.1) + - url_launcher_macos (0.0.1): + - FlutterMacOS + - window_size (0.0.2): + - FlutterMacOS + +DEPENDENCIES: + - file_chooser (from `Flutter/ephemeral/.symlinks/plugins/file_chooser/macos`) + - FlutterMacOS (from `Flutter/ephemeral/.symlinks/flutter/darwin-x64-release`) + - path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`) + - shared_preferences (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos`) + - shared_preferences_macos (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos`) + - url_launcher (from `Flutter/ephemeral/.symlinks/plugins/url_launcher/macos`) + - url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`) + - window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`) + +EXTERNAL SOURCES: + file_chooser: + :path: Flutter/ephemeral/.symlinks/plugins/file_chooser/macos + FlutterMacOS: + :path: Flutter/ephemeral/.symlinks/flutter/darwin-x64-release + path_provider_macos: + :path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos + shared_preferences: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences/macos + shared_preferences_macos: + :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_macos/macos + url_launcher: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher/macos + url_launcher_macos: + :path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos + window_size: + :path: Flutter/ephemeral/.symlinks/plugins/window_size/macos + +SPEC CHECKSUMS: + file_chooser: 24432cf5dc836722b05c11c2a0a30d19c3c9b996 + FlutterMacOS: 15bea8a44d2fa024068daa0140371c020b4b6ff9 + path_provider_macos: adb94ae6c253c45ef2aac146fbf1f4504d74b0f8 + shared_preferences: 9fec34d1bd906196a4da48fcf6c3ad521cc00b8d + shared_preferences_macos: 5e5c2839894accb56b7d23328905b757f2bafaf6 + url_launcher: af78307ef9bafff91273b34f1c6c0c86a0004fd7 + url_launcher_macos: 76867a28e24e0b6b98bfd65f157b64108e6d477a + window_size: 339dafa0b27a95a62a843042038fa6c3c48de195 + +PODFILE CHECKSUM: d8ba9b3e9e93c62c74a660b46c6fcb09f03991a7 + +COCOAPODS: 1.9.1 diff --git a/flokk_src/macos/Runner.xcodeproj/project.pbxproj b/flokk_src/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3e76a3f --- /dev/null +++ b/flokk_src/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,653 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; }; + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 33ED57F6868520F1A5AD7E05 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DBE9A05F81536E7CC1EF874F /* Pods_Runner.framework */; }; + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; }; + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */, + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */, + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 06B92AD24BA9A7C825B4F767 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* Flokk Contacts.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Flokk Contacts.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + 9870544E3D46909BAC6B2388 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + CFAD0631A399198584780275 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; }; + DBE9A05F81536E7CC1EF874F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */, + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */, + 33ED57F6868520F1A5AD7E05 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + 6C30B9EDB93BB4AE28985C5A /* Pods */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* Flokk Contacts.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + D73912EF22F37F9E000D13A0 /* App.framework */, + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + 6C30B9EDB93BB4AE28985C5A /* Pods */ = { + isa = PBXGroup; + children = ( + 9870544E3D46909BAC6B2388 /* Pods-Runner.debug.xcconfig */, + CFAD0631A399198584780275 /* Pods-Runner.release.xcconfig */, + 06B92AD24BA9A7C825B4F767 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + DBE9A05F81536E7CC1EF874F /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + AB2ED158C69CFA4199E04879 /* [CP] Check Pods Manifest.lock */, + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + 4E390F38A0B912A52BC0570E /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* Flokk Contacts.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 0930; + ORGANIZATIONNAME = "The Flutter Authors"; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 8.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n"; + }; + 4E390F38A0B912A52BC0570E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + AB2ED158C69CFA4199E04879 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter/ephemeral", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/flokk_src/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flokk_src/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/flokk_src/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flokk_src/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/flokk_src/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..c4c7630 --- /dev/null +++ b/flokk_src/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flokk_src/macos/Runner.xcworkspace/contents.xcworkspacedata b/flokk_src/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..21a3cc1 --- /dev/null +++ b/flokk_src/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/flokk_src/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/flokk_src/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/flokk_src/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/flokk_src/macos/Runner/AppDelegate.swift b/flokk_src/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/flokk_src/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..34ccffe57af3c1d9c16b5b9cca158357db83740d GIT binary patch literal 101083 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

2m1BE?@Ne>@% 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 + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/flokk_src/macos/Runner/Configs/AppInfo.xcconfig b/flokk_src/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..5f3557c --- /dev/null +++ b/flokk_src/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = Flokk Contacts + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = app.flokk + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2020 com.gskinner. All rights reserved. diff --git a/flokk_src/macos/Runner/Configs/Debug.xcconfig b/flokk_src/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/flokk_src/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/flokk_src/macos/Runner/Configs/Release.xcconfig b/flokk_src/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/flokk_src/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/flokk_src/macos/Runner/Configs/Warnings.xcconfig b/flokk_src/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/flokk_src/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/flokk_src/macos/Runner/DebugProfile.entitlements b/flokk_src/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..8165abf --- /dev/null +++ b/flokk_src/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,16 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + com.apple.security.network.client + + com.apple.security.files.user-selected.read-only + + + diff --git a/flokk_src/macos/Runner/Info.plist b/flokk_src/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/flokk_src/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/flokk_src/macos/Runner/MainFlutterWindow.swift b/flokk_src/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..2722837 --- /dev/null +++ b/flokk_src/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/flokk_src/macos/Runner/Release.entitlements b/flokk_src/macos/Runner/Release.entitlements new file mode 100644 index 0000000..741903e --- /dev/null +++ b/flokk_src/macos/Runner/Release.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + com.apple.security.files.user-selected.read-only + + + diff --git a/flokk_src/pubspec.lock b/flokk_src/pubspec.lock new file mode 100644 index 0000000..640a3c7 --- /dev/null +++ b/flokk_src/pubspec.lock @@ -0,0 +1,664 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _discoveryapis_commons: + dependency: transitive + description: + name: _discoveryapis_commons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.9" + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "0.39.10" + animations: + dependency: "direct main" + description: + name: animations + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0+5" + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.13" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.1" + build: + dependency: transitive + description: + name: build + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + build_config: + dependency: transitive + description: + name: build_config + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.2" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.3" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.14.12" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + csslib: + dependency: transitive + description: + name: csslib + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.3" + dartx: + dependency: "direct main" + description: + name: dartx + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.2" + dotted_border: + dependency: "direct main" + description: + name: dotted_border + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + draggable_scrollbar: + dependency: "direct main" + description: + name: draggable_scrollbar + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" + faker: + dependency: "direct main" + description: + name: faker + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" + file_chooser: + dependency: "direct main" + description: + path: "plugins/file_chooser" + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + resolved-ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + url: "git://github.com/google/flutter-desktop-embedding.git" + source: git + version: "0.2.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_hooks: + dependency: "direct main" + description: + name: flutter_hooks + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + github: + dependency: "direct main" + description: + name: github + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.3" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + google_sign_in: + dependency: "direct main" + description: + name: google_sign_in + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.4" + google_sign_in_platform_interface: + dependency: transitive + description: + name: google_sign_in_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + google_sign_in_web: + dependency: transitive + description: + name: google_sign_in_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.4" + googleapis: + dependency: "direct main" + description: + name: googleapis + url: "https://pub.dartlang.org" + source: hosted + version: "0.54.0" + html: + dependency: transitive + description: + name: html + url: "https://pub.dartlang.org" + source: hosted + version: "0.14.0+3" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.0+4" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.3" + image: + dependency: "direct main" + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.12" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.1+1" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.5" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "0.11.4" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.6" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.8" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" + node_interop: + dependency: transitive + description: + name: node_interop + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + node_io: + dependency: transitive + description: + name: node_io + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1+2" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + package_info: + dependency: "direct main" + description: + name: package_info + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.0+16" + path: + dependency: "direct main" + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.4" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" + path_provider: + dependency: "direct main" + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.1" + path_provider_fde: + dependency: "direct main" + description: + path: "plugins/flutter_plugins/path_provider_fde" + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + resolved-ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + url: "git://github.com/google/flutter-desktop-embedding.git" + source: git + version: "0.0.1" + path_provider_macos: + dependency: "direct main" + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.12" + provider: + dependency: "direct main" + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.0-dev+2" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.3" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" + quiver: + dependency: transitive + description: + name: quiver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.3" + rnd: + dependency: "direct main" + description: + name: rnd + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.6+2" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+6" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+4" + sized_context: + dependency: "direct main" + description: + name: sized_context + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1+1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.5" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.3" + statsfl: + dependency: "direct main" + description: + name: statsfl + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.3" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + styled_widget: + dependency: "direct main" + description: + name: styled_widget + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.1+2" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + textstyle_extensions: + dependency: "direct main" + description: + name: textstyle_extensions + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + time: + dependency: transitive + description: + name: time + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + timeago: + dependency: "direct main" + description: + name: timeago + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.26" + tuple: + dependency: "direct main" + description: + name: tuple + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.6" + universal_platform: + dependency: "direct main" + description: + name: universal_platform + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+1" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "5.4.5" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+4" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.6" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+1" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.8" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7+13" + window_size: + dependency: "direct main" + description: + path: "plugins/window_size" + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + resolved-ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + url: "git://github.com/google/flutter-desktop-embedding.git" + source: git + version: "0.1.0" + xdg_directories: + dependency: "direct main" + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "3.7.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" +sdks: + dart: ">=2.9.0-14.0.dev <3.0.0" + flutter: ">=1.15.17-pre.5 <2.0.0" diff --git a/flokk_src/pubspec.yaml b/flokk_src/pubspec.yaml new file mode 100644 index 0000000..7c725f3 --- /dev/null +++ b/flokk_src/pubspec.yaml @@ -0,0 +1,100 @@ +name: flokk +description: A fresh and modern Google Contacts manager that integrates with GitHub and Twitter. +version: 1.0.1 +environment: + sdk: ">=2.6.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + animations: ^1.0.0+5 + cupertino_icons: ^0.1.3 + dartx: ^0.4.0 + dotted_border: ^1.0.5 + draggable_scrollbar: ^0.0.4 + faker: ^1.2.1 + flutter_hooks: ^0.8.0 + #flutter_svg: ^0.18.0 # removed due to issues with Web builds + github: ^6.1.3 + google_sign_in: ^4.1.4 + googleapis: ^0.54.0 + http: ^0.12.0+4 + image: ^2.1.12 + intl: ^0.16.1 + json_annotation: ^3.0.0 + package_info: ^0.4.0+13 + path: ^1.6.4 + path_provider: 1.6.1 + path_provider_macos: ^0.0.4 + provider: ^4.1.0-dev+2 + rnd: ^0.1.0 + shared_preferences: + sized_context: ^0.2.1 + statsfl: ^0.0.3 + styled_widget: ^0.2.1 + textstyle_extensions: ^1.0.0 + timeago: ^2.0.26 + tuple: ^1.0.3 + universal_platform: ^0.1.2 + url_launcher: + xdg_directories: ^0.1.0 + + file_chooser: + git: + url: git://github.com/google/flutter-desktop-embedding.git + path: plugins/file_chooser + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + path_provider_fde: + git: + url: git://github.com/google/flutter-desktop-embedding.git + path: plugins/flutter_plugins/path_provider_fde + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + window_size: + git: + url: git://github.com/google/flutter-desktop-embedding.git + path: plugins/window_size + ref: b0794faf2c000576515aee56ca6bb5bee64cece4 + +dev_dependencies: + json_serializable: ^3.2.0 # Generate JSON parsers: flutter pub run build_runner build --delete-conflicting-outputs + +flutter: + uses-material-design: true + fonts: + - family: Quicksand + fonts: + - asset: assets/fonts/Quicksand-Light.ttf + weight: 200 + - asset: assets/fonts/Quicksand-Regular.ttf + weight: 400 + - asset: assets/fonts/Quicksand-SemiBold.ttf + weight: 500 + - asset: assets/fonts/Quicksand-Medium.ttf + weight: 600 + - asset: assets/fonts/Quicksand-Bold.ttf + weight: 700 + + - family: Lato + fonts: + - asset: assets/fonts/Lato-Thin.ttf + weight: 200 + - asset: assets/fonts/Lato-Light.ttf + weight: 300 + - asset: assets/fonts/Lato-Regular.ttf + weight: 400 + - asset: assets/fonts/Lato-Bold.ttf + weight: 700 + - asset: assets/fonts/Lato-Black.ttf + weight: 800 + + - family: OpenSansEmoji + fonts: + - asset: assets/fonts/OpenSansEmoji.ttf + + assets: + - assets/images/ + - assets/images/birds/ + - assets/images/flokk-logo.svg + - assets/images/avatars/ + - assets/icons/ + diff --git a/flokk_src/web/favicon.png b/flokk_src/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdf4b2e3d848630eb65d9be988785a91b2d5e9f GIT binary patch literal 2177 zcmV-{2!8j8P)ua* zP_RSR0gSQNHooE8uD#yfv*$AX=BzJk?9$lnNN3ONoSFH*`Tp(W4C@_ zInGg2INL1S4i{Vp#m5EPi}ks;%eL9?ChGRx*l$4hV7L*xn<*R}{tT zsK{QUGs*gioOznYn&u{*H|QDpe*jp(L*p$zU2FcuuERsBT)8Qf(|~AN=(3uc0!Pzf z>AsT3fUBrWCZo-!g5#c+ww2z|?$^|ydOVxYdo-?wfh>)e6OqWH_ z`ouH1^kfrkGNcN3{yT(nR41x!3oR?FN#mPuUB^rB{{aCl1KUUX^L{|1z9>pibzu$I z-+msk(E^-*H0p}e;A_9h0mrAz6ip;8h{$D zf&akE(Bg3j%fjx~PchbZ9v?KmLYC|~lVN?Xw$ittkGCgUP}!J-vq6FGDqs_=eQBt* zVHjIph5ASx8|Zt7Y#cmnsl{45MPCs76zR2a{v0l$sckEn=kjB@2VoUS_%Z@-0+ z;S@d|Dxk9_59t-mrh`=hkREiIR0Km&)&*DXbOsfV~7Y7WPw7eEf2G+{TUJ3<3tVPtdVwgsml$aLBR@$WR%w z47`!7MNi%bl|H*M2)tU8!_M`@Tu`7f_Ift$z!+Jm8XNF5F$=*9b4f}v;~<|c;PYGe zU^628q``>A=ex@#~z0prnjQIywh%yJrNS-RztDH2+=}fRxBcK`(|2{iQRXg9nY2h+wciiC!a) zOnEH~+r*tsJ8^l>fhGIB%n3WI4fqYRB{QNXBW9_&WnCcQNuh|DEYEoYjdgxZOzY@Q z2jP7GHTVMD=}k(~wz%`U_+-z^kf(reT>H=i;xO}BOh!*u88{FR;;%hfre)42Cw`zT zg~Sdre~WY)=9TL}&oBa$Q#g630k1z@1)t(V&?Vk}&%QDu1S?3nP!J0n2>Uclwa*p-X1IX!GcH7=|Vt zScg$2G8buoc}7W&-o2~^wZ_tWfywLFwPXexqCW251!S{X*m8iC#c#(iAfHMh)i;i{ z;aVL0>T^8o_=?xIMOU*qrIaYngHilZ7^-DPu$9rNoM2O9$v1Cv+x2J}a<+}U!(()a z2WR@%=lBpw1?kf)l231%C-%c-U|OWSjflH29N_1s;2J-14j zDR8Ay4<;i(w#&TmWv=Hml;KshLlw%2U+z6Te?9*s*1%W{9#zuNJAP^)I_@BkX z1pMB(Nu&X{6G2Ayp&$?&_wfZDow<7m0tuNI>uFyhwiPm-xEKCr2@#bKGGq9q z4@&RIU1`Ihkn=355@+oo_t=~{^jx_*F$|)pqPgUbzo)%+nz^LIs_v{gI}g3c;Vls8 ziL?@#o$8&t`{&TU%tF0lmRFxFoxydt?V;9MUpf0m&)RJNa<99_Yl}bnVE+1ZmK=h& zM)O{*a4yj~_FDIcUZ#9o%~|6EVG_$2aOxF)+JxaxH@11MyU7Ys8(9Vpw9Y(#A&Nh2 z2id!#E!S{?A6C@+zi@z%mueV+=G(ZFm8vBH%rCc2-Kuw+iMr={BI{QB1SiD&ZD@gb zUa^sP!8PTj<%qPo#PkdDgUptMn7e&bowtT#9)`V2NmO`qz{bb%A~yBu9d`RI6Iy?3 zDE}%(y&^YpuL)7;y-d0YwzsIXwmu~xV04Xf9{(}+w~h)46`vz-(Ti_8c={`x*mszj z&{k0TW!WzF%omfTWyYGdLEqG*^<3&wY4?qrOGmFrzQP|2xT<$W`Nk$I?k|VSc}PXv zoY-~wvw1pNQ*7Q#-orb8rv<)dr(ebfmis*h5>`F}j*^Mcfqf2E#my3ph)tMmJP9Gf8%ZIVgaQEH>Z zSNP|Y;${UmWuaoCt3bNnI80u=Xr*{AP4Ycdh*(LLfBs^Qgm{&A<%@t;z^|+5`uN3E zx?p7E;}3}V7e_Tmv&zy*x=jnOI0lTvB!U^G0`o#_(mYFP6#7LyeDJmm7K1)X)0}%t zlaaPnTg`Ws3@4^$q_8O3!VBAHmn-N6gl9MMnTd{D@+GFqcv!>7(l9G?jF+NtA^mP? z_SmPS=b7@-;{tO~l6dG1+K7nyh1|qeQ*Nz4+Ik&%>s*N}cC;pW&%1c7Wh08jycC3s z)Esa-gtn=O6sqwXOf*jlFc(WA#M`RTT1|+15iS;$a!*R_S&bAD9L!*MgO z^_!7nZgkGwrjH}XmTeb52B#35QXGu7rI1`1!zh3Ekf2vyP9*(LtL=~O`zf;B zRzV`>#gy-3fr`{!$4mb<6LtG(U zqA3|pbE*7k?}{;#H;ywX;9BPgbAjjBXBV?>?mfNN2vdoAR4z_Y?j5Y+UHJ;BcMJP? z$(cRL`n`A7$uoAY&7y3JWvpy(`4~ET;-Qn(#C5UIPVA(x?$w$*gXZctI5+sg>%w=> zHg8safm?eZ^(7tAGH6{7aowIiH8r=p2GahSE_%ZMy=FNupeXf3v%fP&v-aW~ucy0x znjF!<+n-`9YbMoB=9O^0@Ha|-hAoQ07Ck9Es+SA=alaUCH9rh~+G;4bzB{RdHnBk< zYT1=|Gw^9o(-_Mr>Q13kL<4942oFJlUzxIWp4|^(I%$^KIFG4s65J0$r#N-j`CH=c zlcL}vLfNqdc@>__wD)M0asp*Fx|1nWR=eXf&smA)h+0Vm+E^_jFr7@e;HxCZES;^a z+F^yh>yIb@lt;?03=1ha!#68FWZoMPtc@0Nb3Qbc?~py`9k$R zpnNvT{_9r9xAQufzp99lI<2^x@po)< z9si!UseIO~K1!!Zl6@#oAqmE|Gx6{RNZb>Z5UrsxN* zL3+kfdZq>MidzNIoEgI3N5vSq-tCV-y6S2!8q$?AZKHP00XVFC1|1+aPJ$1h-!eQG zE0VZ39gA}Z+V!*x;_5mLx-Rc#f-X~8QmJyFwat(fVYU4XAhM2#I#Z#YH9Ua zbivxkb~i=%&8oD0Ouy5~1*I?3KA3LhMW#E zqno&E2o&n{-$p%y^r(9U+Grg z)z8TxQfrUYwD0+j7%9IdmFe%a^Yp66m`0#4xHFO+FBW{hpnKk?Cv>f3U2*}#ORc$l zqO)T8+108aHKYKX*2QwJQBN^M24{xvxhpAKFCaE5avW?w>t|u;!r`kb)lgrF-6^kj zv$JidU}saG+9wJG)2!D@$-%ehD`k=aruRRSFj(FFrhy(O zOzRZrvE|^*NOBkcdG_bD`%zi+1O4~sI3oep*(|a&kF^c)>}t6`;L^WAmg&&IzItCE zkvgvhD3Ug5_D3%1{eY?W%UiiRFLU!SK*&?O=dBk;qb+~uu}zQe6OT^`L55 z>2Y%DZ+_EY+wfl&{;BT=vYMNQ@^II$ziUN`i@3@ohPX0(-D%tQKZe))Ab@seebKq2 zXva=#$dUfT2VYsl1uL0IvRhc@FVBGU(lMmvM|vw6@DW7e)qmCU(n6i^hk zq}G?_Y-LT7zmmBbK^b-aq9%vqC)GH!5<}{u3xJ>-lH5J7qY2laLTtig=vUZ>JDMZ^ z+w-NKhwGtMJS_oMS{(L6EHfm+FM@AB^a#4tA%{(3;48OZBN7`bd0u7koV(OR4<3F- zz6YbPi~eLRWAMfEax7l}MyiYa%FQ>mZ&U%R+D;@r<;qg`mPLgBxC}e`{CW6`S9Og- zW-cRst?m*8{nkYIvkra;D-WJ>O-PL=_FiXtWPp|eh7{w4)bB9Ofn>!>I^OQ@KIw7_ z$8o((=99Dt(*;<>HI-m?l9@g-(@f^f#9f1;DR1`)4=*P^`PAqBXXNu};>UzlfWTpq z$x1~i7W%rcAGo3ssh}PSKGdOfwEdQ|cYimP2jslp$KRQ2HBbQMp8E_+sSg!Ul)h@O zO2#s~Z=5tw5C_@E`KHOX_XT;1Fr;3RX!tcYE_mMId~24;cL&!<1_H5(zqu<+goBG- z`0&hYXN%MQiq%PEmfd6j;3Bmf2I_yf*ig|(am?#wWop%Ko(VQuilt9kMtZ!!?N)gx z9Pb-TaLQ0s`jgH3Sp@)9|G)|!oRvlL|6#?zupmbywa`2)7axO0#YMvrwP%RRlUV2?!&3#xmy z2=oN#Z;>o=O~#d`#m!dn>O{c19_C9F3C+cm6avlZxj)$e1Cf#F?rQX_<;9BHj@+Ht z?D?Zy&Y3aH%AA;9)+NH33EKC$zK<1sn5ow()NSf@2Kg*!Jt2z)D~=drNZDFKBEg#@ zH!jXv9brVwRc}%uHk5g%$r2YpHckPnnt%OSjapp4min&GaPI`%RO8A(B}y^Tl@KgO zpvY~WTH=9&095tn&7=#*00oo$`Bmq|>`7dipkx{E!PzfuD!MP0yzC&OSTrxO_d+nY z+{OQb7G3lOm+;`AH@32(ePpEhJJXs%& z5On?{L08hui@ylFLj$IJW27E)ZM`+ORQ5Bo95Suj2gXC67fRqh7W6>JpLh= zRP+!G_=eD7QK4YbOctCc203?z=~2=Tprm8@d;7h* z*ZMgQ^uK>*za7dJY#BP`*m-)fY?QVj5Y-cJwi;sNc?55v8==$5I?v-C1z)zP42CQE z2Y~HyAtg@zpc1$!R{MmgQFe$;zS@-ZrHA+ZYMgRTXncO}9_e6Fxl%j!Yu2P)D@JdAfOsoGm;#=nsGLoxW~{Zq`;<^tdz;2 za+ND%ZZ&Y(-Y*Vg!8onC(Q$TO&F*IS*O?B^%%iszJfw~U_E~|6;LdEPD7 zd;fFU_D{)7pGIKm-06jrK!TZAjGZz;o%K7dc~`V_V?7}|2iNH5J9Ato4+>MCo(egA zi5M0c1VkAGqDr8~Qwdjxv&Y1GM#TR;Sxzkz^m&K8?+2t6G@cz^q-s{w zYxap2QM9GWxlzextUR0$X?!Ta0Hj#-pJBfW18VCf)HsF@o|t_FNF5O9YfpKx*C(CY z2qB%vTo7&yhq6raMx~I+vwbkfulcvX;~4-$Qt^&{f}u|`t2^>XUrB(7o^b(p0S$1_;SKAvZbkJQDwBmrxS zN|B_LvCpSp?yLxB`xUV{RwNlQ;My|{5|<+q{Q8)m;ehF=x>hka@PnwgCb+Ld-vQmO0S+qyDH_+ z^m~T2>U3l=^3hKoUfxQ#;$u_Q=CRp$a1kEy1lH&%))4`;Xu*x zu?Wqyjk2*moltVQhY+7?q>HA!$73$ZBJjLplS!0PL@sScE8=7dccaD;XU`zP7ENWS zBER<-@Z;?iY>_r#e&oZ}hZHs}aAAptgzAIUbug8szQHZwfhXTb^L2ZqomAp<`hHO$ z>S_TNPb2cV1*!#p$B_)}Y|i+!)UBLhUuSt$`YnXklUDt~Xg&5-OYH;?SXmoJ+lq1= z%8rX_5uQS^UTfgF-5uYydwr z?AiIN4==C5U?880?CHL2a=5=n^*!O;rn5MH?i&rpu_Y&!ex)f|SKi>wP(HUrI{#wm zO@f3N66`-*!<9T<8fEdI_R-U=V2O3?ydKP{F9y2r3G7KEw$NwT+iMlLvI5^217!fE zgp>({zu z`mv2t%BS>MrAsB)AX21`5{?t;+JC2O!wwA0Voz*PK=x9u>G!@(eh{}Ta!(QvJSlkYd{4_n%k6(- z=CDEerouCnyKQuN14$X{)+fQrA+5E!6HYN@xr1bWRp}mqqt`iKML zxb+9z`~{(|TulGL$WP1}kp)sYd5=7S-%BO7$@iH4Lw4m5RN;9e$WIV=6d9S+{}Lp zj~Ko&dlt5R9|GHSZt*elTG#-r+lyQYahF9MZV~xi^zf)=V2V!)hI|T&8b=T2qtLH# zO8NPM(jFC(;{f&Mx$?8wBgI{w=Uwq;+Ct!SplOkBHWiaah~R8L#QdebA?@0*hh>6* zmY%VIdDL=d$uaP`t5+z(9C%dJ1$60&YN-XaTdTAOEgR3b?$>lJaolPBtrLj zh3z{ewljv`YOpRrtxvdVwXtn_LgUy8qP#{<>uo$7ICjd9J20b*#J%1<(`BQnd<&{D zeg6WS5^X=N@ijf}+Dc+1;Q_$GcgZ(BCsvb9!|P&!pfGdi{q5}h!O#OW&of4FL35r= zN(HRAo-ff7>C7+6QIc;btUjFlqmCc8W)Ig#8eH_rB>A^n1Vx zl9eiOWc^Rg(zBZ72Hbn981M@_R#U)BE*8wqm=c4~S*aES+?rK1f?_s|qwW|nlu?(A zt3#y%)#V;Am-Gk0zOp#Z#!h< z9BZEu6hF}$Dx92|7p{0ySg%Gt7m?sGNGSTj%516&!;%X!~;#{DBA8Bjpp z$(kH+7Z1+4ES9yf+m|5dFDO%L@ZhJ~3(23hWQ3u>X{7+QjDbtZ^~sYN(|Zb=DJYLf zm54zXl{9Zd%v%F18yybju&-1%$8%5q1`^+8*^%t9oN>T0!2I8Y_qxnm!Y=c9f#-ea zF|f_qCOBQfTtfc*zG|}PU(KJbn0pbN6OuJA6B)pvg42=$^`QW2sJDF=8y~+plLjcR z(Csr@%S|f>T-t&v??v`rN!ty7Y<`e>%_tAaggf74($9+Tf-e@1iocKI`pe5aqam~r|y zRtmj^He4ALBs@T9x>I$ZNHl{}Jebrtj}w4+#l6mH=*(2A5C9JyDSlrJ=eQ<@ z*uYStJ^3nb_s^7sbT?1jVR^0L_|lIF!tDy`E7|xEoZm;=GieIDYjj)6R0;FCiy^C# z-v9N3Zr+|la081`bPT7-p%JLPH(gmhR4-~JA{fc^pHi-rL|5ZsYePgN7XzvzI`dN% zG_mzXC<;gabCuMUshZ=CG?~^I?$+KRTh=y~12hFot@{O>{AL9o+Wuq!xAVPbk||4q zD%Ax8&C1<4>*%Y`jw_@CleJs*SCCpZko9b{5s@ViH5YCWpZPC9|bb zbRM$(x8{z8b4lXk^91gs%RucM#~{8FTm5B7>X@*Y(wiGHBu$0zxCp;02}L}ChuJ+E zY7yHf82E5R6yU71<3LF#%Bg*(-b0w9a0#>zlr*ohLu z?_)<3bq3DKG-Kyp%_MK=*LbMXFZX*2yTCRJO*|%VoEdS_(af8fTQn&%qQF7zr_}_P zJ3wQknI`xll1#O0)O;C7ln2Ph>M%J2&6$F#`QhRuCR}Wp+TAe~u+qU-kFX!#pW!%u zCuo6rA5YzWMNvZ_g^RD_QX^IFjI32~Jdx^YrD`#ND|kQ_x7jpVzVGOV zc(}NuEK&G_Av038s!i#dmbRX^@ce&`ck3*aGZ$2irQm@cg=eSh1Nas z6c?){ofGd^pYhdmv^}5A0%XFuPkc+13;PIq8hS$_ut*D~w3G@zcN)JXk~7oWhaS6W zswg26qTDmc(`Y9uF>mm?>FdmOt*AfpsFN!?u@W99nU^m(qX!pk~ zVyGGW-g8288Z=^a?<`ymM(QOCgds+=93(qTe>B z?)idhxb*Xy<@{3O>h+hv4ibcs$4N|bY40_WA9pv|Q5Bm-f1i&CBnN>(o6HbykQwI+ rVdKW(lNUY6BVTTjYN+qThhvSQmw#~s`0Bpr2Z+eybp$F^^O=j?sX{c-o5W6W8Y z@AJH8>OSDLL%mRe$Iiyb!b0+257|F$E*9VT)Fh<-OV_`a zAeptB8;FmY+0)aL$&;PQ$;FD9m6wvr<(e=N=^ek%+5vl4#pFS~z*S{x4}oMLtH`e0+V#WSP?0*u$0rXF^gr$p( zhoyy-i<1M%|8khm=6|+@=YQn;FRaD?Yzy!Ih-Lm~4D)}6_5U@@|K0U3cm7lTKS}$q z@qg0Z((zxeyZlS)pVRcD0Dv&Rtc0kB*V=g(tQWzuJJsv*8vJ880OqnpMz(}TjjTyG z*773Ff!8~QN6CH!-AW*@(@VgP?M`tx?`3O(hZ%Q7Y0rYq!(LcAiBW#(n|iY3SaNk- zQESXzH-I84d}S_f%P!Z|(H$Hy5dzrIF{ik6xO@)zNAr*7k?@i5grN2*p)fDQnA&KA zee2F{zjK#%yw_RG4B_%y_VbaL-(MyBBmanKE2oJK&zueFRe$eoPwGcjZvzWsa$lsB zw_Fz{^x93EH?c

2m1BE?@Ne>@% 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 c@}Qt2Iu>u< + + + + + + + + + + + + + + + + + + + Flokk + + + + + + + + diff --git a/flokk_src/web/manifest.json b/flokk_src/web/manifest.json new file mode 100644 index 0000000..aa6b900 --- /dev/null +++ b/flokk_src/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "Flokk Contacts", + "short_name": "Flokk", + "start_url": ".", + "display": "minimal-ui", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A fresh and modern Google Contacts manager that integrates with GitHub and Twitter.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/flokk_src/web/privacy.html b/flokk_src/web/privacy.html new file mode 100644 index 0000000..e80c3a2 --- /dev/null +++ b/flokk_src/web/privacy.html @@ -0,0 +1,345 @@ + + + + Privacy Policy for Flokk Contacts + + + + +

+ + +
+

Flokk Contacts Privacy Policy & Licenses

+ +

Privacy Policy

+ +

This privacy policy document outlines the types of personal information that is received and collected by + the Flokk Contacts app and how it is used.

+ +

Flokk Contacts stores data on your local disk, and on your Google Contacts account. We do not store your + data on our own servers or any other third parties.

+ +

The privacy policy for Google Contacts can be found at https://policies.google.com/privacy?hl=en-US. +

+ +

If you require any more information or have any questions about our privacy policy, please feel free to + contact us by email at support@flokk.app.

+ +

Licenses

+ +

animations (BSD)

+ https://pub.dev/packages/animations + https://github.com/flutter/packages/tree/master/packages/animations/LICENSE + +

build_runner (BSD)

+ https://pub.dev/packages/build_runner + https://github.com/dart-lang/build/tree/master/build_runner/LICENSE + +

cupertino_icons (MIT)

+ https://pub.dev/packages/cupertino_icons + https://github.com/flutter/cupertino_icons/blob/master/LICENSE + +

dartx (Apache 2.0)

+ https://pub.dev/packages/dartx + https://github.com/leisim/dartx/blob/master/LICENSE + +

dotted_border (MIT)

+ https://pub.dev/packages/dotted_border + https://github.com/ajilo297/Flutter-Dotted-Border/blob/master/LICENSE + +

draggable_scrollbar (MIT)

+ https://pub.dev/packages/draggable_scrollbar + https://github.com/fluttercommunity/flutter-draggable-scrollbar/blob/master/LICENSE + +

faker (MIT)

+ https://pub.dev/packages/faker + https://github.com/drager/faker/blob/master/LICENSE + +

file_chooser (Apache 2.0)

+ https://github.com/google/flutter-desktop-embedding/tree/master/plugins/file_chooser + https://github.com/google/flutter-desktop-embedding/blob/master/plugins/file_chooser/LICENSE + +

flutter (BSD)

+ https://github.com/flutter/flutter + https://github.com/flutter/flutter/blob/master/LICENSE + +

flutter_hooks (MIT)

+ https://pub.dev/packages/flutter_hooks + https://github.com/rrousselGit/flutter_hooks/blob/master/LICENSE + + +

flutter_svg (MIT)

+ https://pub.dev/packages/flutter_svg + https://github.com/dnfield/flutter_svg/blob/master/LICENSE + +

github (MIT)

+ https://pub.dev/packages/github + https://github.com/SpinlockLabs/github.dart/blob/master/LICENSE + +

google_sign_in (BSD)

+ https://pub.dev/packages/google_sign_in + https://github.com/flutter/plugins/tree/master/packages/google_sign_in/google_sign_in/LICENSE + +

googleapis (BSD)

+ https://pub.dev/packages/googleapis + https://github.com/dart-lang/googleapis/blob/master/LICENSE + +

http (BSD)

+ https://pub.dev/packages/http + https://github.com/dart-lang/http/blob/master/LICENSE + +

image (Apache 2.0)

+ https://pub.dev/packages/image + https://github.com/brendan-duncan/image/blob/master/LICENSE + +

intl (BSD)

+ https://pub.dev/packages/intl + https://github.com/dart-lang/intl/blob/master/LICENSE + +

json_annotation (BSD)

+ https://pub.dev/packages/json_annotation + https://github.com/dart-lang/json_serializable/blob/master/LICENSE + +

json_serializable (BSD)

+ https://pub.dev/packages/json_serializable + https://github.com/dart-lang/json_serializable/blob/master/LICENSE + +

package_info (BSD)

+ https://pub.dev/packages/package_info + https://github.com/flutter/plugins/tree/master/packages/package_info/LICENSE + +

path (BSD)

+ https://pub.dev/packages/path + https://github.com/dart-lang/path/blob/master/LICENSE + +

path_provider (BSD)

+ https://pub.dev/packages/path_provider + https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider/LICENSE + +

path_provider_fde (Apache 2.0)

+ https://github.com/google/flutter-desktop-embedding/tree/master/plugins/flutter_plugins/path_provider_fde + https://github.com/google/flutter-desktop-embedding/blob/master/plugins/flutter_plugins/path_provider_fde/LICENSE + +

path_provider_macos (BSD)

+ https://pub.dev/packages/path_provider_macos + https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider_macos/LICENSE + +

provider (MIT)

+ https://pub.dev/packages/provider + https://github.com/rrousselGit/provider/blob/master/LICENSE + +

rnd (BSD)

+ https://pub.dev/packages/rnd + https://github.com/gskinner/dart_rnd/blob/master/LICENSE + +

shared_preferences (BSD)

+ https://pub.dev/packages/shared_preferences + https://github.com/flutter/plugins/tree/master/packages/shared_preferences/shared_preferences/LICENSE + +

sized_context (MIT)

+ https://pub.dev/packages/sized_context + https://github.com/gskinnerTeam/flutter-sized-context/blob/master/LICENSE +

statsfl (MIT)

+ https://pub.dev/packages/statsfl + https://github.com/gskinnerTeam/flutter-stats-fl/blob/master/LICENSE + +

styled_widget (MIT)

+ https://pub.dev/packages/styled_widget + https://github.com/ReinBentdal/styled_widget/blob/master/LICENSE + +

textstyle_extensions (MIT)

+ https://pub.dev/packages/textstyle_extensions + https://github.com/gskinnerTeam/flutter-textstyle-extensions/blob/master/LICENSE + +

timeago (MIT)

+ https://pub.dev/packages/timeago + https://github.com/andresaraujo/timeago.dart/blob/master/timeago/LICENSE + +

tuple (BSD)

+ https://pub.dev/packages/tuple + https://github.com/dart-lang/tuple/blob/master/LICENSE + +

tweet_ui (MIT)

+ https://pub.dev/packages/tweet_ui + https://github.com/schibsted/tweet_ui/blob/master/LICENSE + +

universal_platform (MIT)

+ https://pub.dev/packages/universal_platform + https://github.com/gskinnerTeam/flutter-universal-platform/blob/master/LICENSE + +

url_launcher (BSD)

+ https://pub.dev/packages/url_launcher + https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher/LICENSE + +

window_size (Apache 2.0)

+ https://github.com/google/flutter-desktop-embedding/tree/master/plugins/window_size + https://github.com/google/flutter-desktop-embedding/blob/master/plugins/window_size/LICENSE + +

xdg_directories (BSD)

+ https://pub.dev/packages/xdg_directories + https://github.com/flutter/packages/tree/master/packages/animations/LICENSE + +
+
+ + + \ No newline at end of file diff --git a/flokk_src/windows/.gitignore b/flokk_src/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/flokk_src/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/flokk_src/windows/AppConfiguration.props b/flokk_src/windows/AppConfiguration.props new file mode 100644 index 0000000..e8554a7 --- /dev/null +++ b/flokk_src/windows/AppConfiguration.props @@ -0,0 +1,6 @@ + + + + Flokk Contacts + + diff --git a/flokk_src/windows/FlutterBuild.vcxproj b/flokk_src/windows/FlutterBuild.vcxproj new file mode 100644 index 0000000..8ef93f9 --- /dev/null +++ b/flokk_src/windows/FlutterBuild.vcxproj @@ -0,0 +1,50 @@ + + + + + Debug + x64 + + + Profile + x64 + + + Release + x64 + + + + 15.0 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} + Flutter Build + 10.0 + + + + v141 + v142 + + + + + + + + + + + + + + "$(ProjectDir)scripts\prepare_dependencies" $(Configuration) + Running Flutter backend build + force_to_run_every_time + + + + + + + + diff --git a/flokk_src/windows/Runner.sln b/flokk_src/windows/Runner.sln new file mode 100644 index 0000000..11dc9cd --- /dev/null +++ b/flokk_src/windows/Runner.sln @@ -0,0 +1,82 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29709.97 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Runner", "Runner.vcxproj", "{5A827760-CF8B-408A-99A3-B6C0AD2271E7}" + ProjectSection(ProjectDependencies) = postProject + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} = {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4} = {D9433AE2-FB49-48D8-A6F9-3C71021E73E4} + {FE855771-7D30-42F7-938E-C57B2AEA68D8} = {FE855771-7D30-42F7-938E-C57B2AEA68D8} + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB} = {9FDE4FCF-34A0-48B0-818B-877485F2AFEB} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Flutter Build", "FlutterBuild.vcxproj", "{6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "file_chooser", "Flutter\ephemeral\.plugin_symlinks\file_chooser\windows\plugin.vcxproj", "{D9433AE2-FB49-48D8-A6F9-3C71021E73E4}" + ProjectSection(ProjectDependencies) = postProject + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} = {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "path_provider_fde", "Flutter\ephemeral\.plugin_symlinks\path_provider_fde\windows\plugin.vcxproj", "{FE855771-7D30-42F7-938E-C57B2AEA68D8}" + ProjectSection(ProjectDependencies) = postProject + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} = {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "window_size", "Flutter\ephemeral\.plugin_symlinks\window_size\windows\plugin.vcxproj", "{9FDE4FCF-34A0-48B0-818B-877485F2AFEB}" + ProjectSection(ProjectDependencies) = postProject + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} = {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F} + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Flutter Plugins", "Flutter Plugins", "{5C2E738A-1DD3-445A-AAC8-EEB9648DD07C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Profile|x64 = Profile|x64 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.ActiveCfg = Debug|x64 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Debug|x64.Build.0 = Debug|x64 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Profile|x64.ActiveCfg = Profile|x64 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Profile|x64.Build.0 = Profile|x64 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.ActiveCfg = Release|x64 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7}.Release|x64.Build.0 = Release|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Debug|x64.ActiveCfg = Debug|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Debug|x64.Build.0 = Debug|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Profile|x64.ActiveCfg = Profile|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Profile|x64.Build.0 = Profile|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Release|x64.ActiveCfg = Release|x64 + {6419BF13-6ECD-4CD2-9E85-E566A1F03F8F}.Release|x64.Build.0 = Release|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Debug|x64.ActiveCfg = Debug|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Debug|x64.Build.0 = Debug|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Profile|x64.ActiveCfg = Profile|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Profile|x64.Build.0 = Profile|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Release|x64.ActiveCfg = Release|x64 + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4}.Release|x64.Build.0 = Release|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Debug|x64.ActiveCfg = Debug|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Debug|x64.Build.0 = Debug|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Profile|x64.ActiveCfg = Profile|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Profile|x64.Build.0 = Profile|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Release|x64.ActiveCfg = Release|x64 + {FE855771-7D30-42F7-938E-C57B2AEA68D8}.Release|x64.Build.0 = Release|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Debug|x64.ActiveCfg = Debug|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Debug|x64.Build.0 = Debug|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Profile|x64.ActiveCfg = Profile|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Profile|x64.Build.0 = Profile|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Release|x64.ActiveCfg = Release|x64 + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B8A69CB0-A974-4774-9EBD-1E5EECACD186} + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {D9433AE2-FB49-48D8-A6F9-3C71021E73E4} = {5C2E738A-1DD3-445A-AAC8-EEB9648DD07C} + {FE855771-7D30-42F7-938E-C57B2AEA68D8} = {5C2E738A-1DD3-445A-AAC8-EEB9648DD07C} + {9FDE4FCF-34A0-48B0-818B-877485F2AFEB} = {5C2E738A-1DD3-445A-AAC8-EEB9648DD07C} + EndGlobalSection +EndGlobal \ No newline at end of file diff --git a/flokk_src/windows/Runner.vcxproj b/flokk_src/windows/Runner.vcxproj new file mode 100644 index 0000000..3b9ae04 --- /dev/null +++ b/flokk_src/windows/Runner.vcxproj @@ -0,0 +1,262 @@ + + + + + Debug + x64 + + + Profile + x64 + + + Release + x64 + + + + 15.0 + {5A827760-CF8B-408A-99A3-B6C0AD2271E7} + flokk_src + 10.0 + + + + Application + true + v141 + v142 + Unicode + + + Application + false + v141 + v142 + true + Unicode + + + Application + false + v141 + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + $(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\ + $(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\ + + + $(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\ + $(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\ + + + $(ProjectDir)..\build\windows\$(Platform)\$(Configuration)\$(ProjectName)\ + $(ProjectDir)..\build\windows\intermediates\$(Platform)\$(Configuration)\$(ProjectName)\ + + + + Level4 + Disabled + true + true + $(ProjectDir);$(FLUTTER_EPHEMERAL_DIR);$(FLUTTER_EPHEMERAL_DIR)\cpp_client_wrapper\include;%(AdditionalIncludeDirectories) + _MBCS;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions) + true + 4100 + + + flutter_windows.dll.lib;%(AdditionalDependencies) + $(FLUTTER_EPHEMERAL_DIR);$(OutDir)..\Plugins;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + "$(ProjectDir)scripts\bundle_assets_and_deps" "$(FLUTTER_EPHEMERAL_DIR)\" "$(OutputPath)" "$(OutputPath)..\Plugins\" "$(TargetFileName)" "$(Configuration)" + + + Bundling dependencies + Dummy_Run_Always + + + + + + + Level4 + MaxSpeed + true + true + true + true + $(ProjectDir);$(FLUTTER_EPHEMERAL_DIR);$(FLUTTER_EPHEMERAL_DIR)\cpp_client_wrapper\include;%(AdditionalIncludeDirectories) + _MBCS;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions) + true + 4100 + + + true + true + flutter_windows.dll.lib;%(AdditionalDependencies) + $(FLUTTER_EPHEMERAL_DIR);$(OutDir)..\Plugins;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + "$(ProjectDir)scripts\bundle_assets_and_deps" "$(FLUTTER_EPHEMERAL_DIR)\" "$(OutputPath)" "$(OutputPath)..\Plugins\" "$(TargetFileName)" "$(Configuration)" + + + Bundling dependencies + Dummy_Run_Always + + + + + + + Level4 + MaxSpeed + true + true + true + true + $(ProjectDir);$(FLUTTER_EPHEMERAL_DIR);$(FLUTTER_EPHEMERAL_DIR)\cpp_client_wrapper\include;%(AdditionalIncludeDirectories) + _MBCS;_HAS_EXCEPTIONS=0;%(PreprocessorDefinitions) + true + 4100 + + + true + true + flutter_windows.dll.lib;%(AdditionalDependencies) + $(FLUTTER_EPHEMERAL_DIR);$(OutDir)..\Plugins;%(AdditionalLibraryDirectories) + + + + + + + + + + + + + + + + + + + + + + + "$(ProjectDir)scripts\bundle_assets_and_deps" "$(FLUTTER_EPHEMERAL_DIR)\" "$(OutputPath)" "$(OutputPath)..\Plugins\" "$(TargetFileName)" "$(Configuration)" + + + Bundling dependencies + Dummy_Run_Always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(SolutionDir) + + diff --git a/flokk_src/windows/Runner.vcxproj.filters b/flokk_src/windows/Runner.vcxproj.filters new file mode 100644 index 0000000..761db86 --- /dev/null +++ b/flokk_src/windows/Runner.vcxproj.filters @@ -0,0 +1,88 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {2761a4b5-57b2-4d50-a677-d20ddc17a7f1} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files\Client Wrapper + + + Source Files\Client Wrapper + + + Source Files\Client Wrapper + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + + + + Resource Files + + + + + Resource Files + + + diff --git a/flokk_src/windows/flutter/.template_version b/flokk_src/windows/flutter/.template_version new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/flokk_src/windows/flutter/.template_version @@ -0,0 +1 @@ +3 diff --git a/flokk_src/windows/flutter/generated_plugin_registrant.h b/flokk_src/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..9846246 --- /dev/null +++ b/flokk_src/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,13 @@ +// +// Generated file. Do not edit. +// + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/flokk_src/windows/runner/Runner.rc b/flokk_src/windows/runner/Runner.rc new file mode 100644 index 0000000..5b41a82 --- /dev/null +++ b/flokk_src/windows/runner/Runner.rc @@ -0,0 +1,70 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/flokk_src/windows/runner/flutter_window.cpp b/flokk_src/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..fe980cf --- /dev/null +++ b/flokk_src/windows/runner/flutter_window.cpp @@ -0,0 +1,29 @@ +#include "flutter_window.h" + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(RunLoop* run_loop, + const flutter::DartProject& project) + : run_loop_(run_loop), project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +void FlutterWindow::OnCreate() { + Win32Window::OnCreate(); + + // The size here is arbitrary since SetChildContent will resize it. + flutter_controller_ = + std::make_unique(100, 100, project_); + RegisterPlugins(flutter_controller_.get()); + run_loop_->RegisterFlutterInstance(flutter_controller_.get()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + run_loop_->UnregisterFlutterInstance(flutter_controller_.get()); + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} diff --git a/flokk_src/windows/runner/flutter_window.h b/flokk_src/windows/runner/flutter_window.h new file mode 100644 index 0000000..4f41e16 --- /dev/null +++ b/flokk_src/windows/runner/flutter_window.h @@ -0,0 +1,37 @@ +#ifndef FLUTTER_WINDOW_H_ +#define FLUTTER_WINDOW_H_ + +#include +#include + +#include "run_loop.h" +#include "win32_window.h" + +#include + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow driven by the |run_loop|, hosting a + // Flutter view running |project|. + explicit FlutterWindow(RunLoop* run_loop, + const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + void OnCreate() override; + void OnDestroy() override; + + private: + // The run loop driving events for this window. + RunLoop* run_loop_; + + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // FLUTTER_WINDOW_H_ diff --git a/flokk_src/windows/runner/main.cpp b/flokk_src/windows/runner/main.cpp new file mode 100644 index 0000000..11b48e9 --- /dev/null +++ b/flokk_src/windows/runner/main.cpp @@ -0,0 +1,37 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "run_loop.h" +#include "utils.h" +#include "window_configuration.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + RunLoop run_loop; + + flutter::DartProject project(L"data"); + FlutterWindow window(&run_loop, project); + Win32Window::Point origin(kFlutterWindowOriginX, kFlutterWindowOriginY); + Win32Window::Size size(kFlutterWindowWidth, kFlutterWindowHeight); + if (!window.CreateAndShow(kFlutterWindowTitle, origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + run_loop.Run(); + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/flokk_src/windows/runner/resource.h b/flokk_src/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/flokk_src/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/flokk_src/windows/runner/resources/app_icon.ico b/flokk_src/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..008bb351b3b4a25186aecd84002f3f04651a4827 GIT binary patch literal 12014 zcmeI2cU)6h7J#p#B7y}F97j~Zf@M@xRIH;jR%|=t+RMuY6zXs zi_{bnAaoD~8+Hc*Di-#<1OnI=9e4Mi&F|*r-IwI#%Q@%Xd+s?8p)qJITCoDb>kJe# z3!$|LAz9gh{v?Fj;F_2i))z)P;}LRLjL;(Z415Kt!V~)*?;*{98GdYieyio#&8DYK z4Ug;V9@W%#vTGhNtL|5@?v^m`6w%xBX}7b>+cHXTrWChQikjmK8l&?YB6I7)vTK8~ zI04iepY$q^G`3p`%PEOzpUALIpj(h>W^v`0W6KS{p|!qfZ+U*J`DshzlZN_7wY3kc zYdR~d?$g-!$|~>NV00AFZs(NWqL$rEEon`>(M&FEjLB~x=GKSh)CMP4;WMhec|7hZ zEaxPqLn6cGyYMu9#KZa`PhNdEk!fj`yEBSunOOr!gjANx|B9!effQY7XOOi?GyP{= z{_((qOD<`rT+>fc7`Fcd{WQg9)&`p8?$S#8SvzCdpONzq;-~L-6+0KUhQhG>&+)MD zm$UAbGCB&ue=2TK%iB^*ZzdMEkZ&}{k*l1~QWdq+muaOgIqdi20avj<@RF|SCsSCC ziA-w>{Tldle8uIs3d3(`e1HDHf2tqQ>2(SDDVIwb!Qj$`O&OUrDH&CiGl5$ z^=yWsW~#!`z@_`0Xm!p(TLXQO=-RFF6{aKIodic%feRdgz?>35n<1WLn zU524ME(Py23>n^bTngH0FyhMacLnFlmxD*}JjTX5=OK&6iXa

%Ho3FvCnl3y=` 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 +// Don't stomp std::min/std::max +#undef max +#undef min + +#include + +RunLoop::RunLoop() {} + +RunLoop::~RunLoop() {} + +void RunLoop::Run() { + bool keep_running = true; + TimePoint next_flutter_event_time = TimePoint::clock::now(); + while (keep_running) { + std::chrono::nanoseconds wait_duration = + std::max(std::chrono::nanoseconds(0), + next_flutter_event_time - TimePoint::clock::now()); + ::MsgWaitForMultipleObjects( + 0, nullptr, FALSE, static_cast(wait_duration.count() / 1000), + QS_ALLINPUT); + bool processed_events = false; + MSG message; + // All pending Windows messages must be processed; MsgWaitForMultipleObjects + // won't return again for items left in the queue after PeekMessage. + while (::PeekMessage(&message, nullptr, 0, 0, PM_REMOVE)) { + processed_events = true; + if (message.message == WM_QUIT) { + keep_running = false; + break; + } + ::TranslateMessage(&message); + ::DispatchMessage(&message); + // Allow Flutter to process messages each time a Windows message is + // processed, to prevent starvation. + next_flutter_event_time = + std::min(next_flutter_event_time, ProcessFlutterMessages()); + } + // If the PeekMessage loop didn't run, process Flutter messages. + if (!processed_events) { + next_flutter_event_time = + std::min(next_flutter_event_time, ProcessFlutterMessages()); + } + } +} + +void RunLoop::RegisterFlutterInstance( + flutter::FlutterViewController* flutter_instance) { + flutter_instances_.insert(flutter_instance); +} + +void RunLoop::UnregisterFlutterInstance( + flutter::FlutterViewController* flutter_instance) { + flutter_instances_.erase(flutter_instance); +} + +RunLoop::TimePoint RunLoop::ProcessFlutterMessages() { + TimePoint next_event_time = TimePoint::max(); + for (auto flutter_controller : flutter_instances_) { + std::chrono::nanoseconds wait_duration = + flutter_controller->ProcessMessages(); + if (wait_duration != std::chrono::nanoseconds::max()) { + next_event_time = + std::min(next_event_time, TimePoint::clock::now() + wait_duration); + } + } + return next_event_time; +} diff --git a/flokk_src/windows/runner/run_loop.h b/flokk_src/windows/runner/run_loop.h new file mode 100644 index 0000000..442a58e --- /dev/null +++ b/flokk_src/windows/runner/run_loop.h @@ -0,0 +1,40 @@ +#ifndef RUN_LOOP_H_ +#define RUN_LOOP_H_ + +#include + +#include +#include + +// A runloop that will service events for Flutter instances as well +// as native messages. +class RunLoop { + public: + RunLoop(); + ~RunLoop(); + + // Prevent copying + RunLoop(RunLoop const&) = delete; + RunLoop& operator=(RunLoop const&) = delete; + + // Runs the run loop until the application quits. + void Run(); + + // Registers the given Flutter instance for event servicing. + void RegisterFlutterInstance( + flutter::FlutterViewController* flutter_instance); + + // Unregisters the given Flutter instance from event servicing. + void UnregisterFlutterInstance( + flutter::FlutterViewController* flutter_instance); + + private: + using TimePoint = std::chrono::steady_clock::time_point; + + // Processes all currently pending messages for registered Flutter instances. + TimePoint ProcessFlutterMessages(); + + std::set flutter_instances_; +}; + +#endif // RUN_LOOP_H_ diff --git a/flokk_src/windows/runner/runner.exe.manifest b/flokk_src/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..c977c4a --- /dev/null +++ b/flokk_src/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/flokk_src/windows/runner/utils.cpp b/flokk_src/windows/runner/utils.cpp new file mode 100644 index 0000000..37501e5 --- /dev/null +++ b/flokk_src/windows/runner/utils.cpp @@ -0,0 +1,22 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} diff --git a/flokk_src/windows/runner/utils.h b/flokk_src/windows/runner/utils.h new file mode 100644 index 0000000..d247a66 --- /dev/null +++ b/flokk_src/windows/runner/utils.h @@ -0,0 +1,8 @@ +#ifndef CONSOLE_UTILS_H_ +#define CONSOLE_UTILS_H_ + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +#endif // CONSOLE_UTILS_H_ diff --git a/flokk_src/windows/runner/win32_window.cpp b/flokk_src/windows/runner/win32_window.cpp new file mode 100644 index 0000000..677a9a6 --- /dev/null +++ b/flokk_src/windows/runner/win32_window.cpp @@ -0,0 +1,249 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + OnCreate(); + + return window != nullptr; +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + auto window = + reinterpret_cast(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + + if (window == nullptr) { + return 0; + } + + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: + RECT rect; + GetClientRect(hwnd, &rect); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + // Messages that are directly forwarded to embedding. + case WM_FONTCHANGE: + SendMessage(child_content_, WM_FONTCHANGE, NULL, NULL); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame; + GetClientRect(window_handle_, &frame); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +void Win32Window::OnCreate() { + // No-op; provided for subclasses. +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/flokk_src/windows/runner/win32_window.h b/flokk_src/windows/runner/win32_window.h new file mode 100644 index 0000000..5cbb5d5 --- /dev/null +++ b/flokk_src/windows/runner/win32_window.h @@ -0,0 +1,96 @@ +#ifndef WIN32_WINDOW_H_ +#define WIN32_WINDOW_H_ + +#include +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. + virtual void OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responsponds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // WIN32_WINDOW_H_ diff --git a/flokk_src/windows/runner/window_configuration.cpp b/flokk_src/windows/runner/window_configuration.cpp new file mode 100644 index 0000000..85e2d62 --- /dev/null +++ b/flokk_src/windows/runner/window_configuration.cpp @@ -0,0 +1,7 @@ +#include "window_configuration.h" + +const wchar_t* kFlutterWindowTitle = L"Flokk Contacts"; +const unsigned int kFlutterWindowOriginX = 10; +const unsigned int kFlutterWindowOriginY = 10; +const unsigned int kFlutterWindowWidth = 800; +const unsigned int kFlutterWindowHeight = 600; diff --git a/flokk_src/windows/runner/window_configuration.h b/flokk_src/windows/runner/window_configuration.h new file mode 100644 index 0000000..ea5cead --- /dev/null +++ b/flokk_src/windows/runner/window_configuration.h @@ -0,0 +1,18 @@ +#ifndef WINDOW_CONFIGURATION_ +#define WINDOW_CONFIGURATION_ + +// This is a temporary approach to isolate changes that people are likely to +// make to main.cpp, where the APIs are still in flux. This will reduce the +// need to resolve conflicts or re-create changes slightly differently every +// time the Windows Flutter API surface changes. +// +// Longer term there should be simpler configuration options for common +// customizations like this, without requiring native code changes. + +extern const wchar_t* kFlutterWindowTitle; +extern const unsigned int kFlutterWindowOriginX; +extern const unsigned int kFlutterWindowOriginY; +extern const unsigned int kFlutterWindowWidth; +extern const unsigned int kFlutterWindowHeight; + +#endif // WINDOW_CONFIGURATION_ diff --git a/flokk_src/windows/scripts/bundle_assets_and_deps.bat b/flokk_src/windows/scripts/bundle_assets_and_deps.bat new file mode 100644 index 0000000..9efa28f --- /dev/null +++ b/flokk_src/windows/scripts/bundle_assets_and_deps.bat @@ -0,0 +1,44 @@ +@echo off + +set FLUTTER_CACHE_DIR=%~1 +set BUNDLE_DIR=%~2 +set PLUGIN_DIR=%~3 +set EXE_NAME=%~4 +set BUILD_MODE=%~5 + +set DATA_DIR=%BUNDLE_DIR%data + +if not exist "%DATA_DIR%" call mkdir "%DATA_DIR%" +if %errorlevel% neq 0 exit /b %errorlevel% + +:: Write the executable name to the location expected by the Flutter tool. +echo %EXE_NAME%>"%FLUTTER_CACHE_DIR%exe_filename" + +:: Copy the Flutter assets to the data directory. +set FLUTTER_BUILD_DIR=%~dp0..\..\build\ +set ASSET_DIR_NAME=flutter_assets +set TARGET_ASSET_DIR=%DATA_DIR%\%ASSET_DIR_NAME% +if exist "%TARGET_ASSET_DIR%" call rmdir /s /q "%TARGET_ASSET_DIR%" +if %errorlevel% neq 0 exit /b %errorlevel% +call xcopy /s /e /i /q "%FLUTTER_BUILD_DIR%%ASSET_DIR_NAME%" "%TARGET_ASSET_DIR%" +if %errorlevel% neq 0 exit /b %errorlevel% + +:: Copy the icudtl.dat file from the Flutter tree to the data directory. +call xcopy /y /d /q "%FLUTTER_CACHE_DIR%icudtl.dat" "%DATA_DIR%" +if %errorlevel% neq 0 exit /b %errorlevel% + +:: For non-debug modes, copy app.so into the data directory. +if not %BUILD_MODE% == "Debug" ( + call xcopy /y /d /q "%FLUTTER_BUILD_DIR%windows\app.so" "%DATA_DIR%" + if %errorlevel% neq 0 exit /b %errorlevel% +) + +:: Copy the Flutter DLL to the target location. +call xcopy /y /d /q "%FLUTTER_CACHE_DIR%flutter_windows.dll" "%BUNDLE_DIR%" +if %errorlevel% neq 0 exit /b %errorlevel% + +:: Copy any Plugin DLLs to the target location. +if exist "%PLUGIN_DIR%" ( + call xcopy /y /d /q "%PLUGIN_DIR%"*.dll "%BUNDLE_DIR%" + if %errorlevel% neq 0 exit /b %errorlevel% +) diff --git a/flokk_src/windows/scripts/prepare_dependencies.bat b/flokk_src/windows/scripts/prepare_dependencies.bat new file mode 100644 index 0000000..d05238b --- /dev/null +++ b/flokk_src/windows/scripts/prepare_dependencies.bat @@ -0,0 +1,5 @@ +@echo off + +:: Run flutter tool backend. +set BUILD_MODE=%~1 +"%FLUTTER_ROOT%\packages\flutter_tools\bin\tool_backend" windows-x64 %BUILD_MODE% diff --git a/marketing/AppIcons/flokk_app_logo.ico b/marketing/AppIcons/flokk_app_logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..008bb351b3b4a25186aecd84002f3f04651a4827 GIT binary patch literal 12014 zcmeI2cU)6h7J#p#B7y}F97j~Zf@M@xRIH;jR%|=t+RMuY6zXs zi_{bnAaoD~8+Hc*Di-#<1OnI=9e4Mi&F|*r-IwI#%Q@%Xd+s?8p)qJITCoDb>kJe# z3!$|LAz9gh{v?Fj;F_2i))z)P;}LRLjL;(Z415Kt!V~)*?;*{98GdYieyio#&8DYK z4Ug;V9@W%#vTGhNtL|5@?v^m`6w%xBX}7b>+cHXTrWChQikjmK8l&?YB6I7)vTK8~ zI04iepY$q^G`3p`%PEOzpUALIpj(h>W^v`0W6KS{p|!qfZ+U*J`DshzlZN_7wY3kc zYdR~d?$g-!$|~>NV00AFZs(NWqL$rEEon`>(M&FEjLB~x=GKSh)CMP4;WMhec|7hZ zEaxPqLn6cGyYMu9#KZa`PhNdEk!fj`yEBSunOOr!gjANx|B9!effQY7XOOi?GyP{= z{_((qOD<`rT+>fc7`Fcd{WQg9)&`p8?$S#8SvzCdpONzq;-~L-6+0KUhQhG>&+)MD zm$UAbGCB&ue=2TK%iB^*ZzdMEkZ&}{k*l1~QWdq+muaOgIqdi20avj<@RF|SCsSCC ziA-w>{Tldle8uIs3d3(`e1HDHf2tqQ>2(SDDVIwb!Qj$`O&OUrDH&CiGl5$ z^=yWsW~#!`z@_`0Xm!p(TLXQO=-RFF6{aKIodic%feRdgz?>35n<1WLn zU524ME(Py23>n^bTngH0FyhMacLnFlmxD*}JjTX5=OK&6iXa

%Ho3FvCnl3y=` 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 literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/rounded/128x128.png b/marketing/AppIcons/rounded/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e75be2cf02053b5312a459d71510c1ce638dbda4 GIT binary patch literal 12059 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 literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/rounded/16x16.png b/marketing/AppIcons/rounded/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb69d8117466d6b07d1fc1f94d07a87f7396286 GIT binary patch literal 846 zcmV-U1F`&xP)4x2p|!rh@N^1=~03xh^Qc_#3;&CFiSHk9n5B$ab}LroXc(< z&2HF+&AzSut@W+7K4pxFd?I3WG96HY%emtG_F@ zXKX08JgOF5$hYCDp2U zHteIUD7BR`k)dZqeJ@NV_NvF#^-nTJ47|ZQA!xI=tA@BKGkWbN*Pl#d?LJ4782<%e zDMM9==@3PVQi?Yb#^}DNC${MGdFBRv&+|;LYh|As&@5)ZC|GiM=R~>kxs7|7IwBQ^ znJpbSbqSOfv~h>0Z@w^`bJ5Z(tC9W&5bt-tH!xO;aqqRu(&Hx-h4b?xr={)&EgbW&wiz~5aZ&(O}Moug zZW+LmIPOpRyc*3Dl@eV#(9DauSu&1fUOc~S>0tC!n$+AU&L1ptZs{Q-8!ddvz%qar z2>+~NG48WBc*)?MN8(|DxaVV=fOT&t@DugS(^b literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/rounded/256x256.png b/marketing/AppIcons/rounded/256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..eccaf7d88b602ba245894853c2a4f54495f817d1 GIT binary patch literal 24963 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 Ef>CTt4FCWD literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/rounded/32x32.png b/marketing/AppIcons/rounded/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdf4b2e3d848630eb65d9be988785a91b2d5e9f GIT binary patch literal 2177 zcmV-{2!8j8P)ua* zP_RSR0gSQNHooE8uD#yfv*$AX=BzJk?9$lnNN3ONoSFH*`Tp(W4C@_ zInGg2INL1S4i{Vp#m5EPi}ks;%eL9?ChGRx*l$4hV7L*xn<*R}{tT zsK{QUGs*gioOznYn&u{*H|QDpe*jp(L*p$zU2FcuuERsBT)8Qf(|~AN=(3uc0!Pzf z>AsT3fUBrWCZo-!g5#c+ww2z|?$^|ydOVxYdo-?wfh>)e6OqWH_ z`ouH1^kfrkGNcN3{yT(nR41x!3oR?FN#mPuUB^rB{{aCl1KUUX^L{|1z9>pibzu$I z-+msk(E^-*H0p}e;A_9h0mrAz6ip;8h{$D zf&akE(Bg3j%fjx~PchbZ9v?KmLYC|~lVN?Xw$ittkGCgUP}!J-vq6FGDqs_=eQBt* zVHjIph5ASx8|Zt7Y#cmnsl{45MPCs76zR2a{v0l$sckEn=kjB@2VoUS_%Z@-0+ z;S@d|Dxk9_59t-mrh`=hkREiIR0Km&)&*DXbOsfV~7Y7WPw7eEf2G+{TUJ3<3tVPtdVwgsml$aLBR@$WR%w z47`!7MNi%bl|H*M2)tU8!_M`@Tu`7f_Ift$z!+Jm8XNF5F$=*9b4f}v;~<|c;PYGe zU^628q``>A=ex@#~z0prnjQIywh%yJrNS-RztDH2+=}fRxBcK`(|2{iQRXg9nY2h+wciiC!a) zOnEH~+r*tsJ8^l>fhGIB%n3WI4fqYRB{QNXBW9_&WnCcQNuh|DEYEoYjdgxZOzY@Q z2jP7GHTVMD=}k(~wz%`U_+-z^kf(reT>H=i;xO}BOh!*u88{FR;;%hfre)42Cw`zT zg~Sdre~WY)=9TL}&oBa$Q#g630k1z@1)t(V&?Vk}&%QDu1S?3nP!J0n2>Uclwa*p-X1IX!GcH7=|Vt zScg$2G8buoc}7W&-o2~^wZ_tWfywLFwPXexqCW251!S{X*m8iC#c#(iAfHMh)i;i{ z;aVL0>T^8o_=?xIMOU*qrIaYngHilZ7^-DPu$9rNoM2O9$v1Cv+x2J}a<+}U!(()a z2WR@%=lBpw1?kf)l231%C-%c-U|OWSjflH29N_1s;2J-14j zDR8Ay4<;i(w#&TmWv=Hml;KshLlw%2U+z6Te?9*MT@(ZqQy!J#ih7Y+}+(B!k3=& zKIfcY-;Z2-XYXWXX3fk!vu52pVXDfqSWiix0ssIkc{wR{004wM1py#v$iunk_$~4P zww6$m001hZG44%Kk?&txzLmF9QUb6d&mjQdCtCm*c?LwjNRcn(w{t-MTmb=cQ2u-V z_a-xUati<;4v?3U(DVfEH$6!qpK{~8_Q(n)Stk#Z!vjbJ<`H+~Dat3@TPP$wh|GC6 zEILjt=~rYuSoj=NmtDj+C1o8rUd<$xndtt0IzYhp8xxlr8kQ08+XRxW``sa4rVBH}^k?6z%=6`~Wm{g_cKHjkhZ{WMg`VVN}^+D%0DlbNVFC#gkN4@s#(XgLBH8 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

2m1BE?@Ne>@% zre|Q4drNb{)MadxX4|PZAW(f9kUJaH(|SlWtAsce zK*xT^+9$4vQB!)D5B?CHuZ=+TM*Q<%0JKS!wkEpgODg@aW>N(O){Wzjwo{LIItUf& zMPIeDJ3`MuBnhAuZimd*owU@7;#3b$8YLcqTXp=L=Fp1LTa-oO!zxIYj9;K3JFS5&x8+ZX@!Htv1 zxMl_M?oA_5uqR{ba+q^4^MOCGzFYWXP5`KS0!#Ow&W~G!$Ez^^q@s=!4{h|YLU(QpHf~zSv4MkMjnv`0Yb}+0aR?E zJ4-h|cWxZ_PQ$q$$mUvzeivqi@QCZgtu6CDGrARqK_VZtH!H9?4^kX!-Mg){(KZ{1_bb?08f4>keO4pY=XSxhbu&}5UG9OLb7=*5 z&jZT|)k8Y-F+P%(k6Ei-i1Y(&Wc)=u!h^Iz!ye(>g?YSbi5>jM8L1NUUK%O>ext4e z{uM-5OO=77$NSgddJy)y!j^idn9`lhqCdtL9h)h!t~G3h`v|l9zU@M70?&7J$b>|# z5B|tGYNEPtGYV^^#zH-AHV7m`7yh1)0bJVN(Pn?-FcikGu{Ti9ntgnIzcbF%ctALN z0h=RL_bT|pj7$6=^Gy0@74jh=T2*IA=p%e=RSd5D@wTr!OclBF5mn+{=__gvisU|K z`t^9!KZaKi9!GpU?aCdityF-FQZ~_DyT!Xt?aDuzL6N0@Rmv0o0s|C`X$=&_ zK-HEcFdU@5GvT9^T(+dK(sihK(UHGwx8v3q!$Zu8#Vts_zC0Fr*074rh#_~)tOWj@ zQ>CoGq8Lf|B^wEvd25B9`*zA11V(642e8BFc1Cn7R0ir!1S4aju$2U!k(LDRaX&Tq zFBnyIeR2G;@=jl%+So#McRm+EBJ_pui4jh=ngo;r9Z>el?DB8|HRJ-;U?O?>3cm`r z7Ps%y!j#x<)4na&Y6$}k=GAE69yjWU{5jqXS$9E{?`dq*cY|{gIrcgo?=tT~S_t{0 zi1JybNLtLW^YD#Ih;w$^0-P|kB>V2Bz4!xg^=RV#Yp}3#nDVNmdZ_1VMn7sz_{0xW}zUKwJ;1FeCvKNh%aXf%}fV(M8+w zkDTg~g!FY4ED+ze1G=Sl%-roiubtjKE0~9yUbXq3122CRE511D31eCN19=R5o6|}7 z#Dsop$f22S#nQ)tqf6UhET=(ZKF_2?9D&P^JaM8wi^9dkpAK|S_8GM}5&W|&JzsIL z`&pC4BuQf^Mrf5jk?)x(C;Od8v|{bwZk7dNnhJSx2VP#Y%0`xyqQ zuzanw@fSfMOSF@NjBsisnpw?~(E8_;5Vvww>7D7~xz@nmZY#pCu9*D_Yg7&F+_V{U zv`i=7oFHXj-pr7^|Tlpo{^Ve-cJZguU!=5{V*3oN$3{&XLr$l{;s5?MLK|6}<7ZH_1lA}fOolru z-}FezzMwm^XG2px=s&RiQaQ2}goh(sO{5|ICI;;MKztM!Gb>{})g4%#4JiZeVh-zXmDhk?}rQl6{J;MyCeJ zB0L~)GZUfO_1u=NW8E?>QwMI(`i;FG?OH^hE@NB>!0BSP-$;U3^pQH@wlOZ=X(o1uJjVyQzuPTBMkWBd>lii21cUkBpVdi zYg60^IoA?bR)B)M+f}E@fJae$VJ2HiHK_+A=L2#lJISYKe9Rti2Lq+o)euu1FbfSh zj!*8I02$Ke=y=1fSNV3{Q6ix6->}v%2@Mq4l?ynO+cP1@7A5bj!@S?n!e+Po+e+2= zh8Qr?yIvVAd|F%>pw3_HW2Rw@4Qa5(d^uoCIR4etZ;Sc*nQL(S&q91)DVyx|9@iWH z!jJxYB1gjYm5K+IuP09Az2-jW}sh%Ci zNLkjC{tXf7quSSZIJ$FlQS85s4#^&GQftjKR;(~g>^Er*;HC10=c3y$zE{$04*%p% z_#=1yY2Tj-HaI5K5X_WpxFxX|RDgx=fWmIOTati!0O8LBW;SFk_qZpF{IA;=ezZqo z6u~BksnRs^bx8eJ-O-~$LP*$MEV$`U(H@XL5B%@13I3fvmg2wf4tNs<4m1!b{^t;3 z_d^;K_RodQC;uU`m-hL0ser$#5FEH7J0>=HND?LC~xSw)F>=9cKVL9G1!b^x6cs0ofE8I4w4HPu^5VUtF+n+QN_!DCPVjV1d_et zt+A*9e=?;aEc_^S;0!w(iI!~yurf6%-{C@@JU!Lt@;u(+{+7p;I!`#xjC_l0zmB61 zekv{6K$;cGGq|33nVPakApD5--?$`+gtUR7%XeMl3P>X2y&-pwQ3B*3(N?<}=CAKq zK(KQzxUX-SslwxMe?EPvqB7%Gb@J=!slfpGlzqe!*esp5)~In32XC^vXH4^E`kfUHGVzC1 z*slbCw>WNUMhyt9Q8i$2zOovyULru!=x%|xf^hqrI58Vb@wRN-5O8o>H!iK7d#@E7 zYic8Vd}58+v#h~B*DbjxqkP|V<^ulHk>dq17@hy8yJ{+2lW+>anbx!Uj1%}13rTm0 z!ay5dHQi?kUSoT_)ulK+{xfAM1c32|I2sw4h^~M_;v^XUm#gt?Yervfm;5Mq+)eA@ zwMayybrpYx+F$006WUutf(w1>6#^K84Uq7EFwKDggn((CO!VsA;IBF#FpcB&a1xBKD8Yw@ovhi=hm9L-&#MBb zK%uQ+#$!+l%&5>WgM2FXd!*5jwIy~_TtF$do!f${`b*!Z7Yt`8@UGY!8UrHTV1%E{ zhkLxWTImG*(Ika2ya98iT4|iaIu1HX~uNK!K(es~#+lcCVhA=QTd>nr|A1HNMa~ z4KGgpg@l6&vx0D3o)=2c1>0`XRQkmZ3ljokJqmOd>h%$8frA#WrlF;5vD<;e%6+Nr zR&cmHSRqD+NG*T+i?)v-s;`4*8reM)=HYXdtVcUEek)46oYHI%t2!f4Z37jGop?MN zp_uPj>W(K9-SIKuFJ8qi$0^n>o5x!o=nvJqqXG9P_8X^?*d6klvaOYB=ddHNjC*2@ zs-V$7Z4Zt}ui1Mpv1u*Xcyf{^9GU!lq}H-HynV(17z1F{#W$u;k?s`g&boW_fWty9QaOjl^hL*KF^%O`r#c$A2?BD zohQta+}BAq7Zf+sW+ypEVNdcHj~;Z_Y2?6AY&;nlKx4gd^a&Y8hF+ zA!OtqPB;|RstlSR7w=H_u)|v*xT0%|HaDzUFpO`EKkQp@2vAr3FGipqskN=*)IL2} zUYo^wXk8{Z$w5x$2%pZZH+1>Idoa$0q-5NkeMHdX1sJ3%tN<_Va;oXI%ND)Ed-)0( z>Jx3e``f09H$R|U-q$OR8Lrx>cZ6W6N|A=K_SdfqKRi|we5LT)R9Qh}!soSXPCmqD zm?Nz|>BnvX{{vaOI9(waq^XbkMFuk2bPH8TQ1&8!8chNOb6NF^WZzW4+=e$UKoB+A=DVrzj+x&|owMHq_0M$IA?dOyNQn>t8?v6YdI+HsXn+;&&BL-PDm zOZ+_J+bCqR=!`M2-b@P__nk;iWt{k9jqZ0t%)l;@M;HEcxGmX$5PM zfG^{=cy*smwvHFtlCS7wA=d*-*K`>_%eHCF6BW$bkv{g+U$A$-&b91hgt4S5WoBGK z)lK`v>MW}Nwe?@@4sN3;3z@YPaTn8;Mq&J{k*JS&|8dmW z!Do-*{niwW(*;M#iEVD_%v*a`BVzhi)ARV9JWga33kB^UQoOpxwfdPZy6}xo@$KP$ zl=I?fub42Sl;mnEG9Icp6#C|J4z1Jc8_0NZUlfwdrjeKJxwH{Q{SHqx z>U^jP>o~=u+fU&6ktt-ksd+;k&hr~;e2uuFA)EihzR%M@k2kDtwWmaSa-?JscEXG#|z66id-1_`wzOt}1$p4zp2^B?>g)y}^@lj!WX|(1lW+>x^Xv*h_se*j&?I4Wd zCIqj=@a?up=`M+oDb#;*1iaXoMIHDv1L2q(9r%%d9HXyQlSa3~Of$DW|Ash`5sDvC z^)U(trb0|?M|83UL5 z?1*k|20AEFmlQwEX>0Z`ti>!x4n$mTML!+b>#RjfzZ#*w3wuyTk*1a3i^2OAW3C}x zzzE;>n+U(2!f-F@nlDZYK9w^w96bxQzi{x2Z?_gcJ~teRc7AI-HtW3IRQN=m+yAp2 za5$MM5iISmh~0mDd~PlBb!a9a&7oX+Cj%#0vQSa^V(<6y59Z&QsFvPy(8Dr+cU9Y(+z9Pp%Jkr&FukAH)SN3RA;VGJkEI4> z%>pRrH~c8wAJ8+G>PabHuc;W*l`sogCxgEcq63SL_ZVRWVi~BM%Lme8ID*Hxf63pf zpl?uJB=dg$FV0~74t1HsjYG2O{`&DzU(q}TD9(7#)5c=v{)FXF$|Ho$pxI&C9nF9g z2;N+wQ2CC)_>%WBj9iea+MNv_6Qbcw@q(XPnO}Z2J^B)T?~ei$8d}wMNTX6KL2{Ov zQ!N!2;W|=>>AJ&79Cz0mzQSvPmu_^xhTLf43G3hu$@!pyUr+qqQjD$Id5s~H?X0E~(t>n%(%Qj4n945o?~f<^9@fq1hFl`$NIFG|`hNly?)24^aT)PDfZ!2xzxcqnR_w2c z+R(ohfvtam!01AL!zD25K&ZZtk63p;sC<9kTQKf+sQ~JAn^%fdQUHw_5&xPBeaPYd zV6?VSLJWh;{qTHR(fU$6E0!xF7Qe9B^JQPI{110xvK3-nd^D}!9l-cFC z3AL+dl!MxOYe043v$Jtw&z1DfNC4{!to2;Cj`4&n9UA4M~{5sO8y} zv7S7VH-8h?6w_2l>om{(@s4EWRTz8ctr3N>28 zF7_Lo`=migZdFiY6H;GOhoVKl`~;EtxQMYD+ma8NSr{6%73(78 zugh|)z7^15&fn}fWoEWAb0x(+b8-~0e*o8fA%d#W#q^BhCO$7|*da{g zrMl=*8hYY;mOF=76AKH&JMZtyfG1StdoBA%OOQ%pW&;-**e*t*oybb$M2~ce7O-#R zmp50Uo%~;M?;d7_)OnQPHr0#))ZX!AE@`@V?1h~{?u8sm(tCu5M(>_-G&f{ppwL77W0-W%f^xzGpygRFq zK|-vZ6Gq=JJWc!D*vNVVrhrO=NbI76&tG3-KR$`|JabDH9G5Nhpp~;DsCGBvgI=fC z{%%bFmSGeM{%5YVygnN!20o*oVP5;7xih!yXc6fT?PP^;d<#=}bt}KQUR>mq#jrD~ zP(z-N;{H*iZRi={Lb=}xM4Rk?8}nt3Sv@4iw|G*q2zF|~VM&T?=e^KqaMxk0AKO7x zy$SjB667-P9SC_T^8CB`QF__`;@ek|yNjT*f8RCE*-!^`-?tH4|IQ9CK$d@vT5-M~ z=9%{9y-jJ_w9Upybnj)mGRvBkeLFL0pZy#<={lbWc=;&>c~-?UW& z%2HD(ez!(MJMSRNZq$@y(_JDJfqM#e0+Tp(d1CiGS9$4sa#iD%*XlUoCWl@MA= zM@g~;JvZiwy$(~}jxR9!j`E(CVM0+$*w4s8PY4g>j>Ed$?rdc3J}gAmi+zSe|5nm~ zahS5UgU7QeD$pKI>6_;buUq}yTI=1${nH*)Sdzl=N8nxq={f2Ylg#FLpuw2yx2YM? zDyxPS`6H?*Ps2yFZh{m9w+a=m11uQ)H20|qr(xyStq?vO&PT~xy-qxB1f)@yr;Fd} zjhf)xsl^vPvi@ple+KGd1{!?7T=&ungnQ(IT>4xUULUy?!H zZ2sLYI`7nHSX68$TWcT$AB?<#isIYa=i&bb9xN`q%9+iD@CN)lh)KjYdw~T$}SGaKOiypHHzXLo(!XCw+0>N60cz z!X-My@SyHwa}|oHI6jXodRW<64~}*1tEfHAm>i_mJ?f&7Pda(30`lu`oiSh ze`)hDc6Ak(vO?Pb!oXQ6ubDyy`!Frv40~yN+=t+ZIJlp7goGe)<#YC0+wJkU5q~>k zcEVP+cS>X_ni~bD%0A>9GIZtl4JZu;{aWiy>9#RJsyD9oPs4-CZ;}_il>O`#wnB$X zk2}kf+tg$x#Pjxb#G7oPa^En9w5bQ_YjN|m@|CRoM)6q#VgRG8MD_Xfyr;N*Etaz; z&FUO`TuI=POG;@)059u{gYD&&EgH4b+Eck{1(l{PQW?5 zjR^k?FH83i?@E_$ICn^8i`iZ3X?KaH-lgEakOit?&FB8G+STL*EfSx@irLJdyL4I;cZ<7S-GbSB8SfI<7SC@JC}O%nd5pfi z<`k8F$W)a4AIpdJ{Ws6;2Zv8#*7cWS4(_Na5@Ch>N)GJX>##5_doPE7w6^}U`o`Z% zty}urTsNPCHZ*|!RnA9V-cp7=w1=BPUlF-xRVJBSmQvQ!xTZ*P#8`MGCgf&sy#S2qB_RU?k zYk5O6+|&DXW>Umw$Hnry=z=t;vqbUro0T{X_S!3PZCrJTQ#H|cc@TOP5^xM@Sy9o$ zX_!fUZ&-?=Z{^>77{*RmlFv@@n)Xd%Nx?tNcy;n$<$ugK?jAUXt^zP^;zpt&7kpPE zsVqz^>K>x%H@;## zfi%spgiyUk9n8e9Hc8fxG}mxA7gv{+LlZe@t-ZKC*RPW9(GI6+4-q($I&?lk_xyhx zf`0RKd6gBw-IjAv2qMgSptVtN7ii`$!ZSHLtPn8^xkT z>-h__OM}T#!cRI&KS0EMu3%_aT#S)7C-b^}wRN?9t^yE<$S7dq^WkJPela8@>da?s ziZJ!qijmSX7aMeBJm|LVVhW{@NT1E;O(JC(7sp+**3_gkX}DpubO3`K;%tZ;>qq z`O6R_!1s9_+(B%R3nuv}#r%1g$TxQ@x)8|IP$^d2oZ}anjG>=jC<%ti-&PusZW*={ zX^B4mba{Y`m_8$i$(GnO{57DeYqIMoyybq;{Xy^xX2^bv=|j#_(T;!T*c-S$cas^7 z={pV;^=d#*_IfP23WnZi*ps&G-*53?E2`<(Ul`RCGY1CG~e+HKd4n~l=V z!94$iA4L51s`x@rbtEo!xIM2To3BgLx5@pSJVWV>TkL$QOu z!!;Wg_4fDVLqHb1CPfqtr(@;t;3CjHuJB{h9L+V&Wuo7uwqERz{nt~zkBZx>-FM9I zZ+YOqt97+H2?yR$w(nVDV7&M9O13Yo*}sHt@8{AM21BKZw%+;_z=v19XnpKmRL%L^ z-2P`RpgqrZ6LU=;?hk9KVoL}xCtH*+N07Bh6JPU^wbivQ-|tnt2W6J58rH~s8vYZO zHzuk$IkHjn;!;r0Hj7McC5BIRUYJ;8z9H;qn3}-7@!OBZ7H@lQUz8&8d)MK#g9VY1 z(+erL=Gbxz=E&$hzMTaR$eC-^0~o`F2kL(kmQr90Y4C$wP)SFlfsCQ-qMywW>erCN$mkX4<|Io%gp~m8%@g z*ROJVxx1L>Y26i}Nd*n67>HMC}N>kLp+ zxUwsJ;TdcChqiC4eR}#pke=U=1A0I-9a-wWB@%r<=2-XiC66T|spZC|Og+0Ba_M|H zgopBXwy1F`nip4}yscPis3m#;An=jcu%?(mXq*_`33)GRIKsBmEmexr?p-Kyr{9a9 z{~g#iyN&;ALa;_CNV~UOvrrLm3iNGTiK@-pdw*x!JRi8dJEiy8mtkm@&bP)&Qu$W4 z7fequgvQgx1(Hs%KdVza&BMLwE)%d5H6^0+f+?5WVT z^5r#bd&dw~4_TJBsA9}CY+-i#^MOsGDDmXifzr>u^tR{pi%*WKC%X#sPb%0kOnh`K zRNFV*fV?HR6%mHm$gg!YyS~Vk&K;k#?)lvJYSg`C%+Sovz4Xae*_XhOuT?EgAw84O z`F-PwnM5kdS;Lb4{o>%66de}i*N&Eya8B`c#G}DHBYPcz&LH5{voo(5;K5vwT0V<3 zY9=;q9>BN5R`XTHbuM2uHFwT8Hh2dZWORiw^7Qjo-!lo5AgfU|VFNKSmYGSuJ<*>b zal5>vh!rDjbZE>V7yy`eNcz6l#yC%$H|&w`MdLqW|CN6rD0?QU;M7-g}rd6JFcNj2nv zsWoM-Hz^Lbci&E8tf*!y(`p{u;_QsWpQcvtizi=((6q6m-{Y?bX)#!*XXFAV-MPO- z1OyudMAVR8Z9Y;G!Oq4?x~yR~$i`CGZ?6u|?Hk%Aj*Rc)iVRz$m5)nG- zjh1@<_UV9LJN=s`2+u*G|6pXyM=b1DS}RY!c~XfZ#qVq?HCkXYG&^#6itg;!Da3m| z*h$6H;9qUVK{`pFt;Um3+hq^oPTqjgqF`RvVV_O>TIBpLBjQB+)gL7kDIxT|e+eB5 z+3wF4#**r1UPg#cG#wD35AA~gxz?0=iq*P z73XRwMY%V{dT|YzUwib$frbk%z-l4sD$8Qka=|JBzAXzn(#Q2e)y4mO^V_Uzvu&)b z@VB!u8gM@`62!gNB)I-4E3};zZS}s- zdanpaJiKP_uFq>PK`a~kR0izTLHkqmN#GTfxcSbhENsamQ>NsyA;xGjHjyytijk9% z&e*DP7aPC3DfY+cHiTlW44WyJ^JW%}4TET>#kGE%PCKE8O3|$*ibk(kdXVCJJlDL{ zcg=5J{G_?}Q=ieT#X;TKHUAG1ryTN-%q1f(qYr_zafSv=v|Zh{KqI3{QLJwRCrH+i zsdh(};A!D5@RS^5`~+ddKH0~>P!4w^2;;gN^{5v(!l{GQZ7q&^>f&2yV0hHddUBvT z8D3+9NMEqp_*et`(5z^5?{uo(x+97$R;8Ru)o+WZ4;=CQ9w_xJ?0e2TQ?H_77X$b+ zqC!J%3t1cRDLDrDf|d#Xvd>N|Os8WQ3w^CK8rraCMR=cQ;@+aU!JpL`S{>-|KEWlA z>GuT3`jg=GF=`WN>S=&hL_JA^YkU(9bMS6g99Qir*v4&r}t>X#W1q$UfcCkg>w(sdT-+cA56%BVq0h-Haz$DqJF zF2on*`)swLH-(Lt(+n;2lgkVKACQsjcGO@Xz{|Pdk zTWaylauqef;vm@Zw8(}xHEzdE;j@Y4~C~(RhMi0#Y>4g zaDnSKnlX($Q`nf8`u{Y&!5?P78aKo68k@m$;eccHy< z`sK@s0@8;8j__NB=iRc zJ|jPs%3`LIhR3l{WA7{F-4|o>km6*!_S_e4n@*a-LYge(_!fd&0U@1Y0JAvjO~4bK7f@`gJ@`lAFe2ik*h1`}nt-)?>97!R0jx{2PJqoH^3u&%UXZu4p^| z@Ofpc$F_Ud5_5wJKc+VAcXsmkH2of?`hblZKa6TU0x3^FAYrL+W}>HGFjvx`4MemZ z`JJ82e@95?ZG2&KzJ)HcgBgZjAsKPimjI2HC0svB(ViN5qaj?dokEDQ_`-H~?`s5t z$CBQ%KV-Q*nG=?_tzi-KBVF|?j~7(c;t%fgh1b9(biXC{tz>vpChn46&nF|2ixC8V zYcfjw9o;XAuY37jBZY0)`;YWw=Ef@?9acKg;p97=skw8gK!@rezV%}^R`i2Jh@Z;! z5jN9-@vPaVkjgs&GDt|)5tRH(3Q7D;Az+!K)AL;YoTM#6Bu$0q9z8`PvkGg^`5NX^N36|k31`Nd=~94Q7MGF1kHxkC`;a*@Zif4<-TZC*2bXL|jCAHmwG zmxC{L0WLz=vkg<=PC~kwWWVj9&{B^~+D(Mm!z@wSUdR*9!u0@ikN5L2{Z66a7H$j` zyC2-bhl z?HiPk(=cj8?i!A>2qf0PlZT@!>Si{-6sajVw# zvb{2mgIe}DzC=}ARj|Ls{FuV#zj`dsrk%@;*5^@3#APMhfCv|As|eCnC$U?{l~ksr zRwE2k@P2!|s~OF4Z|(!mY#o2LR*O&Y+~WDBkW7l`(oGD7D$V}nmIO;c6OP%`rGUw} zP)?ba2s?SrGQ5!&X)Ie`=Vxngq+n-LbXH0#{F|ulUS(L zs+sQL{Xz)ni(!cDAqW2*4XVMBPx&mqxrm&>&wJ_ZqnLXog_>bXdX=Ho?xW!!Ua^P? z*UebsU)1g~SQ7&tW4pjVS08Y94WriafdWvkm00MqTZ!R2 zZh&%3T>7yDrTGNK>&_k*b9)%~+<|M`dMS=}Wv}tABEWTzMjtN6YA--NF7cnh;C(AG zhd^^P8GM;*ZefgPNE>7WK|=5qX%&ml*LgJ8!~VJw?G$g??7hu1P^uQIfUVhI;a{5k zY^1OSlEp73=4 zhg4&xSdbmybbXi+<$Z_Yx2rvMxSfe%T?rqP8CW+XC@X?rh<$G*>i3NO=hfixUtPi} zDN~F=CXy=0^tN&F+d~X(Ge(o*45OB4xo}v~ne!^n0zqOgtXl!lSIacHX_wW*%9>%c z`5h7A>Xn_$>t1d}@kD8s_oBf>;uoYz{jH})D4-xTge_ z6-M}9S=*(y3siCLuvYzP6k<7rM@LuNkMpxE=xA&srwWG9T_fkos=vG87)JBOf`Ep{ zU>nGDOJo&M>hBNf%KpihINN2Q&WXq)nIA=hW?79&eo+O$e9>06gUoI8fSqKCQW9R$ zlQczx&2S|p)N_WvI*OzJ64&O9ITvL}$R_#0+0PbU>}o&0SZe<|sKSSgc2qUcF%K*CuFKeP3^T_s|kx6aM&8rUjYR;#dSmO?L#enBR{qq<}nFq|l{_%EOgR>=fnU=;` zKlQ}YzVFxgg=KIr8SK&+7o&PJ?I}9!(}D(5)k6G&zEKgBMlUeHgZN|AX2q$-S43>X zNI>U$*&7oM^|$5&u*-{(#H$x&vZt~f^Bz;T^4 z=`%0G7Gi(06hhUyz3O362koycN=?vFTaCpcT3#2tJl0-=RGcDN60zn$F0)8n{(875 z+`aZINCPL;M)_Rlo$AKz>|wEsMEIj{4dox6mmd|kQVBSc9Q1|4F6=`I+DH-}9(kHa znont;K3e+d^nN(n2~K>?v}_u{(Dw;2Kkk4Oc|9FmX}%S}4xwMvn-C6SUOOY!R?Y=~ zm}6{$)5EBugD4}5lM?Gic+w1f+>wT>)%Z7GXM{VEImNKYAO zinc=bO=x4u91T$_+AH4RD?0T>KnSN7iD6 zP(F?^Op?9PKs0Y*A-#PYmMv(iqxLy>qvivA-B*d97jVv?U32y!gaB)XWf7!u#aWlx z2`GK*J_G7w&HZLW2+vDf+2mvY%}DeIm0zRSkJhcwp8AhMTdl`LMg2(7rox_|xsC!n zr-SGVXWU!2o>QehBcm8i=*6A-PUx|Hab_~f41=;9eh&y48$yfhi-ziZ*xjs%a_D@n zm&f5(X(04i?pN@vfV;~{j)(gaxjS~Zth4bG7-GNX*`N${+JdHj5_m1 z!%#4KT;B#my%DWyXqb)^6hc=vd7+&#aYL(Zu{9GDS9Bxxv54Gv674Y6XB`WG$F>K_`4F#rk_5gE!~ufgwBFW0hduRz2pCG4+c2_hiNFYT zGec)b+j2`wqc;;%pfrbPL^v$z`M=$LX%yBJ$h||n;6XJoU!}K2vYE5&=^3TI-h%2 zAyRufsyL-WZtdJdS|xku7QIWV86b^5`4d3G&+Cm3-CC>#%C&f3FM18i(#{pmW5dt_ znxs2I|0Ti?9xa#uz)qE@f9JBa#$mGyFBeFQJ1m=BEydkB-(uPqg5c zR88!~h4X{EL4)_vWe)p`&kn&l%G`8D&xC`+IoH88Rh{^+EO9QDTI# zuaxWeiy!uR3LWY&kiW4uPE^KZi`}TPZNPf|aP}9ptK1MgSdhPhdZlRr#Z)CX(X!&h zK78;+qXNW?fGAdw=q^eio1J$#W{U=)KN<7<47x6e-1>3ti&~14Ga7jp&Wq6+9~z49 z$<&R4ub8~DX*)#oT26}J^#N^yGBFYG+E`=L>n(!rYm-H8 zUHWzEBz9fYd99uXisM(9r_>pOKV1i?u9Na;Ffjb~wIH<_mv0-wU$_se+IV!gTzKyA z99V7-g$2daS2ZSJUb|rT53JNMa{0VSuyalEb+9$_Des^|Z9rlD7UC^H;4uVxLrnQ}@vc0h@p%B$9JVh&Dju&C#vK&)R>b0G~p z?AD9S{PRD9>YVJ8$KIJGjPNCMWZxUGwE$**)SAYb;n`DXGv^9! zTl2Usy$iAroYzZm&rj7~-BHF%(`E{o|5{J%on$O`7+FsEXa=-oXsoP*xq$n>D}G~LD+*Ji?n?mwy9CoAdVjDs z>N-jNALYLX0f_}wPiTbgx$n;#Cg3pgiiQ8r0sxg7r|+EPsPHUS@eg|_L-{mg!xH3i z+N6DvF30oh4rjUyz{bXWj}FdmtjOzMx1$;=E_S3+f-{!~Cyhr&`-iW;9e;1|U7LVk zf;+vDvyIHjuGUnrui?SxbD%&`0ZF~lWR&a$n93P#7Zi8H4mk4ll~^aE^gWI~o^ic~ zav|9EUCl>2n@w1YQ9!#N0@?E6L7*IOIX!%*xifL+;|5$Q!BymS8ewyoosW^jy-Ex37@ug*!50n1k5g1- zk2TSNH^7eH8l3ammxnwiTb1o-1JijNBD<)7J~zCumh(P0@~0o`>)mYj;RP3JbG&*P z`iT|k;jgH|+}owtlL(pZDe&`G+W(Q6+GY#VZb;W=BAuX83`72gZH*!XnO;eX&#(`> zZE|AK2|2F`C4t3uu%}A``!nB)P9eG&P+y;16X4!Ha`mtZnBVNxV&qu=(agF9{}JOw z9*_*vXoRR&+Aj&~sP^%C(mZeE`f@;6L`|Vr&{_Mfl)nj(w|qG)0w=lvixb%Vox}_4 z=A1+ZIUvWd6nUJEb88HKSoP}2*0U8*Klom&~REuV#fHzlvoteh%SeL+e;1h?>5>p!w}^7-Gd~5+NEO|mKVkG zx0(ti%*S=Ar}HAQxX*}}6v*5DSe8-WZC`*ckV#gIOET0lJhNcD_|QaI3`GD@7d&wx zm<~b6I2Dh={NmLvLeienJ|ZAKp!|=&@Mq=T&;d{CF{zYf;Cw9%UPI!D8!;)|+v*Ol zm!*BxB~qCm^*p;AEr18uQQWX=a%C#K8k*z4%7gIjB(~P$AQTAn%ketgnckhRd!*di z;~1|%)+4U{^p;5R;pt9=k8Jhy=u1jFb-p6|8kIgRpxGu2j{%7Ij~b2)JX@e5xTbCx zfM;`4Uva!Y7Kx=woa?il zr2(sE-fJizbkhde+FS@75UHlq6R|%?t#aIu*`_x(>GXXZxjuyx3vR0x^-hRypwYtA z#((xbt*73$ZYF$sy7VBrtiYp)Q*!gufc=qCFb)57Nvqs)`8|RCl>9;0N^gYY$_o{SR>eiQC@~y?N3kOG{{{t>T(Y^#K`KlH6 zwaiBeKrPX>QC{*muYA?2c)xr{Cm!eNW8xP;hm~5P-gx;~>;LQ{r}y5CXFm8jjPBg0 z+XQRajN-)WfnEpx-r)`&6RZY-HH5xqSt$Xi8PxU5NW`q=?_LhN;c>Q*gKiS^eIMr$ zeYsbHpHo?X_|}oPBAlx+MQ56wJRInsJlKo99h_Mx1E^oeXn>qW?eC;<;FWEM@YDxB zkBbNI?c`vrUpwT-Jv0bZ7r`|Gy@uK7X@E5ZyOvp5a+L?Km?G3;F{ER0 z7={;45&(w~06y3j8ORli%X|(w28=FQGads@HxJ2?7ag<6HJ%ZgJ-8(oe>3k?@7}ZB zkKeqf2fzF3G!}Snuq3ZR5m*ZWgU1Qq?B0r}9{vS966nP3=iWjf65=@mY8kK=W|g=u z?z?yMt)J_+EiO#&f zbe7`@2M~uff>b9zO|^CiC;_M))>X~P68!N5((@GhQ&UJ!&A^Pt;1C_VjEy49t*|KE z7r!lgD;z`RHqjpNm|RCV22=dBw|Rl~0L%bAg^0Jd!uZP)D&h+TzQ^srZ#~$D@lYDy zyB30+ORglK2<%!oijaVW(}feae*n{6Tk!B3&tmKN5M1o5N&>3WF=Srg;`92O$J+4D zOaiZsMQ9UHoxC*F+9IF?ptg8dCASP!`sVyR5+h?UC#E^uPgp|VnyGI}qUOnhLypc3 zMqq|WDgq<|U2QOh5C}0SmkDrC+0x;{zy81$gp(OOI~=i`1Z}FwRY6!2wG#qP_8XIa z*e~oniuv{)JpAUfIC$+WyzvN&sY?RYXe%M-`~ARgAMe2b5=>$|oFG}>%nYC!rPMS_ zML>C6sfgJqzRdbFp)itHt|9r}SzvgKvvvx9k)Tz1IH~w!o{mryxJeDeq%N0TDe0ZCu8?2Js`h4}SgL4_V6s(iPQvV0F5H zcnJK&pbP(y4uX8tD3XR%CnHU@W(X(&s2S9i&B)}8JUumw_?h!aU%3i1Mxks?oom3# zNiJk*!I%readQ?3Q8Ta^7QlONAN1niePjTS@1hTKo*pPG7aA0SjS!F}ftcHi7mt4! z&wSvs7~Z}gDYsimz(&B8@q6}>H1UrP`|&e-+i6RrTLa60(N?!80kBnb6jzuG*E>^G z_a{%E0l3zmHOQ%f;J>AK%$d6j9AmR^%+ey8I}FN}+av)8`@Q)6#|H5E1MTRfDnLlU zW_ZOd#nlTJMaXS6T;#s@F70_1w>Hr9-bfd(cC_A!-j$b;zrdff9hKz*_l4#Uq!@{L_~y{AmF# z*3NbdQX=OJ?E+@Qo73G>(u@D0UpUr@Km6z*zHqqH(gwKMTXk8$Zmn*^^05C15x73E z7vF#M^LX{%k6@~I5TwjDd}?fnUlB!;SwHt4;eXig#^0w=pkIvwi$KkOQIr7KuT54h zQTpaMXZ}|>^S7t)&lTEQ5uBcfxe&EfgJshc8DTh(AEE}}cRw_M-+QDVAESZbR%!=a zVkAf;Lpt`FgdJYM)p)P)H3*U~4;?w6}&)S}nq`E&EYpnppL z06%}A6K;AERZT!+bq4hVVE6W-nmfMgulmkbQ z#IY@I^!XeVSgbO;Pqqg&W%a9GDS7<54HLg}cN>C5y3Cq8+w9j7PaI585%n-eiyn@eIM zmO?mTBE|t|0}2F@TvW6T+62(zfz;?A`$R;9Jp_%-+G0jJTi7Bi3>bj==@|Hm+7u_Hj>5y zM<#j2sjHNekY$DvaBae0!DiZ2@3jR2BJ0!a2j@i_K<&}()CL^xGSKbivVf=y7%J6O zv#GVl-#DMI+u9xYgZn%1&wdKLIvye6RuW+6)>i^x)7BBkCduo=FeCK6-=NO%T_iD= z=9Bo!yL0$AA0EiAxmFTyYn09o)$M*Kj_>eUFR>1cauzZbN@0$~U|L83M<*c(Vgi1Pz$WJ~XVP+%YyfPLihLK;sGB{_3VVL0tVtc^bJ8Puh4X`Mtg0Y?elAJ8V?(>ymIK*t`NIxnQO z>@{|g2q*z45~x~6Gb#8p6B8VDnq!7)7*2fW@&YD;;=QnzNNQe+K=BAj*A&%%oWkqW zWCBm6w&10EAH(RjJ&5`IR@YS`P&}Su6L25^{9D=t{K}yY^m<+3r6pZl@hNG{Y9XKm zpjyb5n=ZHdrRL~YKg_eun}q;yP`%Fe_!o!hAy64WxjjSgs}TYg5ulg~y4-mA*az{g z$9@qf?s^m>TX!iDD6tLX+<2skOcoHSq?@7{_Z-~Bkg{n#&MiNK%| zfl``K`~-CH1i{}v=EuLdrwfO=Jv_rqj}k5g!)nDSr8We#>K)?|9+a%^UyS8HD?m?W|cN}+IeHRCATtM&K6#TKM zbt0x{?6h02-lAf6Bin-i`@J6Q2=wBQP6zQ*8skPd(P^%cZuR=x^{NtpI<|~x_?NW& zoFU7eS#u$j_4?OjPlc$OCb;MN%v6E|K-7RbRMxTUY1U;RU|5H6Ax{Jj+>IkcXL0b_ zIrPtt!xxRv;~>cbgSqrzmyuDE-XeCmvJv<3K?8f+yGa7v_~G@C<-AMA1KlcE`-WEn zP;8kdYWYg z5LhAt9sL-;qaW|>KTaZW9tUrn!{Fp7+M*%2l1VEkB?8L^J9%Db{M~r<==-=da0m9@yow{&&tm(;4Ri+Q z;Ysq@7P}Wd{MmB|i%7TyqKI)|I}Z{1^#g9)+0~0bJ{Q6(JfvZY2Yks=focP4(+QLS z)COm3NuP&haSc3)cdtkB0-fWW9f@Hsp2{xwTkL>;ax9@n<*H>iGy}j@GJT%g!y|ob znX~4l2viS&91#e)+wk7rJ8@yh5p0_o!I2y1v1{}S`sSyt{0Eash zAM7`9q_Ycuan*~zz7)h2+6jr{APGtYvRGB?uM&W2A-kAv*87!-nNS+<4Mp+PsRg{r zlkCEDPb=rz8%<{Hw;r5MYBq++@WZ74UGxxWX*<@tL4Q*O8VCWW>~g2vN;+M*Hn0yv z{d>`SbQXI?uV$AArbf{b3Br?zad&~J`uGSmt+ubYh7%OTbKn-51^ttwK0MUt#uqP! z>4+)HLz`$2t!D`o2V|MClmL_oTrszaz)RA~b%=&<-#a;vAD>;Y&aih=@O#ALNQ(uj zaV(WVkPmj3UsM3uL9oSO(CRih0y3-383RrQdN6gk4`;YMux)x2`$sQg_t-XJ|z-AT<{+j9uI%{15hd@PYmw zeC=8sKcEA#YdlmeBx{FC1f+XZEGPk}7?k;hMEHl}X*^4H|6jf`gV9j3Ku>nujkQfjdRbK+b6v z$CFmlmC5Qzf<)**8}KiV`S8i@Zv5S~D1I^;!w}tx=ZJt>2yFhjQ39}e440+AXB80& z{~w&3!>50uw3N&w2kZPmL(#>NvFe4oPqOBDVQs;peL5WMn`Q0nrWfqDlQ z89=*789=?;LG!l<0=XRo-28@d@hi|Zh|_zHp(i?zEi>cTHFX2qCb&#Ma?lnD(SR@k zS9;NIz#{g|O$ellNeX!xx!%`n@R;FtyhS4Ly&DObL4@!N5o(o=I{55y`A;94SIeP&q zofr>Jw)f%u&ZB5cM!1!53fpIH($UZe`sOCl!KDI!B1$8|93kLyy=Xrm+P?Zf<(0)) z>La@aazx<%9zV|Q^Wy2zIG*Q@fs1n~Oj7e2rIE3PgK7neY5*kwMZvUjB>Jwv3GVIx z%Bxe{=Ej-7owoOJKyZ1y)B^CS$PE%3SE=GL#0nV`cZD}O1621USr z2o#cmu*;7Sw-jFQ-vi@N3f-{&D8O>A5aR9jpk&_#mP`?wN- z)p055Dv!Iz)$us~>+{nX52tKr@F(kI4zHhe%5FC*sd5#L-0pUw-6uT0Uco^W67|Yl z^Hl^&MnKNZv%G{_cRDcb)^n`6t<8Q^vq79BNl`|5{8dH z2aI$QhL8e_4HWnzTqFlMj!<&J>Ue`i1mq6|{2=ExpWETaC%3tAKA6GlQz^VQ5yiP# zp5z!wVvasn#QSQ-n*8Kzt9ApNkkzpbn<8tOR7c|(e2v!r7pG$Ih=UtD1=(Xv;cxgz z0P=mmE+tI!0o>^`U@eW*u`E&!o3&D1+CwvKOau(e;ZTmuFA{=4AFgqmp_9gf-gF$@ zk$D8dL2M-{=nC>RH;eW}1pcWh_~z%}QC8-j2N}8*-D-4U<|L2j1-OA|M|80#E_*}V-{wjbnnLKB`$673lhgQuQG&pXeet<6Vc zTn9SofzQha(#vO3Y;)yZNP*bth|RD?5XcZjMp|;xBF}t~7sryUwL#@=4$7hEQX~=V zQaB$Adl#1oj=YdN$r4mB@J=Afh-q@9ib43Y{(yk;ZLo1VkJg@_fk}_+m)V5z$nj6G2ZWra2on zC#}YAphL;V&6TWyJYdJoRzx8-nJ~BSo+Y-qNN!)0XCLZ16o~n! zI8%yqP1I6#)}aXXYy-`^brG-xGEdvXgO10#cv- z05V4o!^0!X#h$>OqF(|EL>IRtijX%bs5`m5kRN1t#t9Ge@g*o-%L)$M?RXu7=5?kl zG-dNa>XoAt^e=?lS;0GqgVa>~4aCx3j3*p))tL|1jD+NdUU| zTuS$^Z;%qSbJ6iY2Q>i8hM!uNiw`@GTuxCHDm=dasMNCVnwKK5Is%rkm!IUr%D{&t z$-yM#Zl^lYm;Kcu5RAM?B&>PyEn^Hd0A)O2a*GK!b{Lni)A0_AB;!TpgXANGK!Vr~ zuy*KL0z$5m98g;zj)r7uKsF$TBL>1zgG(b^MvORdqOBWmP|YCsH)>DsGk)tz z1Q%#vVyoFdJFA22#Nls;yL$`2SiQH*T2}5hQAYL$4D9L^4S+m;^$D|7eVQhp+SLZT z`V>iXRRnB}fIKSVy)buZQ8gc5$&1=~EM&T^NldMPkr7EW0r`;sB9lE){dcz0hN44C zCx(-8Tq1)oQ;j{4C;`Z~c+sCoe37E@$WP8K@U%Y~*x14NZ?V6M+TRgqhqtHS7KVR0 zP{sJ}u3j&CP^dxA;l`%4iW`gu}EbeP=WRquvPS1V2^&4wrjT?N9bB4)=3Cw~RVg z{uUDt?C@LKiFz$b$OF8P2w7{JStEeT*HTkd1QdbIAs{vdQ|18wincIs$hf&w_3qUW zsJHl9txUGRCf@8$4TmvFk5g{WxN9FovXh0#e^K|7g@~gc7uWm^e;`{N8wr0|Lu+>% zxPRN?8e;7MvvQ2nhq`D0gurP~1QY>#A|M)oarDt$mmfX^Ndf9H#@Z8`N|#CrK#_=w z+FydaaVHE3K%8fGQxPQ6#QII%tq)ebYW}e{qDa2n+T-wgDD>Ol5=TF>ao0wIKZk*E z_GZ_WC7z>kw^e~W;K zJhQ1xOL5`sBfA3Vu-5IJFSZV ztASLZYqgPB6)J2klgY^lZUMyt4L?T~OkAG_F3*^_7UXxM5B{xU3X+S-(iMEHSy^o? z_yq$?{ZAvw$M?%doB9PIa1+rv7C`h7I-{sxOK8rDz{Uv3@yOTGM{&RFnT;cBjIt3> z0n8s z*)Hqk+*MPLO2PVUvYiv0+q8v)F6Uvw(|r)*_BWy0>Cni zMnXJBG)@D+TuT>M2aTl&C<3)dKu$oMMlXiVLpbVql{*4-;H^e0C;=d%}Vc%jhGdqd;#gOtYO;{a?RU(3};4;t>!# zfF!*Do=xA4qpmlKzfohBgh0y^0O6Gh&hSOW|Go2Ryf{KPkNhsX`|RM~r=-@jTV&4o z9Ua`BC?|?ox_~+qkTd?NScKdE7C8I2PFAl&Av8-xKoKYv0Xpu+c^tzW`q9OWfw~>A zR0KDU-?DlYne|KMc_JiU8Zz;RCsKIwx`_m*tuo_RMe)X+XWbYw{dXBy;3;CKX+T-8 zAex;kbJMilkQ2-_C<2N=qaYy198b|7zDjD z>;Be`zKTQKq6x|w1f2cHeIC3zQ>TZQv;S$H;x!tcp+-k3U5oZat#$(=z%vSQGW|Y8 zsRNK@0S%Q!pd|@_$b#9ZiLal|;LqO6V2&35y3Sw0j>YFRBR-OQ+TkJCuW;*Rh-W9% zI>_w*^4t_+sTi|X0#IxGH9tjQvk1r`MAxtfm(06V3$R%*SGm9C2!I%YhvF3eXEXS# z^BJx(HTH3itF&qTFNv(}qThec{tdGB3p``{v~0nzr3_|6&v5oX6q>T^IqDCJmOv3u z1WH9fX8j2s-St}f!*mYRsak+i0o)*dOA!DO{wbdM`0cYM{*J1D`Cdzzv_V@m$ImkR z_s~UgPp1X0;2R{%`u>C*!&|#5rfBeges+T18>7rrTe)_~Yfg$lWf73WfiB<>&YBNW z3$W;jrLtMHY-%k-07L|slt9m41HN`HZO!~uEL6DPi-708Nwc>DJR^C@@SnDTcyf{k zJ+T@w05ZF=PzXc8$?RDT6|SZxrwAwlwL?I(0OAMW#q{Ht$5zsLB>|N}zhwx3oRf2Y z68O@)DTHW~)-n~ZR8J`;9Wts+n;*_D?)xv8?#o`&OBDW3Pw>I50qcq+(>OhSlV^7) zm|YDrECw5mqX;MhWg{S3fFbPUQo!S+13dkde>H3#ftHYiqUv9u0Q%~wG;Yw@kM8f^ ze8;&Z1wM}%nf3Q~kzL&?bj8-L;cv=sqGpq2=j zc+GqiSIy(hw7TO+Eo)WJyjp?)hzs8zUj|;LdtY};)VRi7iqE1c+bH_FY4}H{KLxY@ zTuD6S1h3Dh@k}+f0AzYMLt&hsAEl;2)r2|h^<5EY1_WgNe;)04HvL&FU{LJ=D$uA+ zFAl|{-zXi?eB)wD*ZnKdVQxu6h&X5bneH|?X!&pXRK6ur_5$55;LA7CoSj#Py)VR* zcxQTqKL2CX12lctUIS<OztO0xpi?7jOX2r+<#S0|L4fu*s%w{!x;$=E+MYuF}zu zo&&$h-m>y`nfY^OpXuCDgJT;@TN06Cgn1|$uoBGA+XKq~j@ut{eyI{PoRW2_s0QTS(kE|>!} z`m?tD754y&J;r4k0{*9~Y0lP*yJx+!h?C*#3-dTTbAyCJOaLpyD%Q(Xe^Ue$fx03f z=LCp7z!RBY#x?U!iht4jZGJqdYo+RtdD9XA5d$%ro$uq{8f5uCT z|G^$O{oYlL{?^M)3l_-kTgk(u}L{FB3<-O%Z5B1Y~RA zBo7PvUiu5TmbpVoKpBnLv;@H5RC8!HgL8A-H7e6i4Vy>668>EC7vaCP2M((LSF`xv zC?g?bvMumGUQgqdDRJ^qdXTxk2>-Vyt|OX>kpDMrS1uhKy+aXb5d;j5BsZ`f-^=_e zE@$rMSmIGlKnZQ%w4g>OS9O@~$Z=RnnWMW6){kevZS0=}L3dpMhUfZu4Bq{{(C z^@OG+03sw#(fzE33Lro%O-k%czzNQ26)ew;7fSc&2Cg2NrBl8hNK%XQ8L5aZnJ)tQHfHm#DS<`Ixtza{)>ciX`|w-o+Pp76KcUjO{f#eI^kfltq-@%tCjxEx%c1Vqvq z9`8GYcc-q=z9T|Y1bM_YC<2OrBEXGEocqt913$=o4$q}ONBe-Cqy@T7aJ{}EZrYnJ zh+LQon^>Ud8QBV`p$r5>_!CFdO-ujocAoCno&~eQ`}d_}q6zrcRMryUpC1Meb}V1f z=edmtC6YKlH^tfi7&4iZ3jZ>iv}JD*o@kLp`A}kzLqx2(q%h$U@3m9(90p~PX5K6_ zDY>@_&wnLhlHCC@xbeLCA>2&uz$4BlvDbN;ivsik&jvKDwyb21jh$9g5&&6W7H@N5 zY5}ypOYESFgPf@RO}h1U(7}(RogV&(X*C~yApzee35ZY$@V_1cj&(ZV<)D+`E`jM- z#5&q{JUqiONRDw<#a@Z6+M3ZVfyJ(yBw?h%sA-m9ZYuXiV{lGQ!EEb*>G4|2VAeCx zNJK!MTh_&qrs#`OYZi&nd6!%)A~2d%)iFB_=R7^B@tAM8I3bY1z{W%%cVzHc9L9KN zD;_Xk#&P2n?iU!NK0y4DO1+B2z>3|xe~jPy?cewvx0k$W6Wg)u29H?%pQd&BQ`hJx zN;Lq*HxHk7YjE%wFgpW0*heh=x!zx+Ad`&qQ4^=;P3-nL(dS9ydT<`6=-ziOHqS{& z{;|!C!SWdAKG&$2noR)$>*1ekm-XTlBvrAG(n~CV5Q#Wk(^K%AI}7iL*SIZ+XGCO0 z+QxZFXN*MQx_J{un2tpF)pSt+y14`|g6+34i4Ni{?GJY#y}oDdARIM3qUDpLD1xH2~72(Ij{rtSzv%e<1`X zb_kQxaMSChx}Sdityw>jtP#_fB1l%^Bj9v6i9fv-h8ds7LShbSs{EbSfTay;|ISp; z60-lYpE%P=IA*5dK6MJl+wa18{RYffZauKr0iW>_^f&kJDL7A`fqTmqr0=*LiM#JY za>q`Xej3CI3$SCCBnDDTM>qoa$PIYkItl05bHLHMdHvQqokq1i!SE z-7|SkNJ4iDs@))TOak0BCrMm>_Pl*L_%<1I1ks0FH@a#kq#$PRNZs# zC$Ex&B)B+4j!(fDe;)o*r{Q||A;j;yj{>ld(@d%uYebTZDn6fQs&ip*#_oIbO}I|{ zG%NV!x|Ee~C5J`qOcEl;>2vU0yaLzJ!$>^#0VMYC=Tf1K$@bM-UkZMec& z`#$qBZo@m+V_ZNNCM+8PF(S;70RgJ|qhHA_QSlp^k^o2_56Ggjh7|}9lU%PBcqsTY z;>K5I`?T_hmuvpktR@#}#qAaPYNgIU@@`PA?=wvF8cE#l591*U{++(4rS8x0-~by> zE-HkECbM}2vd_AcvwrW(FT+XUZ!QG0LO&k?!uH z_GR&*UhP&JT$8a)guD=ebLLT8q>aE}Y8-nVm-xDXLFX{F0@IdOKx_rL5Xw?#wFCL$ zXZu=yAkF{Mh@YC00LZhrlSX9i6mSWCk>$MB4XnKMV+rzra+aMoXdUTohm*!lXs6Q* z@$4s4gDMVURuT9|-laKQ^wcCX{(cJn+bH<&X$xYPmus%PmZacM^VJ$0oM33!1On_$ z?AONF7<@ncAxx^Nt!`W?!N0O(77<`CKKU;E;}dXx=2M8>K{vFX%5INcneB$(Wxb!v z9R7Ds!u|axfr-hiur5dOv0-M!T(pF93vfU2BN|FhBl7Xbk=`;u5*51gPkK&!#zPfG+=wBP}>SUH8N=}aQyiXrKlN5VG?f5-b_czJ}c zM7BoEf}1vp(^5*3^kP~O|^Xm^tinkPys}1ORQ02xiQF%9fQH0xP+O`BQ^lQhO}q8RWzk zzkJk%8=({?X<06+emVR`yiTjqY+;Ch4tx~;(R=Q#y-ffy z5bONF$+zJ7?h`OWw3{hK<-b`Bdo_R>sHhv4EkC(pm!-B`ie?ZvilN&+BFkz%_%xYL1O zPZ;>tMcGaUo;+6$L0|g`Df~scfP7EUTV3IGDa%G7doS-2YFT7(Si+t{Tsok9=6lA$ zS-ugc(Nm1VK8&<`fiJ%E`|`Ccc3gI5H^(pDxje_*>`6L%It6bg2^U||=~u+G?vt|T zy1$f3f{$hC;w-<7>iw;*6jl2%Y~_r93kiUa*Ckq-ManAStXnKHlKqtbYYD(*nJ)XX zc;o7dxK(0W@pEOhT5DOPf-j37^Kr9nyY#mp>aDF^@MFFz)+d@eECyn^^trHQ3NA8c zE`H(FWuL7t*(>?3v%EwyJV^@`-scqNw;1x*m$$E3P{2Yha_&yKPohZ5`Mh(fX5Vvh z1;^ZH>z9JG^E-8x=UMx?*bQ`_*` z)vy@hmL|*@KkcRf?+X_eZh59FzF8`LnL$&?rk%3IDQ2zhXE^IONdlG+xrGmq*hHAP zuRVe;&jK|giyhdiCI=h}eKX2B%+DY*JB6*0Np!`i_Tu%mRI3Kn`eHC6vwmU30ej z{^rF`xqEZ(%OeyBvgJQ4`?gxFjmn%wdRa2JeAzgS_2fXlM)^;-WMN$>{Jrq=>Sf$G zh9qjml0Oau;p=0Fop_Vem_oW>Wqs?P#pHP#WuyUv9xh$NNhZ<=z4|uHnfc;`KXDK(rIYqi zP6}-|X90qR)9122%R?$^{jvf(mgCA<^u0h5>Z{CoAu{G&0=v5=QxN`OZ){=w|y{_Kszb#9|`3v?Lva&Oy#x zOXAfx#u4MR#v-lxWY_=1gi?VN;s%`<&iBj zIM9}&ri3+KjGEyVs`SWJB+kE!)bLfL>31KgI420J&$9C==gT64l6(^jetD-uMuxS@ zBEQ);Y^Kz?dvot))pE6)^H4V`tYty5>?Yz8r<>3DD>Ig`+Hl!TFyjO1p}_a?AS-{T z7aqSGE($-VIQ6Mi|4fA7xOiq+Q8)L6Wm~NeFj1=;@Xz$AwP?D6KiBuS`}oh7`{^4JsZWAK}ADF5s+o0iM_|0n*ihx6TzPg)`OG# zviM$jZLQCRx8&mF-sQK#&xLV|`po`q#0|RY^w1d(wE$}>RSQ#F`B1FcwrytDEW=}S2bySdjkOAL%f2>>8raKY`fA)0W(?i3Rc61=3#>fi)2jfgcId;(R_< zl<+sG=I-okM`wSVrSdl|6?aV^ur=$lnIEJc3lkA;$=`qkS;F4|U%-v-t(^#Ta@#Kl ze#^$A@nP5ugnBO#xOJ&iVW|rO@+`Wh>5L~u_AJc27J)P{J$)15r@w*Nh4*N;BeQ+& z619L{^C%AiOYluckSSE_t(FuYC|T$3;;g@CTL;zsvSqC~B%TQHIDMT95!y%tB5}QK zZuITyMte8c(mA^*H1J#vI=$992RybZ{BKb(79{GHezOTGb0&tK@7y zaq&IG&b(Ee6?OFrqbVx_#UVgR9u89QB{#O#_xe2O8l<;NYP6b5_)|&9-3rkKS^HmS zkPs5YpS$|oY4qr88tq4M9Ytdmi+~bZB(rqns93&AluWT3*1P$j@%RFnaudR2HGqO_hwUfi{>s7OY)UF&UW=aAft!u zcd!h$)e{l=`pA1nS``U#%GE(@e=&m8pa`sm zfcB2Hkg3;o(E`l*;Tq}Yh{xtxd#u|;2{}yOxJ*xKIk!lgNJ?*21Zsc)UF{%6)qjeP zJvMqI+NkmtCpR@PrKv&9muDfICP4$hb?e4B23->env?`BM?}AE1_31in?Y~Iy)sBu zB#;DnZ*;>o#nbvkmsg==b7ga;c=W~1;f>vl=5A=!cfnqRJrLkCkfPVSb-mQFy=2Yb z$36e+3P^j@sH{@RPKIPcymGF6yJ$hY-1cY9{`n1TjHKs5jr>I1^edpcZb^U~_L5@}Kk zU_{;UTxaa)gGouJ_-8FY+!m9V_#i}D9KJ453+DHPjsu^+d>nwQA*;+9?TbSL22vJI(;Q6{E5&>&XB108tv&>&KxaVdb# zA_4p(BtXLZ&T%r-EH_83jBp+0yp_eP_-ZCUjJmyQpma?gLbzE2mPJsaCwlT4S@gN_ape! zH?#WF)fN(~Rd$=DE2{s9&yAOkY{$IE1!I*{_Lo1R1;v(3c-nRvpd33CE72%%+hw&^7RTGfIL*Eqv zMWC?}sM-Xzv0>S4=}mm*z8>uF^+J{fY85gR?nw%;B((w7yCv-TU9MB;%k?G8V172* zx)AvAr{U@w5Wc`y4GUW4rC}gFuE{kG zihv@Z2s9c3N&u?RVq!eLZ@`WJ=Aj<6(L3NelgcXOUVM^fItAChBP0Qzh0#A~8Nu<; z@GKc9KAFaiX$fv8PI2}>#eLI;s7s0nITG-il7J%6(kP06B4AepbP1qJEhAn_KXykK zF5QgdyYI~-MZubLU{a+l%S)C!7u?70L%Y|D=!qZml)!5|Bq&DDgRDT^mjpJNkC#{F z++Eq(e*o|8pvz@T1(N$^<9CY$@Q;uH2@mD`1Z;e(#!v(l0Y$(T2q*!lRx@yR>2U-9 z-3PZ|E}q6u&IhRp5Lc$v6>6ndhXtjvp!?7<7+VGrd+&85FP=tvegU}L}>aqrYdbw2*F!&H;XfUn>pvpZUMUOz+dtCU9j}PF>&rjpUOF=BevWw03 zQwC(qW%O;OHef3}cRTxmWF<|F0u7Xe)8bZJSrrwEAHtI% z627IJRz|PDcWwbS4EWuC>}c!7_O3w;bZp@=4m~`&+}z;71r4jZD==QnSu|0rg~F?H zxK%FXKP{(9+3OrgauKcf!r1vA3a=LCUwAzqdwD)$mXZxiAFQuS_bz?N?t00^&R<@R z!}4#r96^dz1jwqH(#*jy|3g_&f7@18_NHBMf zKei(RToRDM(;6D-FTmjsSTJP=)a+jodik*I%hKi5uP*+)Bp?^RuPT(557kQv^TSfw zvZb*g7~hAasHg8dx`^FW&5R0Jt$;GBHfWcn*_ zx8O=eaDG0DKzI^^?Y%hEw-bAMcc70CwwFF1csRAS>?HT*aIw-U04I;$a;%qs%jcep zFX>4cEG+Xs^HVNH){I1ck~sORawT7yJkMC3V?Kt&&xgWva@1qBt|RgCX^==3-k48r zMY#%o(2t5h6C)sQ>-{F($v1HwZB?~2M>?O+iC=zyFOF>U;)!?W@$N_r^U)NNi&I!j zRum&JII@X*fdF?H|G$_JsvmEzXMaElX2wS(%2!=e1>*mwm}5 zxaxh`TeA^ze+%v<`;8Q2MM?x`x=hE2Vomoh`bauB<^zu-l$uLbQ){s0KBvstc z*|JBIaa^4p!S&fuY@uVQ+xqt5@W5USkQBJ-^hv6i7qkL(9*cbK^Vh7r3*r?1l8?_= z{6TtP;qQeFmLrLBPvL!qcjV#}-nX*u`J$}crn#7NK>>0f3kxn_>Hq*0#z{m$RP(da z&i!B&JO4#|Kx9My+RFU(yCTqZ2v{}%)Fd`t#cW(5QDw@2dGG!<9NfxN122d0(!~fa zPsT7CP9sKP!KHX>uwG9qAR=W)rw51Va420%M*}v-wv?jDkUx_QVwx}Kk|A9wDXbHh zazq?11xNxURG$P0>5v*_wHT9;1x!ZX#<{6$xNGYn93I?<9)CBSTrwyW{8r)gk0PK5 zv@`-r0BYR)GS5g-Xa}eb_~@Noc<^95F5Haay`d@HDfS{;&^PD*wR&V1=RnyV6@m!wIl(#GUN!&cyu1m zUVRf+s2O;0*PYnavmHK{GdW^j#591X>dTB>;75cTve^ga~+@xMyD*?&d2L zN@IK>fhoSvETj;QXAn*-t`95@+FrKO$6ecwqSN2Ot2sI;F*PUxia@I(pah`KEiXjCT%6_y+MGDh z=EDIg6R&62ZDkne*X*11*}>xgW#(Ua&H6$A6oG()XCWjpp9~cdcau@1%_wW@p$U+Z ziRs{%!Fp~@VfD207N)P z0(#oe(Hnq6X5V!PvLrAXp23qBU%?I92guHVn&ME0I%}4SfFiIu0!jc@$3?F;DFPyP zQx}kR}oMI>Vkk0fV#l0 znbs453_TszEl}2q+P$m4lO(`jH+v2jmji|trtrj>=P^1v4yRLxg1Yqy%~%nr69W3w z*9mydw#5;kE6$F-Hh6dvVZG+x28I48H32VQKZ#IOoFdg{S)#>zf>vJW~o z)>XOAEjyfqE?kh@XIkcnoh0pGK7Lx;1cF3+Wd{plK0M z0?@Qgs})-n0ZLg9mjF5p9|f*GRNn4@hnfJ<0@RBFWDgX&MBe}xC$H$Xz*RerUQ`5{ z4*?|r&DW+{qjeAvk?%F!=x_y=9g(}vE!F>tPho&N0t{*c>O}!$)}N#ez+0o|5Q&HF zu|!gR?He=8GB`mvSd$)v6o#8iKr|QvTxZEgY4V;==Z+A z=Q@8r_kEx9IiGXi*YjNG+~>d@2tu(!+i`^P`baggtV)2-3lo*aC?f;iiydJdJ7 z^DgzIDsBm=HTymP(Bm6R_n9z~zIp(QCMBwx57WWc5s>Enze`-fzCE-RiBB zgr?p@GdhNME#y-=-m?qDpXC^!mP3DSxsHMshi00CNj78+O|YUn zyDBrG(Gi9XW3H3v_d5rh5WGp*)&wa8YBHGP=?e*Ysuo_P6Fe{xV_E zyq*K$V1KdKP{}{<<#l^_-0=qewP#_J!|;>s?WDKQ1g0J*d5iZSZw}WZNbDpvWWNsO zHKSt$F3c0)4?}xZu4HplMaVZ@s@mA4hi=96@>mdD5UPEOu;|mff!$t4w%p zG?BzWR$*K`*&@{=l}f9@VvD-fUP}6uXg zLpjga{&H(pl?rJq{cJhqzixQl;Wgv)CnQD%I9t_9v%gs6t+_5iyIk*_O3JFxh+hD| zxA*YXq`WH)$)DJ10b{PUBq`ys(z!QSv6%HP+4FcV>5qS594O)UrdBD%3*14h|H4r z1HQlWVq;cG={zy>QQyQY7^y0kI-PtuTBdG%SvLu3^(|9NP1uueh{H3>3y`&JjO5k? zg}0A}6%%>RM_-Ps+S4}zHEPGD4m=&o_JKe<9o!Crj!TfmrTnV8mjL|J@UoW79!J2~x# z+1sN8&)R~9l7@oAuZ{x)8}>En@1m7kEp|>KJ~yS_i=~t%j4&c{!8r9XPw0lYxQBc`qE&ETJwg3Si*vg{($>He+S)&@gcamiWZXhM~ zI{vkTdHUhpBo|g)^$5mBb{tw~k0wcsri5D27%d-grQ5@mPY26KE=UTDV|}m8T#X=< zD9`gmJot6`Q;p=U?w_l{F#N=h&;Dh8F82D+;YxiBCf-*_KbSg4d`{Cp*nhTv@v3mB>~! zp7#uwjR%zW{z!*$*nE$aL(E@b|DpQ2>#AR_AM31is=()?*D<)%Na!q@CII2|?qu}l z*)L%s+}G65usPhD&!}?s0kcOhK1&33L9&Yy9RiMFWn6sj$+!KB=3X-0 z{pTazts2B2f_EIzB5d3SH^wgB;hKX4eslQuV{hXh)TdIYFWg$rk|FRd4pkP=&;bVnrH;1B%~(7MHU(=z@HD$pDLib0MHcADwB0{%AKr1vm-gvC)6SZYH4>88 z6C^+mTUMn4MH-eih-6T+t0EH@xCTy^XbBEMj8}>RNwkeKiQ4NJTGUx$DoI~2jU=IQ zSjE*qKhT^8Y)7fLK8Xhqg(}dbBd>$L;t$_u`QSKc(#9S+)d&2kfI-F*R5=4k&PE=%%$ttKkA=>N-xWjrjRLLaic0e>fRUt9{Jo?C0%K!sTW$DPSO<81)9(fvmPF` z{0&?3n1x|}u&`~L# z#6m-8Jp&LDVCp(43oFa~jX*Ve(WIm&$~;R`Vf%w|yle`1-6gIT=!3yVEJD)i^~S~m zXP!J2oCTCP*x&>8THpqBLM(8U2Op z`w4Byf@?kpk{O3L^>b06uS{WB4`#iix%f4V0#JL3x;0*imc(D8%77C@kj#W^(*PyQ zyO|5STi-wD@Gpi!We+W<(GcqhaCtwN)NF>jY5Jc(lA+*ep}{*p9;wog`EkxFLou=G zBy)ZeKV6Cq+lJ$N={5<`3 z?QNS}5Ht+3beN$n4dC4kp}=Y%1gco7iqfXP&Vm(5%7N}(uIaa)LT@?|RMUlPn$m8$r_e(JtOMfoV$ z9wX9JJUekhtA4nH@!nr{f>GJ(N`=WX?>gJ*{^lFXmgUyygSH*SlcisP{Ah>y|2&%X zf=8R1eCdA0M&j8f+yjfgq0Sd=BHcj5G@z}Ba}v?-K7DH$2|}v_>(-bvSRO19 z6`Acd*8K@YWJMihdzD?GTGmsREKwi&K!QXdW5Y7m52kf_K(pt$AuCyHZ^OIlcR$zJ zUC8wWS|<9N_|bkHNo~;o)2zj90LnV ztr|{g2VTVtmGxO);(5K~%}(IJo`_3XvJ`QD>(fX;-=B^ko#ABYqVq z-szb%OJqu(lIzE$PwOiuvK(&@e|2Vn+;(2snbZDpI6CUQpTnKhGF~^m9IU8hV*KW? z%*1f~a!!kv%0sK=x*H>`3{Xwtx6wOHB{wTJV)E)ti)%P3&TF@y_A@NW^QJ6@XcQKC zU(AmeFRQea*Y?zYHqz6RG=Lwimkr0OOog}NP_{Xn{qm!LTlQT-tQam!D=HTAV> z^MHWJC~JQ4;2IPDmeQ2v=CYMf>zOyA#2+I9`rL_aVd}*1qr1s6TfMfe9*%@T#^4)I zD)@$6VatXg`eu!@vT+^#w`r3m@xImEQPDTujk|pL2VI{#cBgwRM5{bczf;+NMg5l^ zMe@FMcB8PSvzAue!Sak3*HLugNvjXmCF0|l#jZEC8w#xiOpNxx2Ia?_`%}*?>gYA> zD!`WORBcXLUs2&oqmSp>e3ZFi_OGjevwGDn&oLgpp$%=3>G$L@l45bB<$t{ z@po;F4K|MZ;5Hl?wMeeTJ`!qof!^Y%InyMokR zQ@kple=T(__x0$~PR~O))m(X=ai2HpD70(kU^>qg7EPh<$t%n;8HNA-srJXm-s}VoXOo_yuVK2^kZrgo0(*xeU{wzV;UphVq%nvx+$p7zNZiDnDglmR;*y1-Tl$FcOa2?#FAvG!M2c zXG}O5vY&f9Z`HXr`c%Ovy|%*nj#}{_D#DCyF+ajST~D9C{BF{^RN1c|Rp}O?w$OgB z%}H}NPVY-Mgk1%T&!mSO7@+sRp4g`h`fb@upEFnVn4kr7%O_laXMdWsD}MOrv*c&{ z!=`GJBy^jZ{pqy_Bd(Pb(Kj{f3+po@y?M7X>)ZK8JKRSeD>Ru%ixl19)aiL<^Rnk_ zsf`TFAfK12Z$Qv@uU@1}XK_#na*@jji~W8HKjPoM%2#g~@#LwShG4cKIE5ysnocewtHKwB4pWO=d^P!DE9>yx&+U{#%l>#K+fJ`VMAQ44lPv2?nw# z9enL(wGr1-mDSqUJFGh9J5C>+)TFD<+^{#3udux%%>7V^P-^6c{mN6Q_wd(LKaWFU zGpcXyjbS8s?rQ^Pn-8}wlA8t(SRUzIo~LFs=`AW%dtJXp=Q7k~lM8pV-#t}#qEqId c@}Qt2Iu>u<Ty?;0$ya1`;NrouOrhG-cWjnUI-u+F{a?Op<9@Ld*mRkO?t1b{+78 z0Rwhy1Ge!)RPtMrWuKmRr+e>ifB(H(X?402lIjQPU$eS>eBXZG|NZ#BRWJq|=xMDt z^u!uNH&*GU*_eh|ryEAGVHnU&IZVfqxz0S3`}TADH`CS_x^MR#`Fyyai8S9Ye-i^G z0>$i9pd3?RZdTyh@a)pH?SxX==I8|Madc9KK~F5-m^d`t9o6`Hvt#TVLA~M0~wz znkBgn|J1LkN+pJ3uK(_?*Pn3WGDLvmq1M&ZndgZ7&^>3v{}1OhDJm2^=ad8s+2G*m zI_P-$%Z9wED9}|6DVLjv$8ork)?6@@iStT`U;r;a^~r`hVX901rC|PmKVKTL*NGgB zFnrN4DhGn74E3NWKFFCH5TYbJKJ*utqo;fd1_I?Ik_wlertu%2#}IWe(@DYk+e&*+ zd%fm2PR0@mTKlZ~GDfx{d^yXHZ6S@T`|XYkOLUt#60w=CqxV;`srt6bEY#<2#u*v|y{ zd7piN<=bC{svAftURVY|239${v1lMV&px2qh|N&=d;7kvD5mXr^Y;5`BpDBmWfv4Q zy6E~WYk08{&G&vmzOijT?%4hsl$4kz;#-}75}>h5ab~?P9$D?oB}6I(rKkvMZ7tOD za?-$n(bJ7&*EuXY_#tAxB5ZEH2O5oIK`_la7YS5cu)#%qAR<~y>wYVdcPT`sIRWk3 zsD-@6c`@io6~-C5zuhG;gR}!8ufkCt?j=j$xuux|tLA+^llvr!-qC^N_8nOE@eZ81 z;!5nFy^!`KzhPvL;#|63M3hIq+N6Fj+PwwkgXf{GiomrroIzfUeVQqX&VvZ6v*PgF z+Y7ZJL4t6~6l?F-?uPH{YoXTE3?Ys*In8HULj(MeJPh~Z8?pSOO(>2<^ zLI8uoO=WinW*ylJEK5LbjFWpr*y-tHj>K1pq4;%pR`x-gYruE!T6mh9Ep9_+o|6kg z2#E{UtU;Y$!-AuGEhCxR%)Y)n1fUPU>hn+FcMm|DL(U5F4j?1payn*1ZlvK^RSx%} z8#2gCdzJUKJSfl}DE=a7RFehtDxMU_C;)kS7if8bZkr6oU8yAMPaFZN$zpQXneq$r z@g#7pgC|Z9X^_L_IvYm9akO{zSfcN2YMo2F88a|7+>I&y=dF->R2$y7^aS97o~0w-LDZJ{^aTlUVsX+!Ny`1n{I{FvA>P#NWXNgDQOUJO$r1^9eP5_yRClMpgI{h|7-3~9*nKXi8`3d5- z7tJwo<9wb|b!`H;G!xweDyCGBS|-IirDMe%^RZ&Z^%BF=$Zr7O6;AJ6zjVOq>8Dy@%nUP$0BoT(%@I+-uyy1gNoII=I zwauR*5o2H@)-oTs`My1S5Z^#UG7h-B1ds`myGEx6$&Hm(=xarLc_x1Af)JHQNAp4k zIwd|*E{E+x5L(RS&Yg(=emzx+(ou*=j`v@F0?1?-@tNJ6Jc(d*d8}*49BCI+ES?ia zL#>JB%Vy_Co<=XZZ5tAsHfOr>T4aPduN5vh-{(C4au7gfL`g6QSpIseobf+>p~U@J z5L-}DoWP^2U6|8YOYYK0*pPJ%f_P%z;c`BArT4)pWIHcR`Umjy~{%km7_y0l0{oS%t{8s zX)_*2{C964b?`Izd~S5bP5f~G0Df~Uioqm_B=4fToUTj!nIA4W0i-~YV6HBOPgR_L zK53ANi!0n#Y7s-bevm|PAi%z6B#hYWuOt0=D|~(r4)vw+(7W9@+QWK+OSSagu>5FY zJ&Ua586U$ zJg|eskkWF@uk)d&Ck#I&!XNPATxU0fsjSop#yLeP>8Ca5$*W}9L8WVY0)s0c@#GsA0 zR0*YmqAyWxoG~(OfS*3@h1Mwk`olhWY4tT4#j5fEy1GLY6b%)nMd;`ZV(|lC#aI5} zF-DieX)(*<2yof(f=IxYz6!kEUs2G|jKYtE?wB!$AuTQXctMPRKMg^WQ6P~Q;fSP7 z{NhL$)fEA}{nC@z_`=_!j7Y!p@^`T5g(uk5;Vuh|Gie(j6Yw%b6%lNW`M96~+)~;H z4@EXX<)z^*2vVp#SJ#LTS9VGVsH0h5Ua*7xz+#t-OjAI2w=bB);Q{ViFjIK?M{gp= zyx`E$Q~2JG)*~8EAsFnldlvkilmtk0#ia*q>M6%Rot%LKg8>|j2JrN$M!eKri$2{$ ze_WUX;t8Tfr8wTSFyjddPOtC-8hY&QPEx-aJ8-B&pLgKFdzRp*KYSSHX#^i!eG`8E z&yP?gO2#yT6P5s#+>ID2{{2ifJ`5GJqH8kT%pe=pHJnLJ!TxR!9-Dd^^`+^d0!}U} zDii;sbC+SxXFHi5#|sBXxg8zX$3qzrSLjOP!f_(5F$z2v96(P$H;V9ncra%DI=YQG zodf}Z7tU7V10wI2byf#Rc~0vaz`3&_tP7Un$;DI&jv%YjlEO+rYRcLjRX`Rxd#h@3 zC!_+x?W0jI zcJvp+mxH`DN|aXi`~Zq0od|vWA@-aLSfQyWI)L&sEttN4E6UFwhg5|GG={OCF1iyv zB!tTKya@r3_S$uUY)3cCWNxp=;<$bOMem%D1c<1A9QGs5Dy=V9$Hg{@*m0>!_ZA~n zJrk!tKZmCMFF@@LLWx9>h_K30G!?y%JV`6YiPCjO0%h2F>wUQUt^cwL7X|Z#986@m z>46D&k(~ba<%9?zVi!!Y!eaM!{z|kZE{Y;&5x`%GaQ`86?QcQfpo&nMv4)$gIM>di zTF9^&yW!%hO|U}G%^z(i|_1jfD71fVFijuom zz%!=_N-0-ACHxgpa)4y+a%{cr>-c!VpILhY#$459UlF((zlsMNi^g_jAnBxUj&^U86<6<$PbDsU8&+%*|yTgmtsvA-ZJDe~L5-H&%~ zzT29$X6OC(Y;%5P%)h!ifY}wS0}4eZ0TU+xkvIAW5dUZo^p;~#&hn7g2X(e92>rwQ0OTgUEQmK5e5j!xIQt;y?buOzR)ZmxVKe13Si!XvRmF2qTNKdBC1aK4iGb}o^eR2$H zh!t8v-T|V;o7*D1!^n`2mem(wP1EGJ9=K>kCA!;@s=$A)c^vQFxB`8pmDc_r**_%t zM8j4+3n9j%731;(E+XG@HioBu+m5dOgq3PqZ+Dcn#2ZCK z_iY2mm?1Gi6>!kgIu$$11Q^|A)!4FZHFjQq2d?ZofyVY$ObfQ7B6t=)AqEMa;MliM z(eTcSD!g_gf!B^lStUw=Wt0&$)Z8(?kN}c&2y)NA*Nyi66#Np~5>&4rt`Zh0vLY^$ zH-j$8iU=(ta6ccpBsGTrD~RZ;REs$G2Oep-4u@yXw{nmv&p(fn({0cn`-bI(bVI`; zbr&9YZO6BDH%?JY&v4EytRu80MSVxZm;{i;+qOOvFC8-QS+W`x4Gd(mpvu-Y=H){i zCn0X7@pD2~G{naei)S2>^Vww1E&D*C3YaX7MY*dx!8L<{sWV}CB_($;F-u^nwuRY; zj#=c~Y)Yb^mE{&Xq6rZ|IDd@k^xtjQah87N$_ z+1HNP$V-zf!cN5Hwjj?W#51i5FLoICm`bNJvDr;sjZr@*&3p-$CD7svgxjNDWIvag zWuJ>tOw($-VSE#vW&@FD?!h~9zYydn0Ff7}ofybi(j*f#EAtd=$WcYM;B!;C!EX^# zRb@zBRSzRjgfQy_&m9k82e-POOGKct_Q!vD4^v9p)^}gt^%xL}!29;rOu)tGQf2E>>+v7>9^O$NK&LtjF^#*-Xeo!s z$c`tt6e@~xI2`HLaVo?uY0UiE&L{BV&K{WMainJSQu=lHigi4iV0ruSr`*}5quQN9 zja#TLPBBY&N{sx86k2?+t~2MBFj-IKnt#%Oq8IIpApHJ5R8;xlE#fj6B`SS&6U-vN z_1^ek5|Q`zqP)xlpDdJenLOPzn|TJ^uDpbdqS>SsaKVSnUW63*p3DsR%VF3q-gG^U zDYx42dX&Q!$-cH);XwvcPRhyc=b5ai6pd7EFO0H5Xk2|+@cwp`ghN(cPmt7Um;@|j z~#{tj0KY2CENQ^R_;gDbgmd@sKki#jD?&S)ZQ+J-vKwOuaxJRw<+9p zhM+y_@Cd>Rfm}6^T14-Z84)f)D)JpolhrEcpNPE`SWyLP%RQ*!(b1cN?_fRdUa6s` z)PT3@C=wy=(a9n%L)qXW6+f6)k26)pxbKh0;b)b0s2SUdtq{&TK@hH}EhQ8A9_A3k zZ_Bij=jBt#FY7rsSUNlBInPCWs0lk#13Fnv2Nfwl0qn-&%d6?*|8dn+{Cr0ceM~>^ zshWnFOnmz9e+-FJZOq8XVL^v&rM*bQAosX@q8&#!rSI3v8lj!&Awe?;Pb;gz!fA8h z=0@jKwy)KX&*e`fP}<7h#Q>EAR4eO_DJRdjKJE#4em0(k5i!bxw1}Z-8Udf^8H*p} zfwiTbnVU@5UKo*Scf@<};;H{8QAix>Q6v;YZ%4l+wsLP)^$e_?cPEM9r4QGw{<6R# zpUcU+CimIg_{b#-BgKaDH!hdv-=HYQPuMMAoG{{T5?@PLT*0hQxMnej6EqcNY#s%kPiRTzitVi;dNrk%vH6DJ_BD=b>Aj@zmCOT>AzldQ= zknsY8rZ3WEyZ?py<D-K{~?fZN&E!l+ym!jde$_1?6N>-mykEvV~y>r%0 zm|Jrd>Pn|DQq)*Xp)nJqc8P$VD6F_Vg7Yxp<+C|5YCSnaY0c=M{jHGwD|$Js=lMT* zwQYd?2`o(wjz&&nQ*aleG>VJMuE8BuiPzu(N4Y0?#7&d@(HdIr& z_t~58x3-a45+Ibgs&w{7y2K~R2{GUo4AP9xuMSMd%IYPkq)J>?1lW=w91d}NtWWjOx;y(i z&qcz9uP>woh}e_c4>^$+0t`ujTnNmrn7xr1m z0v!8#xS!m&q>KHX5+L^`N-iQ4Vd&k-+5rPRbu+EYhG)k3eExp{-TOU`_t+oAnTxfqIP-VLMX0W}3Kazt1pok4YN|^50009& z!T>T7@IM5L;M3!8_Sdwo0YF&<<>75&@cUI;V>LT1EkFSLOa?$g9Dcn60lzVU{{R4* z3H>ty12T#J>+|t1*Xdh$0RRrDDP1%0hWwcDaWx(Ahsb(BGeul$?}rv^5{Gkl#NWk<{uw;`4CQ_tAGQ zOB=Ot2FL72(chbhxUSIxWiAtNku4dj%XQ3)Jdiio)p|b{L&^z%tlVyDcWtI?z^+iB z|ooR`_3GL0A ztS_cBH95Qt)-2YBJL+j=UKE@iRG#mz-CCF&zc8Yo zH$T*Qr?*uhAV)U4OW;u6>`|x62Fuo3(D=2NGEK&okWG8`spT@F?epIEq>MbVhv+ zf8SwI=_?2F#S8QAf>gRvP1cWolx_80&Twz0_mw2P>fIgf7^%HnZa<&kK0WzE@5|Qh zo%xImnbGqo(aLDdVt5el1tOu=4j&|jwJ*6PbY>z0S2tYm6S{O^-={n661L`vhdWNJ zIRS2xcx&lEjDMajgCOr!ner_+x0~vY3xxly-ncr=^(thmW!Ln=xv>YnkIIAMb88S(S3`Dz8~gZn(SH?=Vbv zoY(tdUh&B<10{mPYR+Tg4_T57%9|NRULOQu7y^>z(%8t@kpPsH&e+OKr`|no(Xb=27p^dzx?^Td& z$FzSP&(Ha9+9R=`Z0+G0fWL^0rUqs4P`5qy%)i76j@|{w{ScJEUlf`m4YVGm&d&OK z`(%5@==VoUkf|AFBo0FQVel z_Eagz0f#2ru}puR&;Iy)x2DfB{xzO)Ob-+6|KfQjz?v4w7?Ap+{BIhrzXs$0KjWpd z=l+@saXgjLLhL_(jfWgB{eR{2AKnw%G(-Q=1e*0Yqyw&x2yJAjefzK99SVS2QgTJ7 z_OEe2ZgAXaKi`IKjmH-$qEGIIkbiTTdAiUL5tl~96%BA*El0M{(t53pp6;&lDqzwHk0jL zW54(lw1#s3zp;j%kP0X}1SlC2oBP{s!a;-U%KUHRPsTn)1oBM&oz08q|K=qU^j&NJ zwiEv^eAoX8w~GXT-M{w+l|S}cPu2g2R|K8Y6zgAp6^i} zH_4p1m;aIrQH9T`MCv-!FoWh&nZ$!U>!k(TCHSO#r=I}UUCdfN=3-RXxp{q%{b&}@ zosC06EdEOrH0V_|THa4o>bWrOi+4^Xk@(MVIeiLP^+pvw4^!2Ra6HExJ39Q1RiUrO zodkUYV$U4FN^B+lmQd-kKHdvT{OSE>tKt`Iqs7eD!RAo^67 zpFC##Lf>mup3hO~R2()$Bo0)k6OGg#YX0+#3S>{I2I#UZdd*4yuxdRL-Xr^=TeddC zKiWlprEfo3$$T(uTTRhP)AUAVS$bl0e4v^B75cs#M>YMY!_@hrT*E%MF-vO9d#0HS z)QZ$|>KSq?7Tmg@$AIz<53rabh4htD+omt)im~)PZOuw7J}A0-RDM58W$>qE z9KGUEvF{7)&${*BU{0~@8 zrx#^u78hT1e5;V9bD(7u&=-bq$Jm;T_3;-x_RV_iB)ipUe@0ecwC^tam?OIx7v0&K z+DC8AT_(6Jv{uE;2O^Wq(5Ki`NjmE&G$j%%zw<%^7(iWF7|s3hTV|&m0+WIR^iu*H z@?Pq+*g3DeEH-jDS4-Q@6`9edC+~Rd9~sm*=~`zrWbp5-FUR$cRb8tylWgA~NU?dB z|B#10v*0XOq6%84n#5K)6OIJn5K^}PfW%#j4$WcvuNx~uI5lxSt7@kvf0NP552*Qr zD|K7-)%O!pw{n^SE|sjhX*RvHw52xoNfBt%GI5##$T8m9=Vj>2-1{%^B@41sxEx=Oy1 zDU&+~6Ub*nbsqWE@TN5?csspG8D&mwKR(_n_sNGMy!@au5HkxtJ-sN8bRmX@q}ruX5R`Mm8D zNZQz=*1S$q`(W}#t|yx8#yt0;uc2>%!Ygsdo&S$=WX2+sK8qCU;2d*!ZMr)v%4d2n zIjlB)O~mV4`?(Y#$w{1KJY~1UKEb-M(pxTb`+jLex6}1L?+@{|MKRfgW zx`V!Scabz{sFFoyc5z2#c04~!j6QFW9!3UpO<>n02iX~?yO8|HPM8E*OJ~#JxNZBU z3`e|{=tjKpXJZb0s;c;h?+{C*Du~S629x^LVK41Fb!vyII2y}Ymm$xGz>{Df3n98Z zYSGtz2PRgO&)!e7X>-{)5^P5hYeWv%2EHic@gbhGtbzMbJ8yJ?%VCnA7a$nc)2ATs*S{TDL%KvPNI?(A8!mHas%KN*siRTQ-4DLv8JJ#*o@iYsQ zN4z75?__~U+pBH@Pz{jUr3RP6RsO_B2FPHAY6!HQk)5X0Pf;Ik%@68o{F^Ujew%$N60E< zY2psiZscc4=;~Qtn1rM4AarEjhn*Si={phP?WC+OW85)ye%1okk71=3kZ65SdW8&M z&HN4|(0$OHn1_6EvGE(%q`aq}|G2sxY7i0OTi0>+G$fbOCV_e!+n}Ap zp{GV32;>g2?7PQ<;Lv`6wDvcD11TsH$??lMUuT<&@0Q~}llES9HG>|oFhj|%DrOc{ z+-#cI$IkYq<7PV>byRf}3p9hSCrizfy569QqRa*J2Ck2(q7;4;sMH+&YKwaDCZSPM zyUm|>GRjc0jyqA+IKV;}beFq4rQ1L4%Qt$Zq#iFm^s#SO6w|ZlJ_L4ew3^7%fqt%n zBDdx@H+A`}?RH$)>bR*zyHGU2I%HSP+0RF`D`Fc3WQ5PhMVt=M3ooAFEX%(iOnkLr zvc=Mt_+uf|c!XkV`OggJ0-d}Fq{9B}zTvD<$z@S(HqQz;kmzz)^1;E}65=5A$N0nR zmW^1+*;_MA!Nfuuu`!K8aB4tgNZ9r_{thID+GV+3mAW`~Al&*?#VW>dVrX#<1rHUW zam_#nZ!OI2*4K%Bf=*5zNS!Omzgr3H8gfci9j79`pt=4;SY2nxa&GpDN(or)%_fvD zeOHU$cGn(=q=U6_M6xiHW^ctd;CqH<-L^m28(`L)wKp0&)4M#UZ?MBdy0S9vXU%xSCJKQn8&U8peMO1oW z$_ugzL5n=WxIo)ZCPF3Pz$+7(4aRTCn zHW&a~Yoj%3_qG%8H>y~@RRb!qYUlDCY#tz`SSI(hK+0h5r*8h9gD4RBXxBOU{B$0Q zdO4YcqtrOi$ptCN8gQ$tcv5J?)uSxe?L0IcObkvXW%%@BXNnN?CTz#wO=-{y#g39aZ1A{J-EP2F-T;$gh9r=cQXn-1 zUO4>*9B>E7RzG4wx7u&NF{6bO+o&{yx=im&1Gm0qt=#RrzoVfLDPq~vdM%g7<29T| zWnq533C!#?ST)DeoH+1q3Rtg0p7v*(=Ixtqn6m1uxm(rt?dl(B;F*WeX=6=Rf1K^e zu)k%%My-pQi^WT>r>{4yo}WGA`W&3+y#5&*qTfIup2xcGu=>?*J7+UNjn!wt{xUw{ zYx6fU_DJ5IfcXaW=$kTg~AF^{ofNRqGGEetNaiu^npe zu=uOwH-Gildq4p?ra|)l(-C$&WQWU3RvON!7a)UbF>c(%|3G!s{ENeW`%w*A(Yqc6 zxijVUD~ac??&MtF-WFc+JADJRcWXSZ>qnAVmDMjVK)jybK?xowTifn)_MI?tPlx^8 z%n>v1jaheIOk_99K6e;`FaZTqTw}0uMd*%QFidmok%jOxu3mJI)|JdOwxNbA9 zn%Xi!q=_IdwZ6gZv2RtyM-GN~6R?g*q`lRVPLd(?ehx48(N)|T*C0RHr_&WUG7vbndxr^z3761nrInAc|`X zTJyTAjli6xL@=I=xY!Cs>!Q@5iI+)J$qiN*^yK*8b1DG{?1k_9GK-r zge|>C=D1&BhISn%pAV%uLQYopHbr;jvZ!md7YnM)t@|q6EmzPPk_b{nn?aeoQ=>3G zy9&#*$m%aYt?wwJm!Q|~7;2YrY=)dDsu!{549aw9C}456WNr(4XpnsHxY5j59RyJ6 zXYZl>Oq!0qqPk%a;|u5*!ykFqiIQ*=?n(+oF_7 z#JwHm=Z2;;v=q~nF2oDdsnVePJXhyGo&j9lSEIa6q|=-)()o~0dZ+G(Y=9ESrTAXA z+gGA(L1J-O-y-wgsbp&<8q!%73%scuJ|zef5QGDn<#=i=i}H~8AVv5mSGTW>`+a;`ah419<^Tl4QXl&k9iDgGSTQB z$mHO!C^NxmKTah24UE+XH`npd<$03$=jq?0@~+8>(qm9Q%OdIQ^3$JtEAUg~$eukYV+r$~+E zx%p$SfrXYOF)l^g6ApkHc^$$;pw!wUfxr%V;WTK3=UP84n7_@tqS$nzPp-8<7$U)l zeMAKaET^D>@d@&VPP_%&fpO0BxxYa_Xm0!VtaPdgz3?9(aIvBg7XgJq4vkm3_{80Tt8ZCbh)<|m%t)5iS6)oW2c_QMP#>(QlwLzhL7d?8w3J{v zNr-)#@{d)@M>-rzM(nm1(_uGe5qaL{L5JH!-$DY(r+tWF(slI(O~LR==fKHc*HhtD z8wkR;A={OG9XTU;isK5NF~9W_Ai{$sM%8V!tvyl#dJc44<7B_L?b;26sI|Y?fLsbA ztmZ1jT66exJ3Krtj7=E@cB6L7f2`GVO&feHfyIvT9EW$;+|QkCu7Ni)emO7khrH*r zuc%#t1lkKoWZ1EnN%vn>DPI^=CeJ3%8db%XXe`kp!9s)KTjvv$pHL}q*e6ebG8-jk{udIoCuG2h>QGVZ8(GB&^L zVMIdw_hUxxkR`ICDP8coqc>b$CRqhh1-gL%lCPR?>4eQw4+E_Q_)|*KVpr`IayGCV zbvfQ-?A9psi}bP0k0k`t9uUO=I$cE(u5#TR0c_2~`f+t(gcb2PJK+X+K@QbUsixn<1`F^L@sA0h5A?l*kfC_PWOXyUu?G}6a= z?Rd_>ASg~=iX+160RE;mFGyyeB#@gT@wjXh|NQIp2^;sc*fWVAB>xkM3rBIYB*<@> zZSaeLC(+dl43R&m{IOiyv5BNFBF37h0!Xjr=;)KQuXQLqPI$L^^?Ppl#-_c{u6?Lz z=<#N=iH%uH-&6U<3&R2HCA-wX6U*rWd$N?}v??oHuie=FiqMqjNdbZ%ZMqg=>S1XK z^d?ff;JncsZzrhT1OL(P8-bbH2i4o7{3C>sF@1#|mzg*VSAKC}4xE^{K+vY;ZGX1f zc0q#o)}(CoC6O2&X6OS3vSqDQpCu}m)AUUoXQCFYw{!aAm9n7d&o&6n(tHP|tKW$BL;!rg# zT>ZYcDt0T0Sx$~V!N4jb>!zAon6~QUdj?z%0cv)LOZo?W4IK*|UL%4&ySXOkrrNcz zEgJPGzMIqUyeQRMh3I++IOBK;@;`|IO5zU8rr=jno8}~Ho6Z4BVWAIlHX~<85A|$D zMd!1z6=8={`LVDRJErZ|U-{LBcz=cxHch`zKXMO~aakH0;JA6A6-IgEr%u(S&Vh?` z=X*{ix2K?{dy_ZjZ0EX?tVN(;Y8KLn6{9-R&52@jdJqr48>2Mn(sFtE>5BB)aE;X| zn|UMb15)iTTmxgAd9PnGXX&w2-xvWuRJ?uTpfh(<0`snz*P@L88TLZL}$c))F+ z2sABBj4Gh7QW=}AtILclqFr8$Tu+uDuPTm%ySM-7!*geubSb_apfyKb+DguF%E#q% zxlHr}*GjlFBd6j|TZj>YxwmZ}(|f;5Ko42rqJ9Q!>CE2xbpNPQl8{+;q4X-K>Mz~D z^PNbW--XC?yO_CeYJ?6<%lw(Q;Um*ZlRuRmf=;DzQ75+v5PAQ>rEYyi@O_iv$FZs~=wP%_w(k0n_=K5lK24(QAPtw@GfzehRVmiC_>6@g<%-jv0ZG<4*5gk5c>=3k_-@P-hhA1sk=BW45u-RfDFZ@=_Wmo0T=499PWIg=|+~|YN zUMVV)#g*^2R3w@;V*iw4V>sRX4MY6O12VXtTwe8aWfrM_KF;0F!}Z(XjEm^TJ#P

-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 RA5#DT002ovPDHLkV1g=u8Ych% literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/square/16x16.png b/marketing/AppIcons/square/16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..18e058d07c3a1941a9093dd87a29e75dc22d88d8 GIT binary patch literal 840 zcmV-O1GoH%P)KhRQB%Pb#V(G+WR9bA(V27hIju9J zm5}>z_Kp3mZ-3ufTln0(rjpJ$04pyXO{Xpu=hoH}f_>{0=8xiw-lp+*n2O{A1I^vIx^}n(rJF<(Q-oq` zd^Hpm{ULsxY9kkk(HZs=%A~M`>rf9onZAu(?9Ww18Z|ymD>TDTRUwCO^b>w%i=~t$ z{Hx%vJ(SF{N2+I*gm zpI4bqS?E$LdmQ3{0KMk1zuBy1E*oHQ%3^nDn2cy1>%EEYF-eeMrODEAf|-RlnwaFu z_eX**_s*^Tq;V_2{hs4kRo6vefywr( zIh)2WDSFTyW<0q@A}`Jh^F%`{vo~TylHa-8li|+pduEOqh?sH!TXZaLXzTjohQ09Lp*%C9Kdt^VV6cr(B!OuvZ(?C>3NE) z8}yyLfZldaibml!ffDUwP7|h2)`n3I;A!zZxE8A=ZM9=XEE?7Wq?&VVg`y(VN5N4g zv-dmiH6q1iR>(x~c-bf_7e_W7dA^rx&X5n-Y*_`iC2d|NO2x4kL30JC9DV~MNkJLO S#!24*0000; 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 z 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 literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/square/32x32.png b/marketing/AppIcons/square/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..6d96e77bb13119a9b7efe812a4a4c52eeb81e21d GIT binary patch literal 2057 zcmV+k2=@1hP)@~dXRqX)Om-Zi-@;Lv?iw1jt=r z0dUU7!DNYtdVsy#$hfWJSFbC$(0>DuZr_NnKEeqC_9iD$IenVci^^5Cg?%zmec|YX zH!9@}L}7oBfcTY7Q|okVkJ_6i>2QdQbh|fhz&dgSW_}JPS*bUXtaI&`YYaIz69pd&{g_eV?FH$plB24-p>dgv)f)jtD{}Ya4iVqzl7k6Dn;sFbTZexr7}XsBJ}o z#@HL)yd5)Sp?zi|@QM0z#4h(?Db|WJPaUc{V-rOpLK%@<8l1qD;VFE2d8|RW zi05>pL)2$wVydE7!-e+Jna`n{$omOQ_K#rH=tZ%m3x;Fi>gF9d^TdI>>b>NI9UTTj z2HBE~s7b`se5EExFw z=XnzXzIEaK0Eo-XXEVX5VVa zkC3vHSBg0MVHP^;yMVczEg>CC;g{b`;*BfgSX{pJ1lt9GP9}z&5Jt8>hjm-JvGr;{ z){YIKO}FsIp%`AjG=*c=3W$cQ;a8V?2LMTteK`-mIp<-)Sc6C_Dfbnm;s)ZThPfr0 zgxfFrTj~F zbQyXT)`Mb83h%f-#7iv`Xy@I*bqr{-NSLeQsL~=Je*AS6{i7u&ky$vY1?(>tk-WT! zkH-1bN{CPf#ReN)vf)tc7M``lJn#3NLpTwE9rs}|{`G+i2)D&hF>MqS14otb!+?bi z{`=hTA>X}j8Guy9R7}Coc4;`SIXKB2{_SlpUYz_lVx!k#Q4?9y-yK5_D_f*&BN~cQ zTk&omQH!CPjx$=x#HBtu9j{{DEzpIT&-(&B`Gr973euQnBI8#WFSW|~?0}zcN!;;i zX7OX66Jgz`LS87jd$VT*Ph{J#|(Vq&QG(NkqNF@ zQy8ieuD4ClxQI&O@rR;VavYRhUZZ32z`mwyB9V{KrX?sHt;kI0(3_vYs9@Nu00000NkvXXu0mjftJBv! literal 0 HcmV?d00001 diff --git a/marketing/AppIcons/square/512x512.png b/marketing/AppIcons/square/512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..9937515b8a9adc77c945677b525404aded9ec6ab GIT binary patch literal 51236 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 rVdKW(lNUY6BVTTj \ No newline at end of file diff --git a/proxy/.gitignore b/proxy/.gitignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/proxy/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/proxy/app.js b/proxy/app.js new file mode 100644 index 0000000..dec267e --- /dev/null +++ b/proxy/app.js @@ -0,0 +1,15 @@ +// Listen on a specific port via the PORT environment variable +var port = process.env.PORT || 8080; + +var cors_proxy = require('cors-anywhere'); +cors_proxy.createServer({ + httpsOptions: { + key: "-----BEGIN RSA PRIVATE KEY-----\n{INSERT KEY HERE}\n-----END RSA PRIVATE KEY-----", + cert: "-----BEGIN CERTIFICATE-----\n{INSERT CERT (PUBLIC KEY) HERE}\n-----END CERTIFICATE-----" + }, + originWhitelist: [], //Insert expected location of web build: ie. "https://your-flokk-app.com", "http://localhost", etc. Otherwise, leave blank for no whitelisting + requireHeader: ['origin', 'x-requested-with'], + removeHeaders: ['cookie', 'cookie2'] +}).listen(port, function () { + console.log("Running CORS Anywhere on port " + port); +}); \ No newline at end of file diff --git a/proxy/package-lock.json b/proxy/package-lock.json new file mode 100644 index 0000000..ebf65a9 --- /dev/null +++ b/proxy/package-lock.json @@ -0,0 +1,41 @@ +{ + "name": "proxy", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "cors-anywhere": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/cors-anywhere/-/cors-anywhere-0.4.3.tgz", + "integrity": "sha512-x+pmjGZsoWrPMPbHdga8yVYYys0aaDLezP+V3uOX3GLqWlCMRmcFyXqrdmi/DP5SN6f5mxtUtAmzHO4u3DohSg==", + "requires": { + "http-proxy": "1.11.1", + "proxy-from-env": "0.0.1" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=" + }, + "http-proxy": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.11.1.tgz", + "integrity": "sha1-cd9VdX6ALVjqgQ3yJEAZ3aBa6F0=", + "requires": { + "eventemitter3": "1.x.x", + "requires-port": "0.x.x" + } + }, + "proxy-from-env": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-0.0.1.tgz", + "integrity": "sha1-snxJRunm1dutt1mKZDXTAUxM/Uk=" + }, + "requires-port": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-0.0.1.tgz", + "integrity": "sha1-S0QUQR2d98hVmV3YmajHiilRwW0=" + } + } +} diff --git a/proxy/package.json b/proxy/package.json new file mode 100644 index 0000000..e60654b --- /dev/null +++ b/proxy/package.json @@ -0,0 +1,14 @@ +{ + "name": "proxy", + "version": "1.0.0", + "description": "", + "main": "app.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "cors-anywhere": "^0.4.3" + } +} diff --git a/sample_data.zip b/sample_data.zip new file mode 100644 index 0000000000000000000000000000000000000000..92b45f86bd3275efb3ca00daf34211818dd60072 GIT binary patch literal 36793 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 Iy!>1J2Q-|5V*mgE literal 0 HcmV?d00001 diff --git a/snap_package/.gitignore b/snap_package/.gitignore new file mode 100644 index 0000000..6bf337b --- /dev/null +++ b/snap_package/.gitignore @@ -0,0 +1,2 @@ +dist* +*.snap diff --git a/snap_package/build.sh b/snap_package/build.sh new file mode 100644 index 0000000..bbbc2f3 --- /dev/null +++ b/snap_package/build.sh @@ -0,0 +1,6 @@ +#!/bin/sh +mkdir -p dist +cp -R ../contacts_manager_flutter_src/build/linux/release/* dist +tar czf dist.tar.gz dist +snapcraft --use-lxd + diff --git a/snap_package/snap/gui/flokk-contacts.desktop b/snap_package/snap/gui/flokk-contacts.desktop new file mode 100644 index 0000000..16f1601 --- /dev/null +++ b/snap_package/snap/gui/flokk-contacts.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Flokk Contacts +Comment=Manage your contacts +Icon=${SNAP}/meta/gui/icon.png +Exec=flokk-contacts %U +Terminal=false +Type=Application +Categories=Office;ContactManagement; +Keywords=Contacts; +StartupNotify=false diff --git a/snap_package/snap/gui/icon.png b/snap_package/snap/gui/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..34ccffe57af3c1d9c16b5b9cca158357db83740d GIT binary patch literal 101083 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 literal 0 HcmV?d00001 diff --git a/snap_package/snap/snapcraft.yaml b/snap_package/snap/snapcraft.yaml new file mode 100644 index 0000000..5f82416 --- /dev/null +++ b/snap_package/snap/snapcraft.yaml @@ -0,0 +1,24 @@ +name: flokk-contacts +version: 0.9.0 +summary: Flokk Contacts +description: Manage Contacts +confinement: strict +base: core18 +grade: devel +parts: + snaptest: + plugin: dump + source: ./dist.tar.gz + +apps: + flokk-contacts: + command: flokk_contacts + extensions: [gnome-3-28] + plugs: + - x11 + - opengl + - network + - home + common-id: flokk-contacts + environment: + __EGL_VENDOR_LIBRARY_DIRS: $__EGL_VENDOR_LIBRARY_DIRS:$SNAP/gnome-platform/usr/share/glvnd/egl_vendor.d

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�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%0DlbNVFC#gkN4@s#(XgLBH8 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 literal 0 HcmV?d00001 diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..e75be2cf02053b5312a459d71510c1ce638dbda4 GIT binary patch literal 12059 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 literal 0 HcmV?d00001 diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..9bb69d8117466d6b07d1fc1f94d07a87f7396286 GIT binary patch literal 846 zcmV-U1F`&xP)4x2p|!rh@N^1=~03xh^Qc_#3;&CFiSHk9n5B$ab}LroXc(< z&2HF+&AzSut@W+7K4pxFd?I3WG96HY%emtG_F@ zXKX08JgOF5$hYCDp2U zHteIUD7BR`k)dZqeJ@NV_NvF#^-nTJ47|ZQA!xI=tA@BKGkWbN*Pl#d?LJ4782<%e zDMM9==@3PVQi?Yb#^}DNC${MGdFBRv&+|;LYh|As&@5)ZC|GiM=R~>kxs7|7IwBQ^ znJpbSbqSOfv~h>0Z@w^`bJ5Z(tC9W&5bt-tH!xO;aqqRu(&Hx-h4b?xr={)&EgbW&wiz~5aZ&(O}Moug zZW+LmIPOpRyc*3Dl@eV#(9DauSu&1fUOc~S>0tC!n$+AU&L1ptZs{Q-8!ddvz%qar z2>+~NG48WBc*)?MN8(|DxaVV=fOT&t@DugS(^b literal 0 HcmV?d00001 diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..eccaf7d88b602ba245894853c2a4f54495f817d1 GIT binary patch literal 24963 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 Ef>CTt4FCWD literal 0 HcmV?d00001 diff --git a/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/flokk_src/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png new file mode 100644 index 0000000000000000000000000000000000000000..2fdf4b2e3d848630eb65d9be988785a91b2d5e9f GIT binary patch literal 2177 zcmV-{2!8j8P)ua* zP_RSR0gSQNHooE8uD#yfv*$AX=BzJk?9$lnNN3ONoSFH*`Tp(W4C@_ zInGg2INL1S4i{Vp#m5EPi}ks;%eL9?ChGRx*l$4hV7L*xn<*R}{tT zsK{QUGs*gioOznYn&u{*H|QDpe*jp(L*p$zU2FcuuERsBT)8Qf(|~AN=(3uc0!Pzf z>AsT3fUBrWCZo-!g5#c+ww2z|?$^|ydOVxYdo-?wfh>)e6OqWH_ z`ouH1^kfrkGNcN3{yT(nR41x!3oR?FN#mPuUB^rB{{aCl1KUUX^L{|1z9>pibzu$I z-+msk(E^-*H0p}e;A_9h0mrAz6ip;8h{$D zf&akE(Bg3j%fjx~PchbZ9v?KmLYC|~lVN?Xw$ittkGCgUP}!J-vq6FGDqs_=eQBt* zVHjIph5ASx8|Zt7Y#cmnsl{45MPCs76zR2a{v0l$sckEn=kjB@2VoUS_%Z@-0+ z;S@d|Dxk9_59t-mrh`=hkREiIR0Km&)&*DXbOsfV~7Y7WPw7eEf2G+{TUJ3<3tVPtdVwgsml$aLBR@$WR%w z47`!7MNi%bl|H*M2)tU8!_M`@Tu`7f_Ift$z!+Jm8XNF5F$=*9b4f}v;~<|c;PYGe zU^628q``>A=ex@#~z0prnjQIywh%yJrNS-RztDH2+=}fRxBcK`(|2{iQRXg9nY2h+wciiC!a) zOnEH~+r*tsJ8^l>fhGIB%n3WI4fqYRB{QNXBW9_&WnCcQNuh|DEYEoYjdgxZOzY@Q z2jP7GHTVMD=}k(~wz%`U_+-z^kf(reT>H=i;xO}BOh!*u88{FR;;%hfre)42Cw`zT zg~Sdre~WY)=9TL}&oBa$Q#g630k1z@1)t(V&?Vk}&%QDu1S?3nP!J0n2>Uclwa*p-X1IX!GcH7=|Vt zScg$2G8buoc}7W&-o2~^wZ_tWfywLFwPXexqCW251!S{X*m8iC#c#(iAfHMh)i;i{ z;aVL0>T^8o_=?xIMOU*qrIaYngHilZ7^-DPu$9rNoM2O9$v1Cv+x2J}a<+}U!(()a z2WR@%=lBpw1?kf)l231%C-%c-U|OWSjflH29N_1s;2J-14j zDR8Ay4<;i(w#&TmWv=Hml;KshLlw%2U+z6Te?9*MT@(ZqQy!J#ih7Y+}+(B!k3=& zKIfcY-;Z2-XYXWXX3fk!vu52pVXDfqSWiix0ssIkc{wR{004wM1py#v$iunk_$~4P zww6$m001hZG44%Kk?&txzLmF9QUb6d&mjQdCtCm*c?LwjNRcn(w{t-MTmb=cQ2u-V z_a-xUati<;4v?3U(DVfEH$6!qpK{~8_Q(n)Stk#Z!vjbJ<`H+~Dat3@TPP$wh|GC6 zEILjt=~rYuSoj=NmtDj+C1o8rUd<$xndtt0IzYhp8xxlr8kQ08+XRxW``sa4rVBH}^k?6z%=6`~Wm{g_cKHjkhZ{WMg`VVN}^+D%0DlbNVFC#gkN4@s#(XgLBH8 z*GlxKTl-ifXZyR6W8Q(tdp>gfI}rtAG>vp<@9jRV%te1Vv3AJU)A6%&w>O8HY2($x z@n!=&KfcK!l=6RdD=&UsF;7s4f7cg!OJVsrvx}99P%PI^(lU~7azB7j-JZ0sfGE5b z45>9Jhs2+sVC@C1?8e&>86;opWx6ythYu@%`R%c*zbD4zEKRgu1DhptFIXGEY`2{6 zmOr9F5KvhJy*Qh-R0$kyT_5(l{>XpcKp`6N5?|1Ke|<8~G&yA#@x99GLmGeY>o{Yp ze)TC{o`S;+ozLAvn^-OG^gm7+9}AwkP{+1)aCW3BmT#D2^Y&M-l^(4d`wJeW&Nn7o z$El>5cg`*Kj$calwh~<0^G{X-3P!x4FV(53* zG%bkpu>@FPs;Bg3&I|Flea?CCrB9Nyd`TO!@g~VGDNAupF73TUef?nM{Th3eM{h_T zm*i^M4|P}>Tf@W9R(s#Sv@)*wiMdt19*T!m^4cv)OGNL|=z03u%qgbZ4xmFl)r;q;~D!^n~^KGBaTIZ#6o1 zP2*>2WxH96{oIvXh)QKl?T8)KUHH>spSWdX%-Vi@?vCd_7w^xC)F~|beBv`zy+Tsv zJ?XOwOn6jMREFD8$A@VlUbH0lL!L9NFPv*Oi;+A-rGq@G#c!{O(Bzz(4xA06|+i%FOm#LE(C8kZLf*{~Mba|c}G(YUjwj#S!e}=(zCUg-$ z@asGIC{ZME*^zyjx9qJ>;L|ZMO9@Yx<;DU9nVl(xi~YP^P~AfHtGdB(wMRXfn+SogGEP zzNzJOl=;8Hu<%_>iKh3zlrd?`g%Jew(k;7CxYiv{dCUiNH*epX`JSRG8?+_x0bXCH zdk-OABwiqdj@h&0x z&*?_<{*6ltQ=1mO#h8DiNqNkeuZFIoYLs=vIWf|MG2ZTm8O7wQ<(lP!P!6Lq%liIS zF_XLKUKm9-yL9tFOk{O=e5!0R%}D7WG`9Z3ufXECF!d96p#j!7%eR%q{5$>1orQhX zdS;21zj~Y3YYeZB`HOG!g>AEV0oZ@e)uBBYpz@!b0*H{vR-D2#Xo@=8^6R6ShP9K9 z8u@zx{o2Tss+j&y$t={PfA_Om%P)-mo@Z1`=3{AM3an8aj3PQ>V*wjj|y7?;^5oK zv@woggO}@W4X~?p58-;YCF!{hC3F<0{HwkUC*S3Cf-6{XJl6A@gIyU#-p|DhiB=sS z*FwLClc;qOTMC75Zm8ydVMF?tRD+*-4PBX6Dx(r_7+pTy)Jy#Le*>j>cT91p_m;xT z{^PnD?_@KvR(S^-3N-+ShCu+6+;%V4&)Pqor+4e~wrO4WKr*}SJ@3FY)GeLlru*jd zgj089+x_j%SW7$IU816$4o&sTS23(YehYCNiHvR>!+FG(05AtWVM<^I9r z^5AR(BdD?TPkMctHgWm1c>>{LY#e8SRQOJo{1bH+cIVuMVpG~~&CNXK(bWD_$7|QZ z`B7xx*%R6!GwWy#i&C0Jh^DAD)+nR3;vKyZqi!j z|L?&Lz?b4YiB4vXua)Nk5H$?Lgk$9z++D~vU!~Hgc7!dx@ zGVs$+Y@<)iu@B-Nbgutz`~4M$R~*j&(zMn;jSWBMIf_a6gXw*!!fP)z>VceyG^zi7 zZj?q`Z(z(rtj|)2nhmX0^ICG1#qg$(4ArmTKVqVQ3g}xsS@k+0lnF-z zj&3vOMq9pPXQo5T$-la<=>cyGKIW2G+K2u#Ju%q8waK=(Yr` zh8+vk-Rg9Un$wl?{3E{j2#xrxNCVfi+f7d_vUp(ayw8e5ZDd7cvhLbH){txxG>z9pbX(9>q^aqeE*T+E!NaG3BPH!zcd^9#%9A!<)*nGE^HcmX=MY5wWf z2!X=>oZb9;p&!;%*f2MH-LfoYUtGz2$5v0O42N=lRC-JFQ{G$<4bz$5bunBP#l^Nhw z)DRlwtxukCeR0#j;NsuDzXGABy!q-EEigSCLJU_mKKjakr*A2{UGtAYb07&gAT-s) z&<4tCAN~%&@%$sKifZ?N?^A(7Vu^Dv7*YP1ei$$jIAUoje;55A#m7+~z&}&%}g5CzhZX?- zKBOc8=LJ~u<;_C>@mLcxumSgEonh-}Sp2)E|6CP^G82Jq9z4R*e+BIIXS@?Y1m41!Cb!6^ZWK<0Gl#OMD*9cB;-^)f9=D+j<5z}u=2|DVen zf$%^6TtaJH$=J4H|C)7XdQgUxX>E~;lIyqS8gShf$|6(6U}5T`Gsyt^O}vCcVO~<_ zN&B0##n0o8($qR&%Sfq2X{8pe2CZWIG>eMNLl74;P}>TvAg;mUre*el#C7ihWr_7}X}` zhg{R|pQaXyD7R&`m_L5=1S8(2V2Xp9Z93>X0&|%tKQZAc@nWa0zN20_q22shU}dW@ zPV}7^SV0Ai#*r{447_mLE^(AHRzjJ5XZ59`obt==t8>j^?zQ|Erdl6azLNwg>gVjR zK0yk@YF%1gi1fx~aq&>U`2(KpnDeiq!tjs)&Vj>s-GPhR19mNeBqD}III({|1wlRr zUbewPi}dk8ENzvfDw7hU5g)l~D6~EJv)F?pKXOA2cBfM4GouH!{CQt_Q4~L=CNGkJ z=(a^_0z;r{y7yrSGa^mGMh5 z;g8Tqb5#2C8&XKTsmYy&3rdNF%FFOB)hAYN)uw~N@$*JbUt7w76j(n;es~fNalVb3 z)WsMmLoo$vzKW@UvP8Kg0GXqlN3~f&;o>2Xx4C|Y8+?A|-=DnEORp^0pieRsjqb|A zzHT?wAm{8bO4!3QV!ckZ|oY&3r1Zobj^vv%%^vEF*1Ya{rLv&)WB zt#CA6V7(xtXztkZWLY51eBa4y61WSw)hV^()J{|(7lzFz ze{N{7fl*16OLg%~Il(xxo%$slGk}F-c_$z>0ej%krn7792{T1XKtD#(T1R-glfwz= zhshy+o(re+R^hC-krbmZHX@OzAShW#f<$1GdMLNf9sND<-3nLBN!=v=mNWq48P@94fC$#ayTF&-n*lkBvTm`OAfFh|3@t2#fL> zl}G_%Z3G|(-{AQ?iy@tpi;HV1I`cDoVd?YpK_;iM8I-r47qq^yp~c&UQerhzzvuDf z9f-zV)0dOzj?Blxnrt$ELb|mbyPOr!%3pBiXu{pGdrZQ@^Fl_Ykyan25VEhMRaJvP zM#7w{xn!r4ei?Rj{k;2rxeukB*yBczE4^ehY|I`eYO_EaH~^XW?^&`pP6jq$HwW>t zy;u&a)^|2VD2#E(CU?br@S)D`Au4CL1U&szJ(-8ZH9=~VgCn1n=ugh=`5MzM`y!<_ zqLx|xM7hS{dUt}Y+-15_tF+nTPPpmOhrb64u~%2)5~o`b${BC#fhbiH%Ta7}++{%t zk{f-1bwHYx8kiuUSk@%;*cAqA52l;;_7r+%Y|D$a*3qeF6wG#}^ZlY8U5z%ehofL}E&@iywzd+E>-%cs--4wE*qN@U3|@r^VK)U6DlrXC6v)4~>5!2;p`q^PVt~*cvrYLs@PdSD zgyH7>4l*e+i57O^lFrEJ7kB;~@k;?(#0+MS@N-~4wE6uByD?zG8b@uMD#)`d2oDkG zNt6-UN>u(RixP3V{K$1x0@bcHl;-|yEUY9#PgGJN~kf8hsZ3pmKw^>)^2Z-k?kkYQ(_T^!5yrM1!NglHa!&Y!xTt zi_9SDXtmd^stsF3j#@0rZ#yM3!|&MEu)h1S%z?6O zFg^UfFPtwNPfn^VudiN=V=aGCr3#{>0eadeaqZbM5=$LAF|K?m5BN5BSpve~=~9gjKt+)7;5Xy| z^5ELtXjf47oEJrQ0rOQC-BCI%jBZE8$XOlCE77`$_g0b$_XorG+g)8s9NZ&Z(gF}N zffsD%!PRN;g!z#w2Gm%9{M=e zs4d(dqTHy$vf*6~9WM6Tgb<}nON&e@To@CX3cLVn5vpKTbfE6d-5PYh z=}!9ntK%0;)(9QT76otAr;9oof-&y^H56Vr0XC4~g)^!I^qzKRWGC(kZZ$+YM;$jN zY?>(gG-b(^9&w~PmQ6bQZC{6_U2O27N)fW;dy4Xtq7SU-|MHxmb)9D%k02miyp<7g z6?g5ZxoQkGH;T+mzz4N~eI2&OioRO+etZwL=|Kldb23fyBh#!dBn8{A_LOLq%M6zK z!EM7>_eh-QLOTVX-UAlSRcy@*ktTu5|1L}=3^dboHewfL&zAAz~9wFalVA);yfG!wPpmT(e;`i@NkTF?uMg^1{}jjHJpVQ zF(jZqfJI1rfjXEK132^rJ^9I=?aI;Nfr`HDL&CMrq>w6W(}qv#vTO!q0d`IiI$?4_ z5i_%ll#N6=4T;v|;E&f0O>g}-2oC-3Z1t`qb_5^$NFL($i{%Q63Igvu9NWvbE|E)O z3Wz0d4Dz=E;|kQktdIb3C*tfC*BU~AQqm1(?5ukopPzZAA+e^;Z%EOWO;q(q;GWN~ zjKEy;@GW`v>cosB9 zFty}yP^2RQEaAg_&r|K@gXP*PDy@Ml zTs6f&YGeNIYu~V2MXa&Ab7Gf%E~h@nC{Mi~AIF0=6NyrFBP+>h%z&uuR?;<3^h%;k zsQ0lXbEK396Q1FHl?Tnp$k3ewanl1i8+Hl{i&IXftQB>ae`%xVGpdCetd_<-*G)Dv zfeAJ9PGeRS)sqT1Nc9BbWEB~|T=8BoWNr~Q6L|2<{WRpv7qLttWXkW7_gpi=>Am`pJbISlA9!enk0aeYgOlgyF6ad zh6(zU;fZ^l72=Co|6Q9=@Efi=J(*UV;l?^AE+fpNQ%k2|V>zqREb~}{l{en$y2Q6h z11~&Xl;#HyXhAG97T<4{nk>*;;+NI=vx$k}5;D}2^O2tY4D{v3pLn=?h+@nglQReG z64UOC1t~rEMht6(t)Z8t4G{xWsr~a2Z2cL1fP{_j?+OV52B31SL0yY4=I@3yj)Pxo z-uAEU8ryvIm9xgB9?7N(vL-=4kHgiu%Q#2*ftSFak+zYZd!G@wPQlZZ9^FW*g&X#o z;4o3b0UATI?MCO!0QYnSgxO_)f=O_j+skJWL&Y@G8NKxD@3Xm0UY`?j!aW}JJarZU zQ}4^K?cTjalTs3;txwkSos>9@j_utGYH()cwtFFLH-+yJi~E7je?{2LddNjs&jeHb zm5G9FoaOXDJF)cVySJx5N~2?o?K7)!mCm$V@rUzO)+W_QW6KLltRr_x{69axav-O( z<};ss`|45eA@PAmD6hQKgDKUls7h1a8tXJG&!u1#69$u+S{q1g7X69P9BJQ^e=+-Q zSYci6m2eqJEV3&t$-30@LeN~DIci2$2)$+OLMJy9*_FFu-(oVgPW8b8!6WHQ= zX40*@)Z23JvKT$UbfI^0>A_q5pvub~?3W%{oyABs>#VK77p|-B6~eHIRY=LFnqpTb z6MyB7vF^@{)n8e$QD>N3HHST!e^$})9bsy#E^v7^j^8kELGl@5%@tQ^Rc)ReTkgOY zF~NAJei#@0@*CN1HvP}s%<421+4DD9GY2Y0b5ZeI8T29sB!1_E*(MhwBJ)>;o&v@a zX)cx_&c4D0x%CeVqYjnLqR&@1$cGclkjO@wA&rK*EE zNSHoK&N?8Rcv-4?#-`VlkR!}Mj?yNM?dKuGxt)`&#-UAhI$W8YCb$`$vC-QkPIuHJ zlb^RMzlLTCOZSSGbiz~2W69&m(>FKV+w(j7kB_pipWdRlkt0A?eBJIUmM@5wf>R+W zLUtOu(Me^7e6OiTfGIj=wyXlI1E=tkqI9TMO@L&b=jo0Gi9 zDn|8EflSd5;IGm9=eYpr=pG_WR?Ozq{Pbi@D@jwF7%1QU$Uvs}y4zos|0qk0s97mp z?ph!geVKK>18#;yJj?pPs$ml{y!)6x4O_#qCM&P6kLochHJG3x*TB@D&ol~6ioygV zWg{Pqy>CFGF3U>79#eFdopV?#acjX2z;#H5l?GUWBA~WELi#{yS^-)t&t_4bXouUz zDq&NAi%1VTE`91OmJ;80Qu zUUVB79pO%ueL~K;{Vbtq@CCM~<19qy0rN9zchKl!F2<;pEt!~0U#rKS_O(MJN#z(5 zbfzJB4op<$-k-8@oYiH6Z-Q|FOiLWBUDAp+4e`DrIt3?h2oCDsGqe_ z9En7KLr`X2WjAgwJ#UA5tWgV-)lL~ns=+Gp5Fd`8nnD?aU!i1Opv?b(sFA7$O@Dbu zyg;CqtQhk-Mn*ks*yGOr*s&?IkhOM|X!TWQ$;10&d@J$U-HWz{ooAlKT(}}G;MmL~ z+L2l1g27$$7m@I~3298xA7=~(X?4UDZa)=UfHV9h?-{ORHju$#>ACs-U4j)WDi&DH=U!I zIs7p~os?QiP4qRtK&kZd?@!A{RiWk*P?=&}gqrzp1U(6G>7XXP9wRnW2)fXc%_LM? zM*lGQniRLtWsiLJiRX6E)XDfKs);hdY8hs0PqOk6VF0geE8c@~D~FHqSI#WeDss@4 zQSWXV;U^C^od-M5gf|I$;cDaAl2?kmt%y2tjslbzA70$yS9Yp!7RWQ7<9+QpNe&UV1Kcni?ON8aJw?I06B=(Q8DSfZ(Z4_ zIo53D-xar5xV^VlMWcR9c^4KgK0<2}jzAWlzqaz{r61*2k8}xxudB_2%PQbtxtGS z)8_)H(g+v-jk`?FVtqfAH4|i6h-1xlOVq|i6@K63f!%g>!s!}p@S+59g7!KODBQd3 zQ$)7dz;Zy1V?tp`&NW8Rjeb%X((qU=q;|Gv9O6SGjiBWfU;t?tTzz=PH44yUD81dM zEAn19{rrYQUy_}7zb55r)|5M;2Zc{^A#Q(+?V#CvJxjoUbVdEO7ChR0a_<(yV_feM{SVQH7Q&KLVRn<;y z3Fz|veU9wnC_^9zt1U`TmR?J4UF;j&KMkNeaUE2MIlgH9>Cmcv&c?sO7IG3Js?j^* z8YCy~Z6l$Q0tnP+X8+iFLZ^qAXgOs&hHX=p9Oij85>vCjB?Dt9pa|Pd=HB)j2U>UH zy?Gh~#HaS>`eu`M-Tq`LB-$GgOxhf18gD9%ENvkPj7aPu2>=h@b2a)??nUnpICRqS z(Oq2{&OcuI<&qs*3eOpHhWp2psG2Ps5r;g+&!c@=K#31jd``#{CN>i_^Hc31U)F2g zg|0gnB!$3_!cPTU1xgorovZNz-|$(1I&@lhU1ckaZyWC3i4KEZ)gHEq zm;>GpPH^pwo6xi#;7pYYb}(Wv!WDwO3S>7>~bt_#UmWgU*Id#e5XD0jn~InRQJXZ`in@{A@}m2upn3zef5 zr#cYgM<1Pv*MrH$J7OOGmMnLcfw6p1gJ4y$HYK8Nd>%ktA}L|*!7=9m`F5_itYvIR z-)`BN^oX5w4hT1<=`nE&$JBI8z8t|fzeTXxnYZY3>ozPl<{_mF`Qx3F-3=B=FJ_|Q z+p|c8ukTLy&?U}OK4{fi4;6rN!ylN)@pyr`_^KB@bWRf|p*gigluY!V>`v|;LJlHL z(cK`n2zqU8$8Illeg!DA0NCQfn2@4FX?~5M_k#?LppJLVpL#0$)x9j3Op$Kbx;Xrk z?AYO^d>BU?7}C>&Eu5!4D!GPAo0WQHokNYJ1%$as_}>~v8(=&W%HFv{hE=4qkm28b^kYQ zNp}e3_g3j{L&>MExNQP?O->h65Txly(j#a0>=6jjjKA&|4GJm6rN&=g@_yp0U!zI^ z58@tr8A_1zr3RxWbJmUrQ&&r~J`A~avrsvf#0D~_Yn}Ki@T?>1)8g~|5p$*w9X-vk z%<914Y_N3(`dI86E?HXY+7r5=Sl_D)eQgxJPIc{XRmxi}kL^Xb9ZbEbfA-B@hds)L z@-;JM1VsB1WHDd}GScRf2zBgG?`@7f;r`j;^5L&~cYc3}rE@HxF%O7*jzaD$UY*BO z<`?JztKY_4y8*-Z8tI0@x3)bLz~Av5^R8!rRJf?#!CKJCPIM}zQQD>7wgg!8(it1A z^GTx3GLy%+>=wO$ISE$L?X+xfC^{blO1x+&fr++`kb|JdpEgmyA3wamVT$Ww6}rnn zsX?@&1#UmdqW9sSo~ot3l#eAW@nMjD+_T*>3WNC@(S3Pt(CFhpkAIA-#H3NrTkr^= zQ3P^*6Fp-AQ+l@2YU1zfZxzN8s)lc)lp5kJ+5aHq7A0bQ!TZ9MEQfPk2kMU0un2x- z-0&9JY-`W1D^q&=$G7hTg3t8GQW^74*Mq%5v9}l9$2XD)+??Ok!>r!;_nrcVmyGB! zQI)t}y7`lnDMR)hznbb4v{tjl?(^wacUrcLD8FVrFBc7#>)-rk*d7wW#M<^MhZk_; zH(13lZK4PLz8#LS_xUJ546k6K1yky#>T*l>jq5jl`;wAJ7E)0Kt@$_Y1!@dqFnFzU z(r;Q*yat3;%c&r1$$~@XiOy>FqXc#QMwUqTd4`Qb$9uH*7D~O@{m&GD-^{-J*a}Vr z65oKfn`l+rAjAd_0+&YJKMEvM4<1}4cE72#HXv88m5iNuU0;jRI1wn%!X5z%pv@7W zQU=@O%un_PguqxijNVqNsEE{1CW;1sd9E=yq|AoehP+eZB(3hc50%}nNiKPYWOj&I zEd|-D90?e+Vng;{xrq|SEsUHIkaynoCKeXsQo?i6is_f$`;PRv8cvS4IH4)ZAAR*n z)gFS4H!fRA$4V9m#tWohL1W62Zb^<8nkUBNon-_oq~C3RU2J7!MXB#MApMF7cU`~G zgEHHKJ$)lXVA`3B*{SVRGoQRZRfN>1v&cr{hhA*q_oTF5M9{$LuYOs3qLFemBrPv9Wm*m$b z4R8pJI9jWSqiDWy#LZ!}z2%4|TBAGk%_}aNq++@}*Q^Lm$#A=|mMpahWTe=`{(Q1C-QZEk`6}=Xag>7!3tg_-TOq06^&D z6q*mul>$D;qa`&$<#I-(=AQ85d-0Q3*iwV`EpnYfi;_R62_B_cE})68OCGY8xgP`- z0p1Sc1GKymViZ}orGdD(xkosyS~_Cov^msqIoq(`6A?wx=kbn1;-lKM-2WLwhL#!) zwtF{Mhw3EAw0qOZsA*Wauw(*OElkizpP zsLrq~)cT7ZUt_{*g9cj8b(fTW9>gL9aK%U_q^CBvkU4YGVo_Ya8`hbb`rITK}NA7@EmG0=Yw$iXxdo;=Xu5Lo&w!oAgwEj78bQ zAD)r!m2_37X1fU~a0gAJ*x;s<`PtWU+p#pRdE&7r9tvJ>s@wkfrGcb5tq;K5j0N8L zyi!EXSCHtC1YJHDYp)Siod14v$KjIASsNA|9k+1cb9X!?cKqj{!6TvEq~3P}p%^Ls z(2lc6f3oz(7bH9>isnz?@#cPQ_@J%k@qmMPUa$C^TG7MA2{&qiBB>(}6ELF25hO9r zsYwmWh_v!B3=kkMCPr&L;BhJwfgcGI=Jklh#?GMNFo4B;7(U`}Jsf+!F}4sY7RZ#k zUk%pQXgs>KV!U_rX}sRbZVuZ^ZV2;Ajf-G6!XT=_cy{KYgS`s#O78n0#dN_pG7v6) zLf0Cc{uVG`t4qd-ILx=Bv4vh{g|7L&Ay~w8qqGd3TOjM)^YK~~Y8T$w<&3b_+@5RR zVlOv13S??0Y?@nZOSChb_F87Aej2brjF+n4$$u?6c+i+sw-iO&{e}ciOGRy;MT=y} z5xM;!)vHkFV~N;^FjQr3nx6X1x#%b`^x_F_^hi97^gYRw*WCn;ZMB}ohL`%h16r?puSpqhi>1<5j^qe{*6!}qxKT*~Pje9T3foE(1+1WF zAQ#3u*4gM;gaa$UN|431jSnq_=}EKc?1^={WbA;{RQqgSuL!|2j!X8G5L48I;iy=e zFJv?3U+IlgVw>b#hnM1hYtW~z(u$?e_E1}e*!W2DtG^LW@W)Z`1ytRHi~oXzvW&96 zVk$zKasy4Umn%(n>xm#O;m*vOz{Bt z*fqZ-%P2M-{ru;yDB=#O)20y4V)MVgBZl6u;(cBd-KM`~e*4Nh|nNi=i*e09JT-RoK_ZlIc!s zx1AjZztsAedmNdFrD!qG;pawghrJ#$*R%PoUq=u=w*-W{SyUN@x4wlqEq>eEBWH78 z-Kw&Q+g_)+#lz&(!GxVBGEY{N7w|4$Q-pSUS=dQDN8H0Ma++Vs=mXXYx$fTLvBMH^ zV3!laW;df=p-SI#i5N{cPEoJNmhRZG(46OrFd>WIc^FY*Y`)TPjNzGCVdk$VPZh;t z*75?{|BRC%*=o!Lpz0=m8D8{G_OI3a(I3JHOdd|To3FMg-|Oi}x&k=ICR^fvMNH@k zGE}~Ee%^crLv=dZl$fm>_6_73CsuwV5=-n*XNih9I6_#L>Q=|RWU$!~2+lI-ycw|U zs5D(r=Ua#p;9N1f0nblXeXxp494+{;ul{E88TJOVi6K`F7URiXx<&t4lE{<9*~W=7 z)W1cXGDH{fLZ*nTiY0}n5ge6|(#>3`Wqm~giYVcRjWyFOi;)!vm*!?k9WAhqu z^b>cD+&FkL+k-TQ)oT2eeH#pM@aenn203da-n0v5EH@rU@{c8%HMLf~Eb`;ymzKF5 z!%2U;hg`odi%X%$U9?4C@JxmRB37i5$z+}^Y;vyl4KX)ORF-Zhb3j%fZwzsoZ|$m_ zJgP~{7PL|(aJ#~TP1#cj3%sSq&xup`ls7VX$lGV1pPk?=UAtBNy2!1|55i8mt#mrX zWY_1#aJ{xaOyxGzMPnT$HOve(Zc3^SmRw0jIl6!GMCbNuWOKBZ?pgDr)wZ)R4w3z zLQEygwhvo4+?Qx`u(-R?i~c&7fa&i32SaOF;16tq$L{oWPjF0RRc-PBEd*sbTGlp# z4ibbZ&hiAg8RvCgbwC&j$efpIKbC%ZqbL)Vz1tFI#R^*N>mAmpXCw9kew^;^)JhN8 zhvL4o0;Tv(#tr?(=dX;nW)ESS`y8Wos*du!b?J*2rVcmzNKPR@;lpy(Okxt+LHt3z95C&kyS|Pvhwrz=$oPFe9FBW0L5U&q zA*D*JCfTS1LCL#U1tQ#jY9N#j9W&I zWM1b1>an=N5k?6-pxk?pOa9g59eLNdMXWaiaqhDcT4>Z9?6<1WA_6dG$LEnM2OKxx z2euq_v?ks=7EC^!gB1}UuW3`4Q@)W-+tBmm#$`n$tM8u0rs53&F!h%r6(BynMZJlL zMI1**y71jwhikE5)zBR!i+Vi5HOt1_mXx)y(2gbk8vZ5ja&bWW>XxuI&?E3hdYy;fY z$>tbq@IV%X0%>XBbCg!zC3aZU*jNs`2(Kah>0H z8Z3m~%%*j-+7XVAE-ah|^2=*ildDry`AScaz)wk1uK?sv_jhR#`{fZ`cO`Z+0eeA6 zQvIhD@P8*v})4&1Iwve~=KzfzKB^Equ+ zT1iztX}Q?e<^?98AqfX6JsOs3^Vzk&BrBN>MFJ&9Zcm8`uLUdrAUk6&&={{+cOY$p z?d%8mUZ9JrGiTgLRoJ6|-2IZ!ri4~2TqVh<{AKgqw8Q-|l6n*VT$DlihKfi3;k}_hpWo3{`T*}X9lAB)WqP5y8e^{!BDv+*t(f?u9I zUQxoR#Jpdp!sUZ9%K>=z+gVq(*IVocMueWxALU>hbkGqW>6|#^(j2~qSTBYvpqZWe z)r395?s}g#3Itxy<VOu^(QL1H^4EXjq)`0ST^Cx$E&=)}#E zYS*RT`_SQ@Gvjjun_rwf_Gc@yUs9DYGvOb9?Y?5g=YFQTlZA0o7+-qa&qe2bO{|0P zwSFEMf#lY#wSA2Z7Z0WrXQcLD>^=bS0v}k>iTCWC&ZgHdu@CectnS#LVt5n__mQpr*#tcmOt%;G^Xw-Ze{78$}L3(=OKmDbQvU?8z zX&Bm>aQ>q}vd80b^|7Alvm)cPk0c_zsepp}WaGx@sbATs_ue1v6_+hGsK~jm?!Pu% z#a_E^a1HY-h9V`zf1QW^m+bukfX87ZWo-9xM50qXQ!vEn>6hnFZ)?%f^&gn`n4OA; zZ3hLWjP?GDutrN4)I?W@*d$EVm80Zg+WN;F%WYX(SQlNn*jnV5(T{%>rdDjVsAM z|7K7Vpa=)}R_p+E`htr|J%pe$Nk^{21){iYQyZPesVy z;Z0T0Tu-lsW{Rj3w>ZRNwllSpAvx|~h4{aT9uKGhiZl{%16fgzNSRB#iufbw3i7bu zm!KosyE)y#kLa#6y$~+d<MvPx@kNrL+2YZ~FRQtwbK0P| zjBqJ2e|Gq`&^Z;isxATr&jMie0?qkqkj4RJ{gP7?)%UvRlS7dldUzNy2Q@9Jbc*{! zyQ9Mv-6Do$4$Tn+X$=p#YH_4!xG>-e-#OLstYS`d_cW^<-g55rZF{a1_}y?Sjh|+}i*NWcwT~_9|Z4FX38c=3_2qYl1`xDw3P^84%WdjT8Ew4*!p? zAOgj#3a!@Ei%Xkxz@Lm-8ErX>qhF0L2rY?K>1J4ZtogwYB6@|H`vlv0Lgh5C1E#