From 4a119968bc455a0e0edc7e80e0f936afeab1b0f2 Mon Sep 17 00:00:00 2001 From: Sebastian Palencsar Date: Fri, 26 Jun 2026 19:22:28 +0200 Subject: [PATCH] Release 0.10.7-bearhub.6 Complete M1 identity work, fix runtime URL regressions, repair the test suite, add CI, migrate packaging/AppImage branding to Bearhub, and document the Qt6/PySide6 migration plan. --- .github/ISSUE_TEMPLATE/bug_report.md | 15 +- ...ew-appimage-application-to-the-database.md | 2 +- .github/workflows/tests.yml | 35 ++ .gitignore | 1 + CHANGELOG.md | 32 ++ CONTRIBUTING.md | 4 +- MANIFEST.in | 3 +- README.md | 136 +++--- ROADMAP.md | 71 ++- bauh/desktop/bauh.desktop | 21 - bauh/desktop/bauh_tray.desktop | 21 - bauh/gems/appimage/__init__.py | 3 +- bauh/gems/appimage/controller.py | 11 +- bauh/gems/arch/__init__.py | 5 +- bauh/gems/arch/worker.py | 3 +- bauh/gems/web/controller.py | 7 +- bauh/view/qt/about.py | 2 +- bauh/view/qt/systray.py | 8 +- bauh/view/resources/img/logo.svg | 454 +++++++++++++++++- bauh/view/util/util.py | 10 +- bearhub/view/resources/img/logo.svg | 454 +++++++++++++++++- docs/qt6-migration.md | 251 ++++++++++ gfx/bearhub.png | Bin 0 -> 220214 bytes gfx/bearhub.svg | 453 +++++++++++++++++ linux_dist/appimage/AppImageBuilder.yml | 30 +- linux_dist/appimage/build.sh | 11 +- packaging/aur/README.md | 23 + packaging/aur/bearhub-git/PKGBUILD | 2 +- packaging/aur/bearhub/PKGBUILD | 10 +- pyproject.toml | 11 + setup.py | 12 +- tests/gems/arch/test_pacman.py | 12 +- tests/gems/arch/test_updates.py | 53 +- tests/gems/flatpak/test_flatpak.py | 6 +- tests/gems/web/test_controller.py | 36 +- 35 files changed, 1984 insertions(+), 224 deletions(-) create mode 100644 .github/workflows/tests.yml delete mode 100644 bauh/desktop/bauh.desktop delete mode 100644 bauh/desktop/bauh_tray.desktop create mode 100644 docs/qt6-migration.md create mode 100644 gfx/bearhub.png create mode 100644 gfx/bearhub.svg diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 9b56fc39..50491b33 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,28 +8,27 @@ assignees: '' --- **Before opening a new issue** -Install the **staging** branch and check if the unexpected behavior is happening there as well. -If you are on ArchLinux-based distro, you can install it through AUR (**bauh-staging**). Otherwise, you have -to clone the repository and install it with pip: +Install the latest `bearhub-git` package from AUR and check if the unexpected behavior is happening there as well. +Otherwise, install from source: ``` -git clone https://github.com/vinifmor/bauh.git -b staging --depth=1 -cd bauh +git clone https://github.com/spalencsar/bearhub.git --depth=1 +cd bearhub python3 -m venv venv venv/bin/pip install pip --upgrade venv/bin/pip install setuptools --upgrade venv/bin/pip install -r requirements.txt venv/bin/pip install . -venv/bin/bauh # or venv/bin/bauh-tray +venv/bin/bearhub # or venv/bin/bearhub-tray ``` **Describe the bug** A clear and concise description of what the bug is. **Software Environment** -bauh version: +Bearhub version: O.S: name and version Python version: Installation method: pip | distro package manager (e.g: pacman) -P.S: these instructions and the template must be respected, otherwise your issue will be closed. +P.S: these instructions and the template must be respected, otherwise your issue will be closed. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/suggest-a-new-appimage-application-to-the-database.md b/.github/ISSUE_TEMPLATE/suggest-a-new-appimage-application-to-the-database.md index 3b7afe03..3128af5e 100644 --- a/.github/ISSUE_TEMPLATE/suggest-a-new-appimage-application-to-the-database.md +++ b/.github/ISSUE_TEMPLATE/suggest-a-new-appimage-application-to-the-database.md @@ -1,6 +1,6 @@ --- name: Suggest a new AppImage application to the database -about: At the moment bauh's backend is only able to work with GitHub/GitLab projects. The project also needs to attach the AppImage file to its releases. +about: At the moment Bearhub's AppImage backend is only able to work with GitHub/GitLab projects. The project also needs to attach the AppImage file to its releases. title: "[New AppImage] application_name" labels: appimage assignees: '' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..4a52f5fe --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,35 @@ +name: Tests + +on: + pull_request: + push: + branches: + - main + workflow_dispatch: + +jobs: + unittest: + name: unittest (${{ matrix.python-version }}) + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.11", "3.12"] + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install -e . + + - name: Run unit tests + run: python -m unittest discover -s tests -p "test_*.py" -v \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2c17b501..0e8f80fd 100755 --- a/.gitignore +++ b/.gitignore @@ -16,5 +16,6 @@ linux_dist/appimage/*.zsync linux_dist/appimage/*.AppImage linux_dist/appimage/*.gz linux_dist/appimage/*.gz.* +linux_dist/appimage/bearhub-* linux_dist/appimage/bauh-* diff --git a/CHANGELOG.md b/CHANGELOG.md index feab457d..9413ccbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [0.10.7-bearhub.6] 2026-06-26 +### Fixed +- Arch metadata URLs no longer point to non-existent `bearhub-files` (restored `bauh-files` data sources) +- AppImage repository URL now points to `spalencsar/bearhub` instead of `vinifmor/bearhub` +- Unit test mocks corrected for namespace transition (`bauh.gems` paths) +- Web locale tests updated for `locale.getlocale()` behavior + +### Changed +- CLI/log output uses dynamic app name (`bearhub`) instead of hardcoded `[bauh]` +- Tray icon theme lookup prefers `bearhub_tray_*` with legacy `bauh_tray_*` fallback +- AppImage-installed desktop entries use `bearhub_appimage_*` prefix +- About dialog displays `Bearhub` (capitalized) +- AUR/makepkg.conf marker uses dynamic app name + +### Packaging +- Removed legacy `bauh/desktop/*` entries from distribution +- Desktop files and icons ship from `bearhub/desktop` and `bearhub/view/resources` +- AppImage builder migrated to Bearhub naming (`bearhub`, `bearhub-tray`, `BEARHUB_VERSION`) +- Added brand assets under `gfx/` +- AUR stable release tag: `0.10.7-bearhub.6` (`pkgrel=1`) +- AUR `bearhub-git` `pkgrel` bumped to `5` + +### Documentation +- README aligned with Bearhub runtime paths, commands, and maintainer workflows +- GitHub issue templates updated for Bearhub +- `CONTRIBUTING.md` locale paths refreshed +- Added `docs/qt6-migration.md` and roadmap milestone M6 (PySide6 decision) +- Maintainer docs: AppImage build and Qt6 migration references + +### CI +- Added GitHub Actions workflow for unit tests (Python 3.11 and 3.12) + ## [0.10.7-bearhub.5] 2026-05-31 ### Packaging - Desktop integration finalized under `bearhub/desktop/*` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06427c78..222035b0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,10 +23,8 @@ The way to go here is to ask yourself if the improvement would be useful for mor # Adding a new translation * To add a new translation, you will have to create a file in each directory listed below named as the first two letters of the language in the ISO format (e.g: for 'english' would be 'en'): -- `bauh/view/resources/locale` +- `bearhub/view/resources/locale` (or `bauh/view/resources/locale` during namespace migration) - `bauh/gems/appimage/resources/locale` - `bauh/gems/arch/resources/locale` - `bauh/gems/flatpak/resources/locale` -- `bauh/gems/snap/resources/locale` - `bauh/gems/web/resources/locale` -- `bauh/gems/debian/resources/locale` diff --git a/MANIFEST.in b/MANIFEST.in index 60509bf6..3496185e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,5 @@ include LICENSE CHANGELOG.md README.md requirements.txt -recursive-include bauh/desktop * -recursive-exclude bauh/desktop *.orig +recursive-include gfx * recursive-include bearhub/desktop * recursive-exclude bearhub/desktop *.orig recursive-include bauh/view/resources * diff --git a/README.md b/README.md index a350f7ec..16835211 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ [![License](https://img.shields.io/github/license/spalencsar/bearhub?label=License)](https://github.com/spalencsar/bearhub/blob/main/LICENSE)

- Bearhub logo + Bearhub logo

Bearhub

@@ -10,7 +10,7 @@ The original project was created by Vinicius Moreira. This fork continues from that codebase under the original license and keeps the history and authorship intact. -Some sections still include historical `bauh` naming in technical paths or screenshots. Runtime commands and package names below follow Bearhub naming. +Legacy `bauh` config and cache directories are migrated automatically on first start when present. Screenshots may still show the original upstream UI. ## Status @@ -80,7 +80,7 @@ Key features 13. [bauh-files](#bauh_files) 14. [Code structure](#code) 15. [Roadmap](#roadmap) -16. [Contributing](https://github.com/vinifmor/bauh/blob/master/CONTRIBUTING.md) +16. [Contributing](CONTRIBUTING.md) 17. [Code of Conduct](CODE_OF_CONDUCT.md) 18. [Security Policy](SECURITY.md) 19. [Maintainer docs](#maintainer_docs) @@ -97,11 +97,11 @@ Key features - `qt5dxcb-plugin` (or equivalent): the package name may vary from distribution ##### Steps -- Download the .AppImage file attached with the latest release from https://github.com/vinifmor/bauh/releases +- Download the .AppImage file attached with the latest release from https://github.com/spalencsar/bearhub/releases (when available) - Generally the desktop environment allows you to double-click the downloaded file to execute it. If that's not your case, follow the steps below from a console: - - `chmod a+x bauh-${version}-x86_64.AppImage` (replace `${version}` by the respective downloaded version) - - `./bauh-${version}-x86_64.AppImage` -- If you want to integrate bauh to your desktop: click on bauh's settings menu ("sandwich") and then `Install bauh` + - `chmod a+x bearhub-${version}-x86_64.AppImage` (replace `${version}` by the respective downloaded version) + - `./bearhub-${version}-x86_64.AppImage` +- If you want to integrate Bearhub to your desktop: click on Bearhub's settings menu ("sandwich") and then `Install Bearhub`

@@ -174,7 +174,7 @@ rm -rf bearhub_env To create a shortcut for Bearhub on your desktop menu: -- Copy desktop files from `bauh/desktop` to `~/.local/share/applications` (or `/usr/share/applications` for **root**) +- Copy desktop files from `bearhub/desktop` to `~/.local/share/applications` (or `/usr/share/applications` for **root**) - Ensure `Exec` points to the Bearhub binary. e.g: `Exec=/usr/bin/bearhub` (or `bearhub_env/bin/bearhub`) - Ensure the icon `bearhub.svg` exists under `/usr/share/icons/hicolor/scalable/apps` @@ -202,6 +202,14 @@ Bearhub is currently distributed through source releases and AUR: #### Maintainer docs - Namespace migration notes: `NAMESPACE_MIGRATION.md` +- Qt6 migration plan: `docs/qt6-migration.md` +- Brand assets: `gfx/bearhub.svg`, `gfx/bearhub.png` (synced into `bearhub/view/resources/img/logo.svg` for runtime/packaging) +- AppImage build (from `linux_dist/appimage/`): + +```bash +export BEARHUB_VERSION=0.10.7-bearhub.6 # release tag to build +./build.sh +``` #### Supported types @@ -217,14 +225,14 @@ Bearhub is currently distributed through source releases and AUR: - `Install AppImage file`: allows to install an external AppImage file - `Upgrade file`: allows to upgrade a manually installed AppImage file - `Update database`: manually synchronize the AppImage database - - `Install bauh`: installs bauh if it is running as an AppImage + - `Install Bearhub`: installs Bearhub if it is running as an AppImage -- Installed applications are store at `~/.local/share/bauh/appimage/installed` (or `/usr/local/share/bauh/installed` for **root**) -- Desktop entries (menu shortcuts) of the installed applications are stored at `~/.local/share/applications` (or `/usr/share/applications` for **root**). Name pattern: `bauh_appimage_appname.desktop` +- Installed applications are store at `~/.local/share/bearhub/appimage/installed` (or `/usr/local/share/bearhub/installed` for **root**) +- Desktop entries (menu shortcuts) of the installed applications are stored at `~/.local/share/applications` (or `/usr/share/applications` for **root**). Name pattern: `bearhub_appimage_appname.desktop` - Symlinks are created at `~/.local/bin` (or `/usr/local/bin` for **root**). They have the same name of the application (if the name already exists, it will be created as 'app_name-appimage'. e.g: `rpcs3-appimage`) -- Downloaded database files are stored at `~/.cache/bauh/appimage` (or `/var/cache/bauh/appimage` for **root**) as **apps.db** and **releases.db** +- Downloaded database files are stored at `~/.cache/bearhub/appimage` (or `/var/cache/bearhub/appimage` for **root**) as **apps.db** and **releases.db** - Databases are updated during the initialization process if they are considered outdated -- The configuration file is located at `~/.config/bauh/appimage.yml` (or `/etc/bauh/appimage.yml` for **root**) and it allows the following customizations: +- The configuration file is located at `~/.config/bearhub/appimage.yml` (or `/etc/bearhub/appimage.yml` for **root**) and it allows the following customizations: ``` database: @@ -233,8 +241,8 @@ suggestions: expiration: 24 # defines the period (in hours) in which the suggestions stored in disc will be considered up to date. Use 0 if you always want to update them. Default: 24. ``` -- Applications with ignored updates are defined at `~/.config/bauh/appimage/updates_ignored.txt` (or `/etc/bauh/appimage/updates_ignored.txt` for **root**) -- Cached package suggestions: `~/.cache/bauh/web/suggestions.txt` (or `/var/cache/bauh/web/suggestions.yml` for **root**) +- Applications with ignored updates are defined at `~/.config/bearhub/appimage/updates_ignored.txt` (or `/etc/bearhub/appimage/updates_ignored.txt` for **root**) +- Cached package suggestions: `~/.cache/bearhub/web/suggestions.txt` (or `/var/cache/bearhub/web/suggestions.yml` for **root**) ##### Arch packages/AUR @@ -245,7 +253,7 @@ suggestions: - Automatically makes simple package compilation improvements (for AUR packages): a) if `MAKEFLAGS` is not set in `/etc/makepkg.conf`, - then a copy of `/etc/makepkg.conf` will be generated at `~/.config/bauh/arch/makepkg.conf` defining MAKEFLAGS to work with + then a copy of `/etc/makepkg.conf` will be generated at `~/.config/bearhub/arch/makepkg.conf` defining MAKEFLAGS to work with the number of your machine processors (`-j${nproc}`). b) same as previous, but related to `COMPRESSXZ` and `COMPRESSZST` definitions (if '--threads=0' is not defined) @@ -267,17 +275,17 @@ suggestions: - `Ignore reinstallation check`: it does not to check if a given AUR packages requires to be rebuilt - `Reinstall` (AUR only): rebuilds an installed package. -- If you have AUR added as a repository on you pacman configuration, make sure to disable bauh's support (through the settings described below) -- AUR package compilation may require additional installed packages to work properly. Some of them are defined on the field `optdepends` of the [PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bauh) - - for a **root** user the following additional applications must be installed: - - `useradd`: required to create a simple user named **bauh-aur** (since **makepkg** does not allow building packages as the **root** user) +- If you have AUR added as a repository on you pacman configuration, make sure to disable Bearhub's support (through the settings described below) +- AUR package compilation may require additional installed packages to work properly. Some of them are defined on the field `optdepends` of the [PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bearhub) + - for a **root** user the following additional applications must be installed: + - `useradd`: required to create a simple user named **bearhub-aur** (since **makepkg** does not allow building packages as the **root** user) - `runuser`: required to run commands as another user - **Repository packages currently do not support the following actions: Downgrade and History** - If some of your installed packages are not categorized, open a PullRequest to the **bauh-files** repository changing [categories.txt](https://github.com/vinifmor/bauh-files/blob/master/arch/categories.txt) -- During bauh initialization a full AUR normalized index is saved at `~/.cache/bauh/arch/aur/index.txt` -- Installed AUR packages have their PKGBUILD files cached at `~/.cache/bauh/arch/installed/$pkgname` -- Packages with ignored updates are defined at `~/.config/bauh/arch/updates_ignored.txt` -- The configuration file is located at `~/.config/bauh/arch.yml` and it allows the following customizations: +- During Bearhub initialization a full AUR normalized index is saved at `~/.cache/bearhub/arch/aur/index.txt` +- Installed AUR packages have their PKGBUILD files cached at `~/.cache/bearhub/arch/installed/$pkgname` +- Packages with ignored updates are defined at `~/.config/bearhub/arch/updates_ignored.txt` +- The configuration file is located at `~/.config/bearhub/arch.yml` and it allows the following customizations: ``` aur: true # allows to manage AUR packages. Default: true repositories: true # allows to manage packages from the configured repositories. Default: true @@ -290,7 +298,7 @@ mirrors_sort_limit: 5 # defines the maximum number of mirrors that will be used repositories_mthread_download: false # enable multi-threaded download for repository packages if aria2/axel is installed (otherwise pacman will download the packages). Default: false automatch_providers: true # if a possible provider for a given package dependency exactly matches its name, it will be chosen instead of asking for the user to decide (false). Default: true. edit_aur_pkgbuild: false # if the AUR PKGBUILD file should be displayed for edition before the make process. true (PKGBUILD will always be displayed for edition), false (PKGBUILD never will be displayed), null (a popup will ask if the user want to edit the PKGBUILD). Default: false. -aur_build_dir: null # defines a custom build directory for AUR packages (a null value will point to /tmp/bauh/arch (non-root user) or /tmp/bauh_root/arch (root user)). Default: null. +aur_build_dir: null # defines a custom build directory for AUR packages (a null value will point to /tmp/bearhub/arch (non-root user) or /tmp/bearhub_root/arch (root user)). Default: null. aur_remove_build_dir: true # it defines if a package's generated build directory should be removed after the operation is finished (installation, upgrading, ...). Options: true, false (default: true). aur_build_only_chosen : true # some AUR packages have a common file definition declaring several packages to be built. When this property is 'true' only the package the user select to install will be built (unless its name is different from those declared in the PKGBUILD base). With a 'null' value a popup asking if the user wants to build all of them will be displayed. 'false' will build and install all packages. Default: true. aur_idx_exp: 1 # It defines the period (in HOURS) for the AUR index stored in disc to be considered up to date during the initialization process. Use 0 so that it is always updated. Default: 1. (P.S: this index is always updated when a package is installed/upgraded) @@ -303,12 +311,12 @@ aur_rebuild_detector: true # it checks if packages built with old library versio prefer_repository_provider: true # when there is just one repository provider for a given a dependency and several from AUR, it will be automatically picked. suggestions_exp: 24 # it defines the period (in hours) in which the suggestions stored in disc will be considered up to date. Use 0 if you always want to update them. ``` -- Cached package suggestions: `~/.cache/bauh/arch/suggestions.txt` (or `/var/cache/bauh/arch/suggestions.yml` for **root**) +- Cached package suggestions: `~/.cache/bearhub/arch/suggestions.txt` (or `/var/cache/bearhub/arch/suggestions.yml` for **root**) ##### Flatpak -- Applications with ignored updates are defined at `~/.config/bauh/flatpak/updates_ignored.txt` -- The configuration file is located at `~/.config/bauh/flatpak.yml` and it allows the following customizations: +- Applications with ignored updates are defined at `~/.config/bearhub/flatpak/updates_ignored.txt` +- The configuration file is located at `~/.config/bearhub/flatpak.yml` and it allows the following customizations: ``` installation_level: null # defines a default installation level: "user" or "system". (null will display a popup asking the level) ``` @@ -339,13 +347,13 @@ defined at [suggestions.yml](https://raw.githubusercontent.com/vinifmor/bauh-fil - It relies on [NodeJS](https://nodejs.org/en/), [Electron](https://electronjs.org/) and [nativefier](https://github.com/jiahaog/nativefier) to do all the magic, but you do not need them installed on your system. An isolated installation environment -will be generated at `~/.local/share/bauh/web/env` (or `/usr/local/share/bauh/web/env` for **root**). +will be generated at `~/.local/share/bearhub/web/env` (or `/usr/local/share/bearhub/web/env` for **root**). - It supports DRM protected content through a custom Electron implementation provided by [castLabs](https://github.com/castlabs/electron-releases). nativefier handles the switch between the official Electron and the custom. - The isolated environment is created based on the settings defined in [environment.yml](https://raw.githubusercontent.com/vinifmor/bauh-files/master/web/env/v1/environment.yml) (downloaded during runtime). -- Some applications require Javascript fixes to properly work. If there is a known fix, bauh will download the file from [fix](https://github.com/vinifmor/bauh-files/tree/master/web/env/v2/fix) and -attach it to the generated app. The fix files are saved on the disk following the pattern `~/.local/share/bauh/web/fixes/electron_{branch}/{app_name}.js` (or `/usr/local/share/bauh/web/fixes/...` for **root**) -- The installed applications are located at `~/.local/share/bauh/installed` (or `/usr/local/share/bauh/web/installed` for **root**). +- Some applications require Javascript fixes to properly work. If there is a known fix, Bearhub will download the file from [fix](https://github.com/vinifmor/bauh-files/tree/master/web/env/v2/fix) and +attach it to the generated app. The fix files are saved on the disk following the pattern `~/.local/share/bearhub/web/fixes/electron_{branch}/{app_name}.js` (or `/usr/local/share/bearhub/web/fixes/...` for **root**) +- The installed applications are located at `~/.local/share/bearhub/installed` (or `/usr/local/share/bearhub/web/installed` for **root**). - A desktop entry / menu shortcut will be generated for the installed applications at `~/.local/share/applications` (or `/usr/share/applications` for **root**) - If the Tray Mode **Start Minimized** is defined during the installation setup, a desktop entry will be also generated at `~/.config/autostart` (or `/etc/xdg/autostart` for **root**) allowing the application to launch automatically after the system's boot attached to the tray. @@ -358,7 +366,7 @@ allowing the application to launch automatically after the system's boot attache - Extra actions - `Clean installation environment`: removes all the installation environment folders (it does not remove installed apps) -- The configuration file is located at `~/.config/bauh/web.yml` (or `/etc/bauh/web.yml` for **root**) and it allows the following customizations: +- The configuration file is located at `~/.config/bearhub/web.yml` (or `/etc/bearhub/web.yml` for **root**) and it allows the following customizations: ``` environment: @@ -370,14 +378,14 @@ environment: suggestions: cache_exp: 24 # defines the period (in HOURS) in which suggestions stored on the disk are considered up to date during the initialization process. Use 0 so that they are always updated. Default: 24. ``` -- Cached package suggestions: `~/.cache/bauh/web/suggestions.txt` (or `/var/cache/bauh/web/suggestions.yml` for **root**) +- Cached package suggestions: `~/.cache/bearhub/web/suggestions.txt` (or `/var/cache/bearhub/web/suggestions.yml` for **root**) #### General settings ##### Parameters -You can change some application settings via environment variables or arguments (type ```bauh --help``` to get more information). -- `--tray`: if bauh should be launched attaching itself to the system tray. +You can change some application settings via environment variables or arguments (type ```bearhub --help``` to get more information). +- `--tray`: if Bearhub should be launched attaching itself to the system tray. - `--settings`: it displays only the settings window. - `--reset`: it cleans all configurations and cached data stored in the HOME directory. - `--logs`: it enables logs (for debugging purposes). @@ -385,16 +393,16 @@ You can change some application settings via environment variables or arguments - `--suggestions`: it forces loading software suggestions after the initialization process. -##### Configuration file (**~/.config/bauh/config.yml**) +##### Configuration file (**~/.config/bearhub/config.yml**) ``` download: - icons: true # allows bauh to download the applications icons when they are not saved on the disk - multithreaded: true # allows bauh to use a multithreaded download client installed on the system to download applications source files faster + icons: true # allows Bearhub to download the applications icons when they are not saved on the disk + multithreaded: true # allows Bearhub to use a multithreaded download client installed on the system to download applications source files faster multithreaded_client: null # defines the multi-threaded download tool to be used. If null, the default installed tool will be used (priority: aria2 > axel). Possible tools/values: aria2, axel check_ssl: true # if the security certificate (SSL) should be checked before downloading files. -gems: null # defines the enabled applications types managed by bauh (a null value means "all available") -locale: null # defines a different translation for bauh (a null value will retrieve the system's default locale) +gems: null # defines the enabled applications types managed by Bearhub (a null value means "all available") +locale: null # defines a different translation for Bearhub (a null value will retrieve the system's default locale) store_root_password: true # if the root password should be asked only once memory_cache: data_expiration: 3600 # the interval in SECONDS that data cached in memory will live @@ -403,8 +411,8 @@ suggestions: by_type: 20 # the maximum number of application suggestions that must be retrieved per type enabled: true # if suggestions must be displayed when no application is installed system: - notifications: true # if system popup should be displayed for some events. e.g: when there are updates, bauh will display a system popup - single_dependency_checking: false # if bauh should check only once if for the available technologies on the system. + notifications: true # if system popup should be displayed for some events. e.g: when there are updates, Bearhub will display a system popup + single_dependency_checking: false # if Bearhub should check only once if for the available technologies on the system. ui: qt_style: fusion # defines the Qt style. A null value will map to 'fusion' as well. table: @@ -415,8 +423,8 @@ ui: hdpi: true # enables HDPI rendering improvements. Use 'false' to disable them if you think the interface looks strange auto_scale: false # activates Qt auto screen scale factor (QT_AUTO_SCREEN_SCALE_FACTOR). It fixes scaling issues for some desktop environments (like Gnome) scale_factor: 1.0 # defines the interface display scaling factor (Qt). Raise the value to raise the interface size. The settings window display this value as a percentage (e.g: 1.0 -> 100%). - theme: defines the path to the theme/stylesheet file with a .qss extension (e.g: /path/to/my/theme.qss). For themes provided by bauh, only a string key is needed (e.g: light). Default: light - system_theme: merges the system's theme/stylesheet with bauh's. Default: false. + theme: defines the path to the theme/stylesheet file with a .qss extension (e.g: /path/to/my/theme.qss). For themes provided by Bearhub, only a string key is needed (e.g: light). Default: light + system_theme: merges the system's theme/stylesheet with Bearhub's. Default: false. updates: check_interval: 5 # the updates checking interval in minutes ask_for_reboot: true # if a dialog asking for a system reboot should be displayed after a successful upgrade @@ -438,7 +446,7 @@ boot: ##### Forbidden packaging formats - System administrators and package managers of Linux distributions can disable the usage/management of supported packaging formats -by adding their ids to the file `/etc/bauh/gems.forbidden`. This will prevent their management code to be loaded. +by adding their ids to the file `/etc/bearhub/gems.forbidden`. This will prevent their management code to be loaded. - Example (one id per line): ``` arch @@ -459,52 +467,52 @@ appimage - The priority number is used to sort the retrieved suggestions - If Linux distributions want to provide their custom suggestions files: - - Create the file `/etc/bauh/suggestions.conf` + - Create the file `/etc/bearhub/suggestions.conf` - The content is basically a mapping for each gem to a url or local file (absolute path). - Example: ``` arch=https://mydomain.com/arch/suggestions.txt # remote file - appimage=/etc/bauh/appimage/suggestions.txt # local file (absolute path) + appimage=/etc/bearhub/appimage/suggestions.txt # local file (absolute path) # snap = my mapping # comments with a '#' are allowed ``` - If a given gem name is omitted, its suggestions will be downloaded from the default location. #### Directory structure, caching and logs -- `~/.config/bauh` (or `/etc/bauh` for **root**): stores configuration files -- `~/.cache/bauh` (or `/var/cache/bauh` for **root**): stores data about your installed applications, databases, indexes, etc. Files are stored here to provide a faster initialization and data recovery. -- `/tmp/bauh@$USER` (e.g: `/tmp/bauh@root`): stores logging and temporary files (e.g: build dependencies) +- `~/.config/bearhub` (or `/etc/bearhub` for **root**): stores configuration files +- `~/.cache/bearhub` (or `/var/cache/bearhub` for **root**): stores data about your installed applications, databases, indexes, etc. Files are stored here to provide a faster initialization and data recovery. +- `/tmp/bearhub@$USER` (e.g: `/tmp/bearhub@root`): stores logging and temporary files (e.g: build dependencies) #### Custom themes -- Custom themes can be provided by adding their files at `~/.local/share/bauh/themes` (or `/usr/share/bauh/themes` for **root**). Sub-folders are allowed. +- Custom themes can be provided by adding their files at `~/.local/share/bearhub/themes` (or `/usr/share/bearhub/themes` for **root**). Sub-folders are allowed. - Themes are composed by 2 required and 1 optional files sharing the same name: - - `my_theme.qss`: file with the qss rules. Full example: [light.qss](https://github.com/vinifmor/bauh/blob/master/bauh/view/resources/style/light/light.qss) - - `my_theme.meta`: file defining the theme's data. Full example: [light.meta](https://github.com/vinifmor/bauh/blob/master/bauh/view/resources/style/light/light.meta) + - `my_theme.qss`: file with the qss rules. Full example: [light.qss](https://github.com/spalencsar/bearhub/blob/main/bearhub/view/resources/style/light/light.qss) + - `my_theme.meta`: file defining the theme's data. Full example: [light.meta](https://github.com/spalencsar/bearhub/blob/main/bearhub/view/resources/style/light/light.meta) - available fields: - `name`: name that will be displayed on the interface. It supports translations by adding additional `name` fields with brackets and the language code (e.g: `name[es]=Mi tema`) - `description`: theme's description that will be displayed on the interface. It supports translations like `name` (e.g: description[es] = Mi tema). - `version`: theme's version. It just works as information at the moment. (e.g: 1.0) - - `root_theme`: optional attribute that points to a theme that must be loaded before the theme. It supports the bauh's default theme keys (e.g: default, light, ...) or a file path (e.g: `/path/to/root/file.qss`). - - `abstract`: optional boolean attribute (true/false) that should only be used by themes that are not complete on their own and just work as a base (root) for other themes. Abstract themes are not displayed on the interface. Full example: [default.qss](https://github.com/vinifmor/bauh/blob/master/bauh/view/resources/style/default/default.qss) - - `my_theme.vars`: optional file defining `key=value` pairs of variables that will be available for the .qss file (can be referenced through the symbol **@**. e.g `@my_var`). Full example: [light.vars](https://github.com/vinifmor/bauh/blob/master/bauh/view/resources/style/light/light.vars) + - `root_theme`: optional attribute that points to a theme that must be loaded before the theme. It supports Bearhub's default theme keys (e.g: default, light, ...) or a file path (e.g: `/path/to/root/file.qss`). + - `abstract`: optional boolean attribute (true/false) that should only be used by themes that are not complete on their own and just work as a base (root) for other themes. Abstract themes are not displayed on the interface. Full example: [default.qss](https://github.com/spalencsar/bearhub/blob/main/bearhub/view/resources/style/default/default.qss) + - `my_theme.vars`: optional file defining `key=value` pairs of variables that will be available for the .qss file (can be referenced through the symbol **@**. e.g `@my_var`). Full example: [light.vars](https://github.com/spalencsar/bearhub/blob/main/bearhub/view/resources/style/light/light.vars) - common theme variables available: - `style_dir`: path to the .qss file directory. Example: @style_dir/my_icon.svg - - `images`: path to bauh's icons directory (gem icons are not available through this variable). Example: @images/logo.svg + - `images`: path to Bearhub's icons directory (gem icons are not available through this variable). Example: @images/logo.svg #### Tray icons Priority: - 1) Icon paths defined in **~/.config/bauh/config.yml** - 2) Icons from the system with the following names: `bauh_tray_default` and `bauh_tray_updates` + 1) Icon paths defined in **~/.config/bearhub/config.yml** + 2) Icons from the system with the following names: `bearhub_tray_default` and `bearhub_tray_updates` (legacy `bauh_tray_*` names are still accepted as fallback) 3) Own packaged icons #### CLI (Command Line Interface) -- For now it only allows checking for software updates (`bauh-cli updates`). -- To verify the available commands: `bauh-cli --help`. -- To list the command parameters: `bauh-cli [command] --help`. (e.g: `bauh-cli updates --help`) +- For now it only allows checking for software updates (`bearhub-cli updates`). +- To verify the available commands: `bearhub-cli --help`. +- To list the command parameters: `bearhub-cli [command] --help`. (e.g: `bearhub-cli updates --help`) #### Improving performance @@ -533,7 +541,7 @@ the `view` code is only attached to them (it does not know how the `gems` handle - Separate modules for each packaging technology - Memory and performance improvements - Improve user experience -- The current development changes can be checked [here](https://github.com/vinifmor/bauh/blob/staging/CHANGELOG.md) +- The current development changes can be checked in [CHANGELOG.md](CHANGELOG.md) #### Donations - You can support this project through [ko-fi](https://ko-fi.com/vinifmor). diff --git a/ROADMAP.md b/ROADMAP.md index 8d2674b8..a8881647 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -73,6 +73,72 @@ Definition of Done: - At least 2 maintainers can publish stable release without ad-hoc steps. - Changelog quality and release metadata are consistent. +### M6: Qt6 Migration (PyQt5 -> Qt6 bindings) (4-8 weeks) + +Context: +- PyQt5 remains viable for short-term maintenance, but Qt5 is in maintenance mode. +- Bearhub already carries Qt5-specific workarounds (for example `QT_QPA_PLATFORM=xcb` on Wayland). +- Qt6 improves Wayland, HiDPI, and long-term distro packaging support on Arch. + +Prerequisites: +- M3 namespace migration complete (or near complete) to avoid dual refactors. +- M2 stability baseline in place (thread teardown and uninstall paths understood). + +Scope: +- Choose Qt6 binding target: **PySide6** (preferred default: LGPL) or **PyQt6** (if GPL-only strategy is confirmed). +- Migrate `bauh/view/qt/*` and app entry modules to Qt6 APIs. +- Update themes/QSS validation and tray behavior on Wayland. +- Update packaging (AUR deps, AppImage Qt6 bundle, CI GUI smoke checks). + +Definition of Done: +- Bearhub starts on Qt6 without requiring `QT_QPA_PLATFORM=xcb` for normal desktop use. +- Tray mode, settings, package table, install/uninstall, and update flows pass smoke tests. +- AUR and documented install paths no longer require `python-pyqt5`. +- No PyQt5 imports left in runtime code paths. + +PR Plan (recommended order): + +1. **PR-6.1: Qt6 decision + spike** ✅ + - Decision recorded in `docs/qt6-migration.md`: **PySide6** (2026-06-26). + - Offscreen spike passed on Python 3.14 + PySide6 6.11.1. + - Exit criteria met for binding choice and local bootstrap feasibility. + +2. **PR-6.2: Dependency and packaging switch (dual-stack transition)** + - Add Qt6 dependency in `pyproject.toml` / AUR while keeping temporary PyQt5 fallback behind a feature flag if needed. + - Update CI to install Qt6 bindings and run import-level checks. + - Exit criteria: package installs with Qt6 deps on Arch clean environment. + +3. **PR-6.3: Core app shell migration** + - Migrate `bearhub/app_main.py`, `context.py`, `manage.py`, `tray.py`. + - Replace deprecated app attributes (`AA_EnableHighDpiScaling`, `AA_UseHighDpiPixmaps`) with Qt6 equivalents. + - Replace `exec_()` with `exec()` in shared dialog helpers first. + - Exit criteria: `bearhub --version`, `bearhub --help`, and offscreen window open succeed on Qt6. + +4. **PR-6.4: Threading and async UI migration** + - Migrate `view/qt/thread.py`, `prepare.py`, `systray.py`, `settings.py` signal/slot and `QThread` lifecycle usage. + - Re-test cancellation paths and worker teardown (M2 crash hotspots). + - Exit criteria: initialization panel + update check + tray refresh run without thread warnings. + +5. **PR-6.5: Main UI migration** + - Migrate `window.py`, `apps_table.py`, `components.py`, `dialog.py`, `info.py`, `history.py`, `screenshots.py`, `root.py`, `about.py`. + - Validate custom QSS themes (`light`, `darcula`, `knight`, `sublime`, `default`). + - Exit criteria: search/filter/install/uninstall/update UX smoke test passes. + +6. **PR-6.6: Desktop integration and Wayland validation** + - Test native Wayland session (remove hard dependency on forced `xcb` where possible). + - Validate tray icons (`bearhub_tray_*`) and desktop launcher behavior. + - Exit criteria: no deterministic crash in tray/manage on Wayland during 30-minute session test. + +7. **PR-6.7: Distribution hardening + PyQt5 removal** + - Migrate AppImage builder from pinned PyQt5 to Qt6 runtime layout. + - Remove PyQt5 from AUR/package metadata and code imports. + - Update README and maintainer docs with Qt6 runtime requirements. + - Exit criteria: one stable release published fully on Qt6; PyQt5 marked unsupported. + +Rollback strategy: +- Keep PR slices small and releasable; each PR must compile and pass tests. +- If a PR regresses Wayland/tray behavior, revert only that slice and keep dual-stack fallback until fixed. + ## Release Cadence - `bearhub-git`: continuous @@ -80,6 +146,7 @@ Definition of Done: ## Immediate Next Actions -1. Complete M1 gap scan (`bauh` strings still visible in UI and logs). +1. Close remaining M1 gaps (smoke-test checklist, `NAMESPACE_MIGRATION.md` refresh). 2. Build M2 issue list from current crash reports and prioritize top 3. -3. Start M3 technical design (import shim + package move order). +3. Continue M3 namespace migration (`gems/` move order + shim removal date). +4. Schedule M6 spike after M3 core move (do not start full Qt6 migration in parallel). diff --git a/bauh/desktop/bauh.desktop b/bauh/desktop/bauh.desktop deleted file mode 100644 index 372daec8..00000000 --- a/bauh/desktop/bauh.desktop +++ /dev/null @@ -1,21 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Applications (Bearhub) -Name[pt]=Aplicativos (Bearhub) -Name[es]=Aplicaciones (Bearhub) -Name[ca]=Aplicacions (Bearhub) -Name[it]=Applicazioni (Bearhub) -Name[de]=Anwendungen (Bearhub) -Name[ru]=Приложения (Bearhub) -Name[tr]=Paket Yönetici (Bearhub) -Categories=System; -Comment=Install and remove applications (AppImage, Arch, Flatpak, Web) -Comment[pt]=Instale e remova aplicativos (AppImage, Arch, Flatpak, Web) -Comment[es]=Instalar y eliminar aplicaciones (AppImage, Arch, Flatpak, Web) -Comment[it]=Installa e rimuovi applicazioni (AppImage, Arch, Flatpak, Web) -Comment[de]=Anwendungen installieren und entfernen (AppImage, Arch, Flatpak, Web) -Comment[ca]=Instal·lar i eliminar aplicacions (AppImage, Arch, Flatpak, Web) -Comment[ru]=Установка и удаление приложений (AppImage, Arch, Flatpak, Web) -Comment[tr]=Uygulama yükle/kaldır (AppImage, Arch, Flatpak, Web) -Exec=env QT_QPA_PLATFORM=xcb /usr/bin/bearhub -Icon=bearhub diff --git a/bauh/desktop/bauh_tray.desktop b/bauh/desktop/bauh_tray.desktop deleted file mode 100644 index 2d92ffef..00000000 --- a/bauh/desktop/bauh_tray.desktop +++ /dev/null @@ -1,21 +0,0 @@ -[Desktop Entry] -Type=Application -Name=Applications (Bearhub tray) -Name[pt]=Aplicativos (Bearhub tray) -Name[es]=Aplicaciones (Bearhub tray) -Name[ca]=Aplicacions (Bearhub tray) -Name[it]=Applicazioni (Bearhub tray) -Name[de]=Anwendungen (Bearhub tray) -Name[ru]=Приложения (Bearhub tray) -Name[tr]=Paket Yönetici (Bearhub tray) -Categories=System; -Comment=Install and remove applications (AppImage, Arch, Flatpak, Web) -Comment[pt]=Instale e remova aplicativos (AppImage, Arch, Flatpak, Web) -Comment[es]=Instalar y eliminar aplicaciones (AppImage, Arch, Flatpak, Web) -Comment[it]=Installa e rimuovi applicazioni (AppImage, Arch, Flatpak, Web) -Comment[de]=Anwendungen installieren und entfernen (AppImage, Arch, Flatpak, Web) -Comment[ca]=Instal·lar i eliminar aplicacions (AppImage, Arch, Flatpak, Web) -Comment[ru]=Установка и удаление приложений (AppImage, Arch, Flatpak, Web) -Comment[tr]=Uygulama yükle/kaldır (AppImage, Arch, Flatpak, Web) -Exec=env QT_QPA_PLATFORM=xcb /usr/bin/bearhub-tray -Icon=bearhub diff --git a/bauh/gems/appimage/__init__.py b/bauh/gems/appimage/__init__.py index 4812d5cc..cd6914c5 100644 --- a/bauh/gems/appimage/__init__.py +++ b/bauh/gems/appimage/__init__.py @@ -2,7 +2,6 @@ import os from pathlib import Path from typing import Optional -from bauh import __app_name__ from bauh.api.paths import CONFIG_DIR, TEMP_DIR, CACHE_DIR, BINARIES_DIR, SHARED_FILES_DIR from bauh.commons import resource @@ -13,7 +12,7 @@ CONFIG_FILE = f'{CONFIG_DIR}/appimage.yml' APPIMAGE_CONFIG_DIR = f'{CONFIG_DIR}/appimage' UPDATES_IGNORED_FILE = f'{APPIMAGE_CONFIG_DIR}/updates_ignored.txt' SYMLINKS_DIR = BINARIES_DIR -URL_COMPRESSED_DATABASES = f'https://raw.githubusercontent.com/vinifmor/{__app_name__}-files/master/appimage/dbs.tar.gz' +URL_COMPRESSED_DATABASES = 'https://raw.githubusercontent.com/vinifmor/bauh-files/master/appimage/dbs.tar.gz' APPIMAGE_CACHE_DIR = f'{CACHE_DIR}/appimage' DATABASE_APPS_FILE = f'{APPIMAGE_CACHE_DIR}/apps.db' DATABASE_RELEASES_FILE = f'{APPIMAGE_CACHE_DIR}/releases.db' diff --git a/bauh/gems/appimage/controller.py b/bauh/gems/appimage/controller.py index 123707e6..2cb56695 100644 --- a/bauh/gems/appimage/controller.py +++ b/bauh/gems/appimage/controller.py @@ -12,6 +12,7 @@ from typing import Set, Type, List, Tuple, Optional, Iterable, Generator from colorama import Fore +from bauh import __app_name__ from bauh.api.abstract.context import ApplicationContext from bauh.api.abstract.controller import SoftwareManager, SearchResult, UpgradeRequirements, UpgradeRequirement, \ TransactionResult, SoftwareAction, SettingsView, SettingsController @@ -721,7 +722,7 @@ class AppImageManager(SoftwareManager, SettingsController): return TransactionResult.fail() def _gen_desktop_entry_path(self, app: AppImage) -> str: - return f'{DESKTOP_ENTRIES_DIR}/bauh_appimage_{app.get_clean_name()}.desktop' + return f'{DESKTOP_ENTRIES_DIR}/{__app_name__}_appimage_{app.get_clean_name()}.desktop' def is_enabled(self) -> bool: return self.enabled @@ -855,14 +856,14 @@ class AppImageManager(SoftwareManager, SettingsController): for f in glob.glob(f'{APPIMAGE_SHARED_DIR}/*.db'): try: if logs: - print(f'[bauh][appimage] Deleting {f}') + print(f'[{__app_name__}][appimage] Deleting {f}') os.remove(f) if logs: - print(f'{Fore.YELLOW}[bauh][appimage] {f} deleted{Fore.RESET}') + print(f'{Fore.YELLOW}[{__app_name__}][appimage] {f} deleted{Fore.RESET}') except Exception: if logs: - print(f'{Fore.RED}[bauh][appimage] An exception has happened when deleting {f}{Fore.RESET}') + print(f'{Fore.RED}[{__app_name__}][appimage] An exception has happened when deleting {f}{Fore.RESET}') traceback.print_exc() def get_settings(self) -> Optional[Generator[SettingsView, None, None]]: @@ -1092,7 +1093,7 @@ class AppImageManager(SoftwareManager, SettingsController): @property def app_repository(self) -> str: if self._app_repository is None: - self._app_repository = f"https://github.com/vinifmor/{self.context.app_name}" + self._app_repository = 'https://github.com/spalencsar/bearhub' return self._app_repository diff --git a/bauh/gems/arch/__init__.py b/bauh/gems/arch/__init__.py index 048276d5..fc953859 100644 --- a/bauh/gems/arch/__init__.py +++ b/bauh/gems/arch/__init__.py @@ -1,15 +1,14 @@ import os from typing import Optional -from bauh import __app_name__ from bauh.api.paths import CONFIG_DIR, TEMP_DIR, CACHE_DIR, get_temp_dir from bauh.commons import resource ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) ARCH_CACHE_DIR = f'{CACHE_DIR}/arch' CATEGORIES_FILE_PATH = f'{ARCH_CACHE_DIR}/categories.txt' -URL_CATEGORIES_FILE = f'https://raw.githubusercontent.com/vinifmor/{__app_name__}-files/master/arch/categories.txt' -URL_GPG_SERVERS = f'https://raw.githubusercontent.com/vinifmor/{__app_name__}-files/master/arch/gpgservers.txt' +URL_CATEGORIES_FILE = 'https://raw.githubusercontent.com/vinifmor/bauh-files/master/arch/categories.txt' +URL_GPG_SERVERS = 'https://raw.githubusercontent.com/vinifmor/bauh-files/master/arch/gpgservers.txt' ARCH_CONFIG_DIR = f'{CONFIG_DIR}/arch' CUSTOM_MAKEPKG_FILE = f'{ARCH_CONFIG_DIR}/makepkg.conf' AUR_INDEX_FILE = f'{ARCH_CACHE_DIR}/aur/index.txt' diff --git a/bauh/gems/arch/worker.py b/bauh/gems/arch/worker.py index 002331ce..97eb525c 100644 --- a/bauh/gems/arch/worker.py +++ b/bauh/gems/arch/worker.py @@ -13,6 +13,7 @@ from typing import Optional import requests +from bauh import __app_name__ from bauh.api.abstract.context import ApplicationContext from bauh.api.abstract.handler import TaskManager from bauh.commons.boot import CreateConfigFile @@ -361,7 +362,7 @@ class ArchCompilationOptimizer(Thread): self.taskman.update_progress(self.task_id, 80, None) if custom_makepkg and optimizations: - generated_by = '# \n' + generated_by = f'# \n' custom_makepkg = custom_makepkg + '\n' + generated_by + '\n'.join(optimizations) + '\n' with open(CUSTOM_MAKEPKG_FILE, 'w+') as f: diff --git a/bauh/gems/web/controller.py b/bauh/gems/web/controller.py index 65467fcd..da486332 100644 --- a/bauh/gems/web/controller.py +++ b/bauh/gems/web/controller.py @@ -15,6 +15,7 @@ import yaml from colorama import Fore from requests import Response +from bauh import __app_name__ from bauh.api.abstract.context import ApplicationContext from bauh.api.abstract.controller import SoftwareManager, SearchResult, UpgradeRequirements, TransactionResult, \ SoftwareAction, SettingsView, SettingsController @@ -1149,15 +1150,15 @@ class WebApplicationManager(SoftwareManager, SettingsController): def clear_data(self, logs: bool = True): if os.path.exists(ENV_PATH): if logs: - print('[bauh][web] Deleting directory {}'.format(ENV_PATH)) + print('[{}][web] Deleting directory {}'.format(__app_name__, ENV_PATH)) try: shutil.rmtree(ENV_PATH) if logs: - print('{}[bauh][web] Directory {} deleted{}'.format(Fore.YELLOW, ENV_PATH, Fore.RESET)) + print('{}[{}][web] Directory {} deleted{}'.format(Fore.YELLOW, __app_name__, ENV_PATH, Fore.RESET)) except Exception: if logs: - print('{}[bauh][web] An exception has happened when deleting {}{}'.format(Fore.RED, ENV_PATH, + print('{}[{}][web] An exception has happened when deleting {}{}'.format(Fore.RED, __app_name__, ENV_PATH, Fore.RESET)) traceback.print_exc() diff --git a/bauh/view/qt/about.py b/bauh/view/qt/about.py index 882342d7..7a8ab56b 100644 --- a/bauh/view/qt/about.py +++ b/bauh/view/qt/about.py @@ -7,7 +7,7 @@ from bauh import __version__, ROOT_DIR from bauh.context import generate_i18n from bauh.view.util import resource -DISPLAY_NAME = 'bearhub' +DISPLAY_NAME = 'Bearhub' PROJECT_URL = 'https://github.com/spalencsar/bearhub' LICENSE_URL = 'https://raw.githubusercontent.com/spalencsar/bearhub/main/LICENSE' diff --git a/bauh/view/qt/systray.py b/bauh/view/qt/systray.py index 44228971..f17bcc91 100755 --- a/bauh/view/qt/systray.py +++ b/bauh/view/qt/systray.py @@ -136,7 +136,9 @@ class TrayIcon(QSystemTrayIcon): if config['ui']['tray']['default_icon']: self.icon_default = QIcon(config['ui']['tray']['default_icon']) else: - self.icon_default = QIcon.fromTheme('bauh_tray_default') + self.icon_default = QIcon.fromTheme(f'{__app_name__}_tray_default') + if self.icon_default.isNull(): + self.icon_default = QIcon.fromTheme('bauh_tray_default') if self.icon_default.isNull(): self.icon_default = load_resource_icon('img/logo.svg', 24) @@ -144,7 +146,9 @@ class TrayIcon(QSystemTrayIcon): if config['ui']['tray']['updates_icon']: self.icon_updates = QIcon(config['ui']['tray']['updates_icon']) else: - self.icon_updates = QIcon.fromTheme('bauh_tray_updates') + self.icon_updates = QIcon.fromTheme(f'{__app_name__}_tray_updates') + if self.icon_updates.isNull(): + self.icon_updates = QIcon.fromTheme('bauh_tray_updates') if self.icon_updates.isNull(): self.icon_updates = load_resource_icon('img/logo_update.svg', 24) diff --git a/bauh/view/resources/img/logo.svg b/bauh/view/resources/img/logo.svg index 8861d987..741db6b4 100644 --- a/bauh/view/resources/img/logo.svg +++ b/bauh/view/resources/img/logo.svg @@ -1 +1,453 @@ -AABCHGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAAEH2anVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo0OGE0ZDFjOC1kMTI5LTRlYzYtODNkMC1hYjI1MThjYjgyNzEAAAAB5Gp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAO5qdW1iAAAAQWp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuYWN0aW9ucy52MgAAAAAYYzJzaEaKZhe7M9yAy/sTn4Flp3sAAAClY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmxjMnBhLmNyZWF0ZWRtc29mdHdhcmVBZ2VudGhDYW52YSBBSXFkaWdpdGFsU291cmNlVHlwZXhTaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS9jb21wb3NpdGVXaXRoVHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAADFanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaAdbrYzK0427O1q2d17ihEQAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQEPZmxlbmd0aBlYKGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggnQG6l9o9w1SYHRT5MLz8fZYIdgoAEZbeNeUKLnNSW+VjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAAB3GNib3Knamluc3RhbmNlSUR4LHhtcDppaWQ6ZmYzOTdjNGMtYTRkMi00MzFmLTgyZDMtMmFkMmJhYzY3OGJhdGNsYWltX2dlbmVyYXRvcl9pbmZvo2RuYW1lZ2MycGEtcnNndmVyc2lvbmUwLjAuMHdvcmcuY29udGVudGF1dGguYzJwYV9yc2UwLjAuMGlzaWduYXR1cmV4TXNlbGYjanVtYmY9L2MycGEvdXJuOmMycGE6NDhhNGQxYzgtZDEyOS00ZWM2LTgzZDAtYWIyNTE4Y2I4MjcxL2MycGEuc2lnbmF0dXJlcmNyZWF0ZWRfYXNzZXJ0aW9u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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAgAq3r5wmRGbYQK0N/2P3+IBzgYvekAbU5mB87WnVLL+TABLJVqLa5qAQ2FKlbpuEY0xHdKJQWXpoKhSFp69XIbhyGiYC03NbyVET7/ljPCNhQdNKeWRajEYp6CBxF8tU+NL9u1RyvWmBegUKMLpzYGO2ob4mzoWDEGMsMKocR9eCUNMuxfH07H7EtuzdB1S2bX6lcgd7k4Hwq1VptZWLf/P1QhPHWVN1MO8gRmbZiapSb4gMQFb0ZeHVl7gFNQqPkPsbwhJ/o8JguDJv05oKCiXSblCFAU7/zK6KSrhaaNSQc51XHRxOW3eVCHCsXuNLy8b//4UzdjE/lhPD5socdFXO27Ee1b1LSwt+g/32wmBSgz3l2g+WY+roCSsoa3D27WyidX5t/b/zOdx9tbGlHbQZc0UCzHVkCREMGDlSdsMxmfl2EdLvF/U4f9qvno1I8qzwXovQP+tNLzUkrahGqoUckIFW7kqJXWhbIhLANhAady40ExgImmsjkIvXsrEzKctRvMmb3d5Ji6IRLf2xC3tcjxW+LCDcmW1ADxG7oNFoVhV6yoWFG+759FkszTNo78+ZoCSUAU19SvnMQUypnCFmnPoDgpG3SKtuHOCVJtMi4zr1Oe7DbsXvj1XYIIan3zxrJXvRo/9vU3eSs63EA6vrPseuwfCZDimvXYeCemGvg==Yes \ No newline at end of file + + + + AABCHGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAAEH2anVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo0OGE0ZDFjOC1kMTI5LTRlYzYtODNkMC1hYjI1MThjYjgyNzEAAAAB5Gp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAO5qdW1iAAAAQWp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuYWN0aW9ucy52MgAAAAAYYzJzaEaKZhe7M9yAy/sTn4Flp3sAAAClY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmxjMnBhLmNyZWF0ZWRtc29mdHdhcmVBZ2VudGhDYW52YSBBSXFkaWdpdGFsU291cmNlVHlwZXhTaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS9jb21wb3NpdGVXaXRoVHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAADFanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaAdbrYzK0427O1q2d17ihEQAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQEPZmxlbmd0aBlYKGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggnQG6l9o9w1SYHRT5MLz8fZYIdgoAEZbeNeUKLnNSW+VjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAAB3GNib3Knamluc3RhbmNlSUR4LHhtcDppaWQ6ZmYzOTdjNGMtYTRkMi00MzFmLTgyZDMtMmFkMmJhYzY3OGJhdGNsYWltX2dlbmVyYXRvcl9pbmZvo2RuYW1lZ2MycGEtcnNndmVyc2lvbmUwLjAuMHdvcmcuY29udGVudGF1dGguYzJwYV9yc2UwLjAuMGlzaWduYXR1cmV4TXNlbGYjanVtYmY9L2MycGEvdXJuOmMycGE6NDhhNGQxYzgtZDEyOS00ZWM2LTgzZDAtYWIyNTE4Y2I4MjcxL2MycGEuc2lnbmF0dXJlcmNyZWF0ZWRfYXNzZXJ0aW9u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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAgAq3r5wmRGbYQK0N/2P3+IBzgYvekAbU5mB87WnVLL+TABLJVqLa5qAQ2FKlbpuEY0xHdKJQWXpoKhSFp69XIbhyGiYC03NbyVET7/ljPCNhQdNKeWRajEYp6CBxF8tU+NL9u1RyvWmBegUKMLpzYGO2ob4mzoWDEGMsMKocR9eCUNMuxfH07H7EtuzdB1S2bX6lcgd7k4Hwq1VptZWLf/P1QhPHWVN1MO8gRmbZiapSb4gMQFb0ZeHVl7gFNQqPkPsbwhJ/o8JguDJv05oKCiXSblCFAU7/zK6KSrhaaNSQc51XHRxOW3eVCHCsXuNLy8b//4UzdjE/lhPD5socdFXO27Ee1b1LSwt+g/32wmBSgz3l2g+WY+roCSsoa3D27WyidX5t/b/zOdx9tbGlHbQZc0UCzHVkCREMGDlSdsMxmfl2EdLvF/U4f9qvno1I8qzwXovQP+tNLzUkrahGqoUckIFW7kqJXWhbIhLANhAady40ExgImmsjkIvXsrEzKctRvMmb3d5Ji6IRLf2xC3tcjxW+LCDcmW1ADxG7oNFoVhV6yoWFG+759FkszTNo78+ZoCSUAU19SvnMQUypnCFmnPoDgpG3SKtuHOCVJtMi4zr1Oe7DbsXvj1XYIIan3zxrJXvRo/9vU3eSs63EA6vrPseuwfCZDimvXYeCemGvg== + Yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bauh/view/util/util.py b/bauh/view/util/util.py index 42dbe685..1611d20e 100644 --- a/bauh/view/util/util.py +++ b/bauh/view/util/util.py @@ -64,20 +64,20 @@ def get_distro(): def clean_app_files(managers: List[SoftwareManager], logs: bool = True): if logs: - print('[bauh] Cleaning configuration and cache files') + print('[{}] Cleaning configuration and cache files'.format(__app_name__)) for path in (CACHE_DIR, CONFIG_DIR, TEMP_DIR): if logs: - print('[bauh] Deleting directory {}'.format(path)) + print('[{}] Deleting directory {}'.format(__app_name__, path)) if os.path.exists(path): try: shutil.rmtree(path) if logs: - print('{}[bauh] Directory {} deleted{}'.format(Fore.YELLOW, path, Fore.RESET)) + print('{}[{}] Directory {} deleted{}'.format(Fore.YELLOW, __app_name__, path, Fore.RESET)) except Exception: if logs: - print('{}[bauh] An exception has happened when deleting {}{}'.format(Fore.RED, path, Fore.RESET)) + print('{}[{}] An exception has happened when deleting {}{}'.format(Fore.RED, __app_name__, path, Fore.RESET)) traceback.print_exc() if managers: @@ -85,4 +85,4 @@ def clean_app_files(managers: List[SoftwareManager], logs: bool = True): m.clear_data() if logs: - print('[bauh] Cleaning finished') + print('[{}] Cleaning finished'.format(__app_name__)) diff --git a/bearhub/view/resources/img/logo.svg b/bearhub/view/resources/img/logo.svg index 8861d987..741db6b4 100644 --- a/bearhub/view/resources/img/logo.svg +++ b/bearhub/view/resources/img/logo.svg @@ -1 +1,453 @@ -AABCHGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAAEH2anVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo0OGE0ZDFjOC1kMTI5LTRlYzYtODNkMC1hYjI1MThjYjgyNzEAAAAB5Gp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAO5qdW1iAAAAQWp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuYWN0aW9ucy52MgAAAAAYYzJzaEaKZhe7M9yAy/sTn4Flp3sAAAClY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmxjMnBhLmNyZWF0ZWRtc29mdHdhcmVBZ2VudGhDYW52YSBBSXFkaWdpdGFsU291cmNlVHlwZXhTaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS9jb21wb3NpdGVXaXRoVHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAADFanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaAdbrYzK0427O1q2d17ihEQAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQEPZmxlbmd0aBlYKGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggnQG6l9o9w1SYHRT5MLz8fZYIdgoAEZbeNeUKLnNSW+VjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAAB3GNib3Knamluc3RhbmNlSUR4LHhtcDppaWQ6ZmYzOTdjNGMtYTRkMi00MzFmLTgyZDMtMmFkMmJhYzY3OGJhdGNsYWltX2dlbmVyYXRvcl9pbmZvo2RuYW1lZ2MycGEtcnNndmVyc2lvbmUwLjAuMHdvcmcuY29udGVudGF1dGguYzJwYV9yc2UwLjAuMGlzaWduYXR1cmV4TXNlbGYjanVtYmY9L2MycGEvdXJuOmMycGE6NDhhNGQxYzgtZDEyOS00ZWM2LTgzZDAtYWIyNTE4Y2I4MjcxL2MycGEuc2lnbmF0dXJlcmNyZWF0ZWRfYXNzZXJ0aW9u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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAgAq3r5wmRGbYQK0N/2P3+IBzgYvekAbU5mB87WnVLL+TABLJVqLa5qAQ2FKlbpuEY0xHdKJQWXpoKhSFp69XIbhyGiYC03NbyVET7/ljPCNhQdNKeWRajEYp6CBxF8tU+NL9u1RyvWmBegUKMLpzYGO2ob4mzoWDEGMsMKocR9eCUNMuxfH07H7EtuzdB1S2bX6lcgd7k4Hwq1VptZWLf/P1QhPHWVN1MO8gRmbZiapSb4gMQFb0ZeHVl7gFNQqPkPsbwhJ/o8JguDJv05oKCiXSblCFAU7/zK6KSrhaaNSQc51XHRxOW3eVCHCsXuNLy8b//4UzdjE/lhPD5socdFXO27Ee1b1LSwt+g/32wmBSgz3l2g+WY+roCSsoa3D27WyidX5t/b/zOdx9tbGlHbQZc0UCzHVkCREMGDlSdsMxmfl2EdLvF/U4f9qvno1I8qzwXovQP+tNLzUkrahGqoUckIFW7kqJXWhbIhLANhAady40ExgImmsjkIvXsrEzKctRvMmb3d5Ji6IRLf2xC3tcjxW+LCDcmW1ADxG7oNFoVhV6yoWFG+759FkszTNo78+ZoCSUAU19SvnMQUypnCFmnPoDgpG3SKtuHOCVJtMi4zr1Oe7DbsXvj1XYIIan3zxrJXvRo/9vU3eSs63EA6vrPseuwfCZDimvXYeCemGvg==Yes \ No newline at end of file + + + + AABCHGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAAEH2anVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo0OGE0ZDFjOC1kMTI5LTRlYzYtODNkMC1hYjI1MThjYjgyNzEAAAAB5Gp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAO5qdW1iAAAAQWp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuYWN0aW9ucy52MgAAAAAYYzJzaEaKZhe7M9yAy/sTn4Flp3sAAAClY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmxjMnBhLmNyZWF0ZWRtc29mdHdhcmVBZ2VudGhDYW52YSBBSXFkaWdpdGFsU291cmNlVHlwZXhTaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS9jb21wb3NpdGVXaXRoVHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAADFanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaAdbrYzK0427O1q2d17ihEQAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQEPZmxlbmd0aBlYKGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggnQG6l9o9w1SYHRT5MLz8fZYIdgoAEZbeNeUKLnNSW+VjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAAB3GNib3Knamluc3RhbmNlSUR4LHhtcDppaWQ6ZmYzOTdjNGMtYTRkMi00MzFmLTgyZDMtMmFkMmJhYzY3OGJhdGNsYWltX2dlbmVyYXRvcl9pbmZvo2RuYW1lZ2MycGEtcnNndmVyc2lvbmUwLjAuMHdvcmcuY29udGVudGF1dGguYzJwYV9yc2UwLjAuMGlzaWduYXR1cmV4TXNlbGYjanVtYmY9L2MycGEvdXJuOmMycGE6NDhhNGQxYzgtZDEyOS00ZWM2LTgzZDAtYWIyNTE4Y2I4MjcxL2MycGEuc2lnbmF0dXJlcmNyZWF0ZWRfYXNzZXJ0aW9u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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAgAq3r5wmRGbYQK0N/2P3+IBzgYvekAbU5mB87WnVLL+TABLJVqLa5qAQ2FKlbpuEY0xHdKJQWXpoKhSFp69XIbhyGiYC03NbyVET7/ljPCNhQdNKeWRajEYp6CBxF8tU+NL9u1RyvWmBegUKMLpzYGO2ob4mzoWDEGMsMKocR9eCUNMuxfH07H7EtuzdB1S2bX6lcgd7k4Hwq1VptZWLf/P1QhPHWVN1MO8gRmbZiapSb4gMQFb0ZeHVl7gFNQqPkPsbwhJ/o8JguDJv05oKCiXSblCFAU7/zK6KSrhaaNSQc51XHRxOW3eVCHCsXuNLy8b//4UzdjE/lhPD5socdFXO27Ee1b1LSwt+g/32wmBSgz3l2g+WY+roCSsoa3D27WyidX5t/b/zOdx9tbGlHbQZc0UCzHVkCREMGDlSdsMxmfl2EdLvF/U4f9qvno1I8qzwXovQP+tNLzUkrahGqoUckIFW7kqJXWhbIhLANhAady40ExgImmsjkIvXsrEzKctRvMmb3d5Ji6IRLf2xC3tcjxW+LCDcmW1ADxG7oNFoVhV6yoWFG+759FkszTNo78+ZoCSUAU19SvnMQUypnCFmnPoDgpG3SKtuHOCVJtMi4zr1Oe7DbsXvj1XYIIan3zxrJXvRo/9vU3eSs63EA6vrPseuwfCZDimvXYeCemGvg== + Yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/qt6-migration.md b/docs/qt6-migration.md new file mode 100644 index 00000000..71687bc1 --- /dev/null +++ b/docs/qt6-migration.md @@ -0,0 +1,251 @@ +# Qt6 Migration Guide (PR-6.1) + +This document defines the technical approach for migrating Bearhub from **PyQt5** to a **Qt6 Python binding**. + +Related roadmap milestone: `ROADMAP.md` → **M6: Qt6 Migration**. + +## Goals + +- Keep Bearhub feature parity during migration (no UI redesign). +- Improve long-term desktop compatibility (Wayland, HiDPI, Arch packaging). +- Remove PyQt5-only workarounds where Qt6 provides stable behavior. +- Land migration in small, reversible PR slices. + +## Non-Goals (for M6) + +- Rewriting the UI toolkit (GTK, Electron, web UI). +- Visual redesign or UX overhaul. +- Parallel feature development inside migration PRs. + +## Prerequisites + +- **M3** namespace migration is complete enough that UI modules live under stable `bearhub.*` import paths. +- **M2** thread/uninstall crash paths are documented and reproducible. +- Unit test CI is green (`tests/`, GitHub workflow `tests.yml`). + +## Current Qt Footprint (inventory) + +Runtime PyQt5 usage is concentrated in: + +| Area | Files | Notes | +|---|---|---| +| App entry | `bearhub/app_main.py`, `bearhub/context.py`, `bearhub/manage.py`, `bearhub/tray.py` | app attributes, screen scale env | +| Main window/UI | `bauh/view/qt/window.py`, `apps_table.py`, `components.py`, `dialog.py` | largest migration surface | +| Async/threading | `bauh/view/qt/thread.py`, `prepare.py`, `systray.py`, `settings.py`, `root.py` | `QThread`, `pyqtSignal` | +| Utility/UI helpers | `bauh/view/qt/qt_utils.py`, `about.py`, `info.py`, `history.py`, `screenshots.py` | includes `QDesktopWidget` | +| Settings integration | `bauh/view/core/settings.py` | `QStyleFactory` | +| Misc | `bauh/view/util/util.py` | icon helpers | + +Known Qt5-specific patterns in code today: + +- `app.exec_()` and dialog `exec_()` calls +- `pyqtSignal` declarations +- `Qt.AA_EnableHighDpiScaling` / `Qt.AA_UseHighDpiPixmaps` +- `QDesktopWidget` screen geometry logic (`qt_utils.py`) +- Forced Wayland workaround in desktop files: `QT_QPA_PLATFORM=xcb` + +Packaging/runtime dependencies today: + +- Python package: `pyqt5>=5.12` (`requirements.txt`, `pyproject.toml`) +- AUR: `python-pyqt5` +- AppImage builder pins `pyqt5==5.15.10` in `linux_dist/appimage/AppImageBuilder.yml` + +## Binding Decision Matrix: PySide6 vs PyQt6 + +| Criterion | PySide6 | PyQt6 | Notes for Bearhub | +|---|---|---|---| +| Qt version | Qt6 | Qt6 | Equal target platform | +| License | LGPL v3 | GPL v3 / commercial | Bearhub app license is `zlib/libpng` | +| License fit for permissive app | Strong | Weaker unless commercial license purchased | PySide6 is lower compliance risk for distro packaging | +| Arch packaging | `pyside6` | `python-pyqt6` | Arch `[extra]` provides `pyside6` | +| API style | Qt official style (`Signal`, `Slot`) | PyQt style (`pyqtSignal`, `pyqtSlot`) | Mechanical rename/refactor needed either way | +| Documentation/examples | Qt docs + Qt for Python | Riverbank docs | Comparable quality | +| Migration effort from PyQt5 | Medium | Medium-low | PyQt6 is closer syntactically, but not enough to outweigh license fit | +| Long-term maintenance | Qt Company backed | Riverbank | Both active | +| Wayland/tray maturity | Qt6 baseline | Qt6 baseline | Main gain comes from Qt6 itself | + +### Recommendation + +**Default choice: PySide6**. + +Reasoning: + +1. Bearhub is permissively licensed (`zlib/libpng`); LGPL binding is a safer default for distribution. +2. Migration effort is dominated by Qt5→Qt6 API changes, not PyQt5→PyQt6 naming alone. +3. Wayland/HiDPI improvements come from Qt6 runtime regardless of binding. + +### Decision fallback + +Choose **PyQt6** only if maintainers explicitly accept GPL obligations for combined distribution and/or purchase commercial licensing. + +Record the final decision in this file before PR-6.2 starts: + +``` +Decision: PySide6 +Date: 2026-06-26 +Owner: Bearhub maintainers +Rationale: LGPL fit for zlib-licensed app; Qt6 gains independent of binding choice +``` + +## Migration Design + +### 1) Introduce a thin Qt compatibility layer (short-lived) + +Add `bearhub/view/qt/bindings.py` (or similar) exposing: + +- signal/slot aliases +- app exec helper +- screen geometry helper +- common enum imports + +Purpose: reduce churn while migrating module-by-module. Remove this layer in PR-6.7. + +### 2) Mechanical API updates + +| PyQt5 / Qt5 pattern | Qt6 target | +|---|---| +| `exec_()` | `exec()` | +| `pyqtSignal` | `Signal` (PySide6) / `pyqtSignal` (PyQt6) | +| `AA_EnableHighDpiScaling`, `AA_UseHighDpiPixmaps` | Qt6 high-DPI env defaults + `QT_SCALE_FACTOR` | +| `QDesktopWidget` | `QScreen` via `QApplication.primaryScreen()` / `screenAt()` | +| enum usage (`Qt.AlignCenter`) | namespaced enums (`Qt.AlignmentFlag.AlignCenter`) where required | + +### 3) High-risk functional areas + +Prioritize manual validation for: + +- tray icon lifecycle and update notifications +- initialization panel thread cancellation (`prepare.py`, `thread.py`) +- uninstall flow teardown (M2 crash history) +- settings window + root password dialog modal behavior +- QSS theme rendering across all bundled themes + +## PR Slice Plan (M6) + +1. **PR-6.1** (this doc + spike) +2. **PR-6.2** dependency/packaging dual-stack +3. **PR-6.3** app shell migration +4. **PR-6.4** threading/async migration +5. **PR-6.5** main UI migration +6. **PR-6.6** Wayland/tray validation +7. **PR-6.7** remove PyQt5 + distribution hardening + +Each PR must: + +- compile +- pass unit tests +- include a short manual smoke note in PR description + +## PR-6.1 Spike Procedure + +Goal: prove Qt6 app boot in <15 minutes on a maintainer machine. + +Suggested spike steps: + +```bash +python3 -m venv /tmp/bearhub-qt6-spike +/tmp/bearhub-qt6-spike/bin/pip install PySide6 # first install can take several minutes + +# offscreen run (must quit explicitly; plain exec() blocks) +QT_QPA_PLATFORM=offscreen /tmp/bearhub-qt6-spike/bin/python -c " +from PySide6.QtWidgets import QApplication, QLabel +from PySide6.QtCore import QTimer +app = QApplication([]) +label = QLabel('Bearhub Qt6 spike') +label.show() +QTimer.singleShot(0, app.quit) +app.exec() +print('spike-ok') +" +``` + +Spike acceptance criteria: + +- chosen Qt6 binding installs cleanly on Arch +- minimal window can open offscreen +- no blocking packaging conflicts with current `python-pyqt5` install path +- maintainer records binding decision in this document + +### Spike Result (2026-06-26) + +Environment: + +- OS: Arch Linux +- Python: `3.14.6` +- Binding installed: `PySide6 6.11.1` (pip wheel in `/tmp/bearhub-qt6-spike`) +- Arch repo package available: `pyside6 6.11.1-1` (`pacman -Ss pyside6`) + +Results: + +| Check | Result | +|---|---| +| PySide6 install | Pass (`pip install PySide6`) | +| Offscreen window bootstrap | Pass (`spike-ok`) | +| `import bearhub` with PySide6 present in same venv | Pass (metadata import only) | +| Tray availability in offscreen env | Expected false (`QSystemTrayIcon.isSystemTrayAvailable() == False`) | +| Theme icon lookup (`bearhub_tray_default`) in offscreen env | Expected null icon | + +Notes: + +- Offscreen spike must call `app.quit()` (for example via `QTimer.singleShot`) or the process blocks in `app.exec()`. +- Tray/icon checks are not valid in offscreen mode; validate in PR-6.6 on a real desktop session (X11/Wayland). +- Editable install of Bearhub into the spike venv was not required for PR-6.1 and can be deferred to PR-6.2. + +PR-6.1 status: **accepted** (decision + technical spike complete). + +## Test Strategy + +### Automated + +- keep existing unit tests green in every PR +- add import smoke test for Qt binding module once dual-stack starts +- optional CI job later: offscreen `bearhub --version` + window bootstrap + +### Manual smoke (required per PR from PR-6.3 onward) + +1. `bearhub` starts to manage panel +2. search + filter table +3. install + uninstall small test package +4. update check from tray and panel +5. settings open/close +6. Wayland session test (GNOME/KDE) without forced `xcb` where possible + +## Packaging Impact + +| Channel | Current | Target | +|---|---|---| +| `pyproject.toml` / `requirements.txt` | `pyqt5` | `PySide6` (or `PyQt6`) | +| AUR `depends` | `python-pyqt5` | `pyside6` (or `python-pyqt6`) | +| AppImage | pinned PyQt5 wheel payload | Qt6 runtime bundle aligned with binding | +| Desktop files | `QT_QPA_PLATFORM=xcb` workaround | remove workaround when Wayland stable | + +## Rollback Plan + +- Keep PRs small and independently revertible. +- During PR-6.2..PR-6.6, allow temporary dual-stack install docs for maintainers. +- If tray/Wayland regressions appear, revert only the failing PR slice. +- Do not ship stable release with mixed Qt5/Qt6 runtime dependencies. + +## Risks and Mitigations + +| Risk | Impact | Mitigation | +|---|---|---| +| Tray behavior differs on Wayland | High | dedicated PR-6.6 matrix tests + fallback docs | +| `QThread` teardown regressions | High | migrate threading in isolated PR-6.4 with M2 crash retest | +| QSS theme breakage | Medium | theme snapshot checks for all bundled styles | +| AppImage size growth with Qt6 | Medium | keep module pruning in AppImage `after_bundle` | +| License mismatch (PyQt6 GPL) | Legal/process | default to PySide6 unless explicit maintainer decision | + +## Open Questions + +- Do we require native Wayland support in first Qt6 stable, or is XWayland acceptable initially? +- Should CI add GUI smoke with `QT_QPA_PLATFORM=offscreen` in M6 or post-M6? +- Do we keep temporary `xcb` launcher fallback for one release cycle after Qt6 cutover? + +## Completion Criteria (M6 Done) + +- No `PyQt5` imports in runtime modules +- Bearhub stable release published on Qt6 binding +- AUR/AppImage/README no longer list PyQt5 +- Wayland smoke test passes without mandatory `QT_QPA_PLATFORM=xcb` +- PyQt5 marked unsupported in changelog and maintainer docs \ No newline at end of file diff --git a/gfx/bearhub.png b/gfx/bearhub.png new file mode 100644 index 0000000000000000000000000000000000000000..0115019f55e8c864df9e4458de0d08a2a71471f3 GIT binary patch literal 220214 zcmeFaby!s0`!7s)N`rJu&Crc>DxuOf%nTtz&CuPgpdb>`2ug{RAl)b_l7fIB-QDmG z==b?P&+mMH=bZOF*LAM<4~J{d-fOLU-S=9bb;n-Y*|$+T_f-k;Xz@@`Pzcr4l=M(g zQ1`D795iH&Ql;8=6chzoFi64h`uy0Hqca*%QloS=RvI1FyB>2E0$S+|l2`fG;Ymf-?OF{w+7Ke%m3W1Qa zQ0IQLO&pYK{p$*L!vYM4f?S~x2ZWQgs|N@U zmA8R9y4os&9Nj@o^6D-SI~zM!5bS}I8ypOM=;aLcd|>P9>MSWB0CwlMb9M#uJHc%P z9HAZvuoDD|5co}xxS@AN(hGo{9GsmHcCJtZJ6GF>aFCrN6e16^ae^a@4tC&sP>9_% zK5f5ed-uPett|*)%MSs$UX%ZtY?v#l)>NUf?6})n16hGU1+w1fda|z{Lp{MTH^eoR zK{-%_D+umN&1?;WI@-9}(kO6196=6H$7_k!Ob#GNJ8L8f7zDGiM%aP`MMNRjk_?%) zDeuUg*TPQA^U_Xrpoy{MtWHB3fnWVo>sM0wRgwypfGFJ8+2p@u89Qx zUn%=d7yiH4!GCL*#lN*XC&;$LXB<(=AepmP&0=ZVafu6F(m=P=qy?2XsBptB&ylQz8MwEGj_50{5g7A z;{ZY|+&kfF;YWn1sDzj(02UwO+Bw=VsUsH~?r?2ku23dLc>n_y zp`a*0L{L~zNCYS-YJ5`^1pt2+0pdU+0Kqj6JTlB17x1q#{=dqU0P3bGy#Ef@_I<>PDLp;R)rf;=Fj)fd|D)K0>hmy6P)8M}s=XHH^A zKdP|1u{#{@TOM77t&yWk0|wrQ;hdDD7b(SUklSx>7eG$h!j}Co41x>wzW14du~pU{ zhAzV=lKCT2RY6a~$-aFC8h>hDm$Xz-Y#2~~{YV)H{tcHIG;a$%mXr%uoN$b_G)7rY zX!0o>-k6R%EzSkuf>F`GWZwQJhFTQP_U zCpYqwXxCM zJjK_y-y|T0Wt6#S=e^-yT}=!HooKqvNuOmDRXThQcKdEQ{ScAp71y7^9lo%aekOm@7!Jm<#*V@2PXb%GFCn~Jlr9q0#i_u{l`+n2pLQE!y$qoY#V-7V@T zpAMQhn6QBW{Al#An?4(3CqANV1v{lnF)>CcF56ruI}IdcTtru#n#->-61!{6{L4t2 zjG!Uxh7El(mg{rrm=}O2w?fx{Sg3NpUs<^yzyN*Q)xr8 ztIqP?9g74Yr;zHW?$7E76vgL2M-J>+J6}22ZK$Yres2^=gGWNIF=JK-A za=vY0KllLFQeh{NjP3f7PjBid$2d2&T)&d${(!%prA+v8wA_)R_|?0r9m=H#7C0@D z{qG9jW5AkA6T)j8RAOo^`xsYFzZvGlSh^HRb6Y&L1Dp+Fc z#6c&H9arYrqH%XNDz>$iwC2N`mO3)i)WPIDoh8K@2Nit20Q~W3a zCilr&Yxeq#Xj8q5i5rQZ+gs&VtOn?#oGIsig3rr>!=FIQH)NbKG5f2q9@gh=Y#I&^ zXIT9Zpd2#e4n2e~M@HAU`E`bksZrd)ap+0Pptuc!`(+BIzw}B>p0TCVnifjToA*#m z-+%G$)jLRzcn22j^%I48mrf-E9sV{_Jz77mTOU5Pgf0NcFjSjsHZTKkYfv>Rby87LiotvP8AnifUavn)N08Ty+b#xQZE${s z$Ovm05RCN`5RB3L%Yl-^S(9+-UQ;#V`}58d@RPFOY&{VFyXN2{ou~s4AAo!9;IPQh z-HK^&o8Kr#U7bp;+7-Y;jU19yS|Np3V81D_20 zw{HX@_4b+!os9TjepykT>6-Rm{un3*5D^j=68`Ovfk+oEBmodM{@?QH|0~b?hVWY? z%{{%eOnG93;}@3&4qS*?ceTeBde)C1Zc}l%W_^0(ank{9KOP01n18qnXP`|a1plmk z=c(Im*pYv4zyGZ+VLF1xa6JyU?ejE)+|di)9Ez=((BMz$btv60r60&T@-&L*{`8kW zdmN$hh2&>FhaCsqT^c^=M6v^C9r8D@CnNK$b3X4#DCbPRQ#?A*8IOdEq`nB6CDyl$ zt}wM;+uCPR#eZ=72dzz~3;*X`Si?l_*4NFuQD%zN2Qp1O-@@;_b>NR-s;3(iAG0}K z!6n+$*K^m-&&Ws-3eqGZmsN5>yXVeVwP@FvNA)%`EHP$Z`{PiCnECK51NHdp0*yYS z%RC9)ZwKRa;be*OM8x#5#8X>52%vSc)ltbXPW^*Te1{|37$L=KjB|o z-<|HfxJvjuHjHQ_`;uqz>B))7=ZT?a^IIRC*eeH`8A%egGYwLf7kve; zMa~mK@>@$b44Lb0U`=19{xw~hM|RJ?tjBQT2>_2lAJk-D_mpYy3xwuvFE6hB^1Q*Q z9e`lemVbI*R4l+Pq-Oqdv^W4Pq`$rPob=aqL>QD9|Jm98-5YC|I$V0_*fxN<|byC|m#t0Sk+O#fABV zttEu`pg;hWPZ%sD$_EvLKtb0V0wD=O0SFWh2nxK0h7rRH-~n*ULS(swJN@4h4~D~T zhVZw$KBU9C33U}hx%F&AR+?{i(9d_=mf`?JD9j8?Xm`F?A<%hg;}_uQZ_5%1X^DYP zmCY){uH41T9u85}T=+S$20z-;dDVHOSC+NUT?j_;tL8|-Q4yAyREtb<>hheOGR>rHg?y|`}N!FKdHB#2GCo|)d zO;n6teC`%B?*2Nhd5|M#K5vI7j&STO?4~MrVyE!Hap^6>@NSA?#@+HGbfe(_#46*R z{v^;b#Jvj)vd#5e6nK#lYHhNo#e0teec7b^!`KFVNSb-rUNCL=L3zt*G)cT4(G#?{ zu!8IprLC1CSnm{pJNn}8Ewk3}t;k!TCqCroKT7@2$M~N4cfHNgCn1z}-{MJ3^S+Jh zS5=L%YmhK%_3Q`g!{d$D53a*kcAC_4!h~+Dp&_Nd5R*?T^{}GSiw%^VWo@_)lWZ8+T)ccuj1%Fz}X~Z8Z$pHP++x-A{HH8!v^8D_J$C*OLdM!Mxw7Wpaq-4Jncpi)Tm?3)Y0X#q z_-X!k+Kk1-EfRawK|O1Ch2}HM_+|CR?FVlC3<0MRA7P7CAgxlj)%w(Uh0Og6*F%T1 zHQvNr&d$y}^q=?fs`V4}TlP^Oa~?PJ=BjdM?gRO`G0$wDO_09-WI~{uhu`8rZf1AC z?didq!#2E5Al};Fs$ZDyClOXTw*BGimu5-&v>ml!zU8NvLh>On*x|FmBfRiFJGVY+ z6VIO2mrq0Jy7n}EyA_s})`-G~soEcE+>Jls-iw*mj;dEDcaO{vujjAX^!&7$ekC!c zEmOf;Wcn@0_95M;xPxl>TckfZD3`R0C47o-yvtlG3@a*1Z8U5I&E{tUu_f+0|42M( zd_4n)%T=}wkQPJQ;quuG^7$A7=-r-*u#r|qid!Qu_F0m-ggFaLW-2w-t+3|hc1!o@ z1}2xDYnvtjl+T{fZA@b17XaLnJr>VJ%y|JWCyh6AjAg&Grp5x^kpQPzWS-QN%1AV4<| z#1Y{97-45C?tpxxgtSd-IP$p;za!LD;5tr-K!qi&KoAHY03<4k3~E9kJ}V)xH6IWp zYz+ZeiwcQAfc!|p|Kb&Hf=S`i4_F07Z!Jt-Z&FD(pDUvc0dFj1*?#+b}1vORfqmwQX!ar7DuualGF0?F3*cHsbqs z_2rZ5N#?+ZrXA|fS39>FsZj3l4PV3%q}Sdqw$AO=^bH_FH-`5Vs=dOsaHde9|PWD?QK3S=u4fpMr>f$JyvY}(sEqAm?x0k zWyh;wONLXyioeRjt{O<`T}7$~#oj7-Q`|Z?dt_FeKxepR(+Xu@barK-%QX)%wj5Yk z;NfTbv^z7U`ZU`_!a5;ChSA_cH#JAAxm;X)?bQa*3Adq#dw`8qz*zN*>Q*P~)R<09PZ)IOU)imPT`qxve0d4+4J>_=CV71pXlK2Z28b z{6XLk0)G(rgTNmI{vh!GQv?o;&`=&?N`14*r%`HuOYfqHCghE|;q!-H{>!1LrlFd<;c14ON&-_!B%Wy>MT)Hzhj6)+Hxy1jXi7R$fj#CwsiNYZhlH3 zUsq6&qrPInmSKCpa`1*4j*#Hh(!l$L*5gl@{-a_Mt0+b9ZH62?3J0}*z@sWi(H;%N zgR+v>Wp>#Wym$B8Ja&o&HRE&%oIV6vC^oP|l3P^r_+{XF5{^~*g0F*e)+HD%$(}x` zdXMFQC)>^5bZL?wD_Pj#WCfh`v)TWabLJEaPJtvXQ21pr-xMw|Jvx5{9aXw6~y&A~*V*L$RTRzeNct<}}yIV!xbFY2GZqR;JT?jjvIZas1fV|q zb&ZPTfRgpQ9tZ%SX8q!Lb%lb0mi3F{K9UXk->#7?P*8rfDIvdcoz;wx2_%TxuMgB0 zJVbQJX)xJ6G;}q*rzMGe!-^jSak7H)Ba;o>^pckIbOwR#p{`6;P#Zf(8P2V`CQc?h zhzzHJ$UVS4XGN&3otifs`oR1CL$J3!SOUT+CyOWTDT!p@0Cfd1c{;!x5t5!VoHu+W zk=NJN0-Q)9IK)~~Pf6uB39=-^`TJMw9v&Y29zr+SBY+YT5&{500YO1NBn2PB3z?t5 zlg|;sisXRDbi+dliU7lr=_ZiL44AHYf~=g}TxB>p@tA(ImUnf9+gbg^-4VeLx~Xxy z?sD^583=+90P+K_hsDGs{fk~w9)h?o{u1&4>T*-~Rf5^wNOA@tGbCImzL4S6gZ@fu zal_%d({Cn>B!8Wh z%(gN2@53~EV zVmF1~OZHcfU+ejc@NYWvzpqD%$oD9aDM}FXcB;P;Yd|5_RmhYXzjW*Ry~Ue16K`}1 z>gntRcm1VN|9wx%|Gr7q2#Syv`0v~QXI+t|af8ACr+Graf7yyNG8e~<9YVkYP#6@M z7{&G4Qh>iL+&tF#-R> z!u{qUE$}z?{|D1?{+nmHw*4Cicl|OcvH>|4q2F^smL%nosZX5XvJaqE$fPe`P)F%& znt#>)A7P60hkt?kk3o2Xod4!}u9LjnxC|%wLnkMg?60@xkbXesZ??~LZSOLFvvH;y zyO#NzElUghS5E(N^uJI=I$@+c7Wm6)BMX1IeW)YS*Ta!c{diCC777Xzin@~gL(f<1 z4cMNh9ko|ijY5e2Qhno+YTK&S29Jq5)$Asl)oeZAlYCx`_`GEA=}e}@!N5_+;bvp2 zWhPO;!)436TO*#0i9-_Y(A-eyads78qm0v(Hs!O|6USz`xYvuw$o*bXP;A|}=Qopr zpuC%{!$po4rtm*G%_U%6)@k1mUXkml*Z&7vM%+6~rAS5w6dI!xcwuvQl%nd8WTs)~ z%2O{odHy9J6D85bfQvl32#dHF)Ae1Am`EXDDsxaKV|)6!c|;Rzb5zsadRg5J<;8lOSRW9 zAO&;(Lgvk@n{)b&;OHWf1G>U%aaGwvg3;Re0ToF_h3{&Nku$3Kd?Ljo=FoPzvXrB9 zzNUk$dE6qWS&dpFKy4Eez@F!ex+sU%5ofuhsIyII=u8MH?N}z?t_tLzD!E&Q(J|6u zk!Utz*YPMER|#+2-Eyj-=Gbdo7^7-_5P(*ts3U_?)ldw_;puws9Xmn~o@5MzngRGS zv9WTn4NBy9J}n9Kn?17W7(pF@=q(XAn-U9Uggr;F&DCELZ2DtY-|lc2Xia5Q{J~nb z&uqGl&+GlfLH2WX=IrZ+;v7bvnfW?~_ApG6ydt(Ib7cL)^o4i$a%;S^3Z=1MMSvER zxn$5^zndGiXe*p#Dxe$M3{P>0H%23cl2{P$5R%Mb+C?z!F(hAzQ_2Q)2(*O@m2L1D zHc_z1SK)PV(y(tv7ZF+jE@<^%g_#Ysq+(m{xW(6^=e)eT48!3HoaNotMC)?hHo*vr zVRn|q=nZQ=Akimsaf|nr>OB@Aug6;JZ~aJP`G8Py=hH&St5}U5F4>8iuKQ3v$MDLR z&fmqH<;5Typ@~+JsklK=vjpfqT*nwe6POwN+eE0EY=${4w79bBmOZFVVI<|ZSm>A! z+`IjV^rs^by;;BoKk`g1q|(UJXxWLK$w3d%Ck{{;Q1YDt10jJ0mK|}Rl zjWMrFY;f_JeA6T4xOR!Qjl8IrQ5i^WXYM>djH&lCp5{oZOem;~rs?xlA?|5NS(xdf zl;ck_uvDNOXKhJycSIoyVBdd0sQR{P4jh?^_xAXBS8ORG_Z1dvfv8HzfMld3Mnxme zUI0cGbrgbl z%)GSq8qF&EALg(%_Y~pXfe7D_TPX5ADAY7I%gkOW zpZ1mM6^D&WTEpmv=u`>#0%j-8t)%YDFGv;7(ewJf+>mWMG#&aZFuVD+Y@T3!Ib;|2 zO+LDA%Fn709X~Yp%iBo-Q3DPUvG+)X(9g|g?NHMR8tWvorTTTaF8jD#49?S13Iosv z$&{Ep^Mk=2`Tg$X`$kKUKKkdPpqq#kej({Mu$AG5I@Nm8#{W zec6wD<67ot?BmCRiS^NR=E2Y9qVEx}h7p(Leh<+BNan!*Z#pY=gKgMfQ>dCh=5i`e&MX7ok(zB5T=#%#;hI#{nuP#=?^G0MkRg zF~R;-)vQ9QJNM;J5M>LfhTkxaij0O~l*wrB*wpH4k4DXRoRs>UOalfxSO=kwx%9(?U@|3{OVu3+Qh1{1bTCYuI-#nHq6E7RNdz!0rUaD1*7$<)KczCF2$GE;4@g2R)rqDFl ztiW>8r)-4_c1~6tfG=8)%KonTBT|89eylEm4nT${_FUe#lP=Mc&e8Dv@p=65lxG6Z z>zI%HMXyvc5ZJw!vb;Vd_!gnh&8I48tO8JrE^$m4LMWO-U(5uxns{xJ)vR)}8Ce_= z6rWNQABRo(e*qgFb5UMm;AI51GPa!CjPH`w9B?_F4l8-raw=x| z6*#Uk2FLCGZm@5)z@)eI(2uClJgj6Uu;WpDGEOz|X8fsuMWn(GY0ly&uFDl)TT5)2 zyW`E&*iU7W56!sN!#=B*cq!OZLq=X2b_6mlnRuhRzltb%Y1yS*t6*HaB4W6Ar`V5h zRF;^>BJjn#)>FCGk5r(Ip0cOBhXYx&lYpa1z!J0JHV*$WL;o3&*9(R6JFd`?;l%3ui z_tcNREF~+OzrDT!r3fj0{CwXo~z~djL+|)T|VYSm%^V0-&`K}VG{kTI8tjTD(*VMb~6k6=4 zCKvftuE%43E_<(~N*`y}9yxp80peuiI51K>zB$)HD% z!4lKLYH!oZE3+*{?5;j`o?F@Qh4h7Jk{?f+3t8GFO?M5pwLjg`bceMc?p|YD4CByB z4L+Ctv9{r5X3Z{5^{KL{;nDwde0{edF=n|aVD!Z}_LS0MSMmKmL(-L3Zv&0Z2K|_AC)0U=UvaZBom46kIaPBiO&GW zoFR*8Dqgx$67W_iK7Va^AKN=r;F6EB32$vW{E5K)Y8&i?ro>fg_(@c!f5{@@)Flad zr9!7EPG#U>i`d)L*K>?2Ba9uYo!BCuFj&Z5jkU(wShh)|2)|p8C`WxmZTSdkQ#4b4 z1fmUi_E#uH=AjGP@;{uiXW0$qPcMbZFHja`QDXuKH8;B?WW+Z_yKC{Sk;b#tHX#SW zcd|D6p6nk9^^@)DOwj|v)-9Zq_x^o>8|yz^BA4Cfb$ z;oZCo-imZ>C-BM)GCd=3JI#0H$m<6o?~;3l4@t!xKqI!Gx1~3gwX5Z0G7gW~N@KO0 za(u8Rury73>*w1#z{lHQ9wR+EZF>s45#FfKM$JL)drfgmGJ*JwU5f!BeGQCDGkn%F zy@*ZH6N{jUndb94mqjtamXYD*tzs`+{Y$*0bIO+uy`v0Jlm19Es;u=}4+*U({LJKn zppW7iFl7TSI_{7M$Z1Sn8J&9ozXW*gtR7=)5fY@zYh$VMEJ}y=Xt!nbjEjd?g&2Op zUue+zMoh6(woeW7Ll-?KRi7|uLbJCB8ev=3ZXIgV+4te{*X1au^21*AWn8=9*U>-#wv>KsEGM7 zq0&}oyLZxP`&Y5Zami<+z4;?Mb}y3e%gUgeS}er)Hz%248>J(&uGvj8RnzEAGL?`f z&;e2o^)Ydw@rFM(*;b7-=<`PJ3evxM&JF{+JQM}}8*Syw`+V;S{!> z#I$>T*RcCPMy@;sqzFVW}z zl0h0B&`+4`8$pgo65-jf02b)XZI=R`{zovXm$Tyqji_1$gqExDF^ zySS$|TF69yvp`FuE~`zjX54H)YB2+7M3HML+oJWmjZ0Tu*#eHEH(hmouSQ15NPwk1 z(R{S3%O?-e=2q4*XU(>pWxoJu=d0m9(k%w|o#8F|6Yn)ed3jj&m&Ci_Tl)tMJpTFV zp7dM%2O7-QV(rhKIz^1rQ=9Z9NO~F5=dXv>l<-=M#mvOM$7h0&hEmA?q>Y@k)8Zb@ z=~4PjlvMeI(*V>-C@n_2ZZYd+u~Z>HPpFrj)YraKK zLDk(=5!mTcm665QrK$YB8hk_}@m|1_FoD@so8!*~$I+b56Z19e238$0udeVAWY1Vm4p|GUBrAMmZAWTU_OHSmWw^^eH$Fld)Q;X zI3{?{lu4>?fkmy(Mb)NIcGyWi5U^M)T4Hz>`LtXDANF4`F15`V^BOi{ATmO$oD^5M zVbV6sHCY=COp^R%)rk5P0(;4pwVBSsCFikRon4gTV_Mz|f}b{=^iPD|ggLLW-K^-v27apLMY&dUwq!mL$bk{q< z_JzH8LSBEu7_(3F?x5WgX)*HR4?9zIUe=fzoaUd&UhYNGOFN3iac)dUy`KcS3&rvM zct5E$Wz10fsQtxWp7%4omV^)Q$8W_NYpZs>ap3)!#4hrl+<2%|!^o5-t|-gE)0j{b z2K{uv>&4hpqdQPMI#(U_23>kSMtlwR)tQ6n6_Mx~0=DRojKJIz;Joz3U-V;u6Ip$x za_RIFFCe@ni@tKywmvYoFRE3qp61Ru@N9x2R;pbv74V)S!4dK`>F%sb>{Q2`ft4Yy z5;835Q8ooB^L1?#Qa2=YJc>GYVEKrn7{lbt9m?N1XiCuAFgwh{z6!4jAa1=BEIjQXWyP+l0)#jQdUms|C{&Z(fzhp?NdD0=g zlL*(!(#fJElQh!c$$zMzz>{Yhv*P-iFMf*X)7ah9lK4HE?s{}MgH;TJO;|)nbb-;1 zkj}Ya(yNa2rT6={CchGo`02P|czh4pvkuDq0Zu{gjEoLwNIZFZ15!3tLpqslCGlPh zv^)hHj>hn@7W<)1b{$VMkE*Zbj*E6qswj7bsvhOl+UVFz3_P}=tn=?5ogv2b0gc|q z*+1D67dk)L$&9|DdFb)^;=*@Z$B4|9+0wjiu8Aw!zw1M~*r;~uq1leOb4SHew9QzJ z>R5a>SjnDoWKz}ZjM|=V>>KBk^o0CPm$(LSe!p&918ZeawqNU%TSuKw`=F>LY<-C^ z*Z2(DHZ5zu_eei^K%qFRt!vRBt$?U_pVa3cvQeKSc8@w0tE`Zihrj%@$M{n! z&_adIxsTzYbg3^^QUK%PC4>GsUi2mU;!Ie@W_!wv4SrKF!ZD)Qp6P(H`yB7*^UofN zaEbQYmUd^%RoHsf^22yIli^=pQ%^ow=}Rt0Qz+~%tZ45eVI>slEN+cdCaK2>Rx>xS zJjRRdR%zmO?hDU)`<(D{W%ea@OOKKki?|Tb_6f6Bi0U^}(iBX29{`XVCRUL$2I_Z@ zG>dzN@6|5M5FhzenWUU3_d|IopEQVFMIf~7gd~YrUWgfhy-d>YyKRBj;x#LWeNLrd z2@FlL{3(cILIkQ)o>O6vqY9w{IpZohg^rI<8*%DY-<{Hr<%{rqzMIB$MwzTW*NDsF zArBK_8&$AkWi!YB>KNFY#ZlFpz_wCgq}54`-|tIq`Apqe`Nc<`#gLZ`huWU5Ph$FA zMkQLLRFuz>r)61;BP1jeM}fBVtYC%1P|X*NVjJmztu*1Sru7j-hj$-ESBuNLQgv`w zp50cBYFFf2@YJx#X6;s9_78tkeVk{gvj;A=4bxc(KBp`{o4Pc+4#IJD#qJcI9Yo_> z9pN?}+-qD>e?M2?yOZm?6F2c(bv)-C=+X?Zc2>4eS2K$r?;+J+pVn7v(o+PA8oS$x znlv5G{h?yL&d{BVP57=J8QUXyQ;GJHt~ZZJbc2B%B=1wY9A|a&=F>h2#^jBV7@=gx z03f1ReOB_dyte%K=BbMh@+q;Ork`-v76XQ7beX|CJ{-&jjyE_ zRIR=nO#`w$o;(QSv}v2{I(Vw?w{^8NftaYUi9IK@XAG&|xhI<#qOw*GI=Dgs; ze3Rm;72V&HV?R{pG=;dTS!mAN7^IkVGgu!ZGI}Rrz2-ZP(B!_KNp$Ht7~u2ucs!^5 zBEV)9Ujwa+uxwWS{aIcuv~{gH^kg>ltxapLjowxUi4T-8i6JzvK8$5h9+tBJaAFYK zOb58e$#-#85-RopgySrGlBa>7^?aQD@}nT0r}hF;r72l`mHjS?U2onZdW(Ff>TFsO zGoho1=OWS=_U?D}Fbvz9M%x3pw(|G_nJDy|eDAA_Y^iK@IznHM4vXPVo=yO`ahbgajq+sir@HGaTiT}r+gn8Itz zLELLCA5*z4&5+pr3U?}{{S{5GTm*K%rThu?$7h;H=|q<;y_Bu%pk=kMih@ep(ga1I zPqLP)Qwf#0pgdOJaQO~_ zKxn)diPGu)pl*)H)ChSfbwEL~TUxTq%VamQOt*NbsMTlpNV^|27UU-$+Y(3Rm@||y z0fiKorp3oZCdb8w9`|`R#2ykquCmG6<>r#W5vpj}3h@%T(&$!ta505lJ5X*$<+YbQ zsy^Z~HLmV0)1L=PIH-kfrU-A+&zG={OQZ3D$M0B-NpZ>?et{=e5iwUiO(L~@E!Z;2 zS=I3JEtKXXhs;L~0w3tkdZU$;=fu|Or{*+{bTNXI(z6i#06t!}rh|7)KeaJdZ4NJ~ z@*7j3)O&Y^pT+~nBvtkuqj|dCVkPh}9|dhdWccZh%)T6%0XOSl%Se>k)3CFV32W`s z_m}etIm$vFZvgZT9B8srH{5rSA(1Bu{UslE={S+;;W`7=#?ZPwU#|CAp21OQrG(i} zZ+_6lmgPKsS-jG{vn9=Q>_;s`DuO-4t>qs;HUf!9@1sGwz*Zh?&knosQ;y;bdP=$0 zr1<;*^PUD$L}UM=Z%W@s()=0B+8Ope{zd<&fyRi1neGa?TpN$beJF`BMvDosJe)HL zWQrS#{GU3w+e=?2uq%j`y|KdKG|1>d!_T9MGh=C`+6KVq_LP=y$q1%lE?Nx|B<`m7 zq2*UJOOvMdn&S4xX@ukSerVlby26>>9)l-s9?kQ z6p0=_U=e*8_OpDJm-4nIZQuHy^6_m3L5t85;r8B9g*PA6bAHUA$kWdwR$vcrYbEf5DyCZPVh~FN6%3m@JQR0dn95)v%_};i-gN1$G#H3JpTR2S=S)-k?pAxfiSy!z z_SP@xE+xm5Qry?Kt zMUYqWt(%sb@+Q+KhJ=GA`=NR#t@tfFhKNO7L9u!V1vLTf3~R0MYQFhdeRmkUl(t!G z9&g?jeL~)Djsu!qNWP2hE6e?fMVBwq>QYA%0BhOtA`clfd+R_(F5EMo#F{H@=etgW zq6$-WIzqTIU~+}sr#o+Nf1C#LCxmZo4v9whwT%mRns6vh)=YCNPvjzRy3)(HA%+}E zQX^(|+Jk0M&}Wkm8k%6Mjl~}3z=UU8G(dNvm?Y*=;hd^_sfW+zw39z}61Zk1xxl=W zHr9W5y@kWa<=AzFM9k9B&c(|r?{>bkEIE4?@q$Wi;(d;V?1A%udi8u<&7qg6e=>z! zFuqe5%^7nAgI*f&Kt=RIzt>C2VqdW#E0(=0TZWR}1n5tp0!hdLZ5zjqM+09=J7UL} zUxsm^PQsmSa(P zURVNDvtGzj_rtP#X}f%d0D<>Ku+eO~h5giI@%s`vw*;QlOQj_ex8TQ@b_Ya6nh4D4 z?<}+P!b)#*#?K58vefCbv1heWNw+rZ_38P~>XyZH)dloRr8F*uB#)r3(8r%Dcl%)^ zozq5NhNkt~zo7E!P_JG?*frf;Pp?+f8RExlcFp|f_^fPc8q|P@tRh5|@0FmdJ#F+NNyE;nC8pI9tR?!_ZvoyCl#TkY zqVJD_Rtf4qc6G-Y62%V6(j1@;6G(E(96d=pB<%SyLG)PerRP`BR6XIX+l;A?Cqsjxf#Lqh6-ZOU*#jETC(dvpxQW6tabUK03T7#oZ2;Z>!>m zQSGYY;W&Z;?Jp0vi;YN<3H^D1#kUi74V_60%bTn4SVlj$3^_lJz$_1S=p1+8btJ<0 zX^HYy!f02S#VQFWr5~-_bJmri>@IO8U+@E6+C9U?wBC!HWY%XV?05#ZJ@R9kQ@qvC zJd^>d7)MX$`Z4-4FSUMNR{C+^8*}8SC(5)4sU7DpXR8}Kqis-ze2BCaq85$mW+9a{ z2}f&@Fjiypz{t_2#b?T7h-<`MrVFaJv?f$Gp++cuxeODEoX82az}X|b%Scs$k?T-u z14&$5>f*iZUB#AFNB#`qBDWXJML0=~;OZdc*D z&C|TyLGmozpLtoaD>XN)M5NPccy4s3293e3f_X`jFBhZj=x(nlrN!sD9wXnB$eAdY zF{{NT%TWW*%K^e7b1?_0mD;6P)f3><4v+46tljsRj7i7#S|R4c6k zmE`(0`z`(63G>qn`tWo4Z#2$TISp}DY#_IHWz&*s%)Ivb-cr2A5#3cd-ml%%I6%e` zff`?Ngr7V|*le`rq<>RjtlY0n!*Zjp>|?4vQ2ZKL7Y|IW+>iBofLLbuu&*UaWae(_ z(Xlie>UEX%e&db4pH6R|rT^93`a&1-AI<|p-qK8^$M10zG43(RHyxJGpQ=x~&6}Ss z+@}5lytC%G^d=k8Jt)hRs@`?x)x$pO`b=bK_m-%6aA%B80O@LfMYv}09goTQy8Vhp z|H7K_apJy8!WZVY9|Lzo8Y;;YCz(WW!Cj#T&5<@^B-MoSJzP$i0Jk`=bvkPY)|@Bb znnOqZ!pCM%_i~$;SYMGXV$7R&dz-^#S=<|lOs0QG3G9}~a5HU$(v%(p!yke5WHim5f=Dgj2O02+FIvqi z;F#lOYjzJPG!sayF0-^{VD@vB`bYPRz+AkSF^I77ZEr-<>)L5w-7PN<)R zJQuqoDv*3%pq+%(mPh>Hw*1PnTnKjGkivXzCgbT~f!f!QLC(OFVHTZOLE2bCBTj-1uXP(jMN zTU_N)+%3yh)V1pE>mYTJ+7qE|et@!Ew!j27W+-a{55)BFGt)*d!Xnwj(k7`Na`CmO$sMu(MLIh+_QwA^y@+0#dcn zG&Vt%c$uTP1wDS&T7d?N9dob<-uU(8!IbnyQL%a*;;&&n;#_$uT*3Oukv&ia; z$?#xo=N;UJb!{tE)KIO9huv3T`#7vg?QF;^H$tDo*px$U>IG-6sI$=J#1!>WE2jxJkn_@_+OI0bC< z3D-)`oj${ssXINWHZMOM6n^s|j(YOU5G-f^+O2T;!Q6eUD>Qqir~(aXwhf7}(!ShI zzuZoK$x0uBYUTXhPxatEF8f!2N^MW~eVR0jvFeQo8h5}YxsbDK;K2Z}M7>%{eDsZPlZBz6P@bN#{$TKZ<_d@pOujhMLWq|oR0 z(Tga0A=BvblDI}{Ss|h6>k?5S^gS)blx*A|zNuHGq$GYfFnn7RI$|;YYHBfLdU{sb zFN(15{x>~_^d#A!Su%`KlIM2Tgo-BO-*Uf*-J&P8EXWWbdi8#p3g^(-H7_UN)<*@1 z!VD$)AxS*xU2^f|7t)k9)QXFDx8dBIKzv{&PMd+kPdprfpkzHYSjhf;wI=lP0F=D| z+^_%=I^@m3)oXKKu^y>jQAX%wQ#d|6xreMnZg93>b2}?UHe^!0uS=$`^T1J};O^G# zh4dlso^_3{Tu$^~zJ;qzWS3f4!)WsmoF=TPXP#gIr#$ux2`+ojNx(~1y$hX5e31qn z%_nLfZ?AZ!e%~yB#)}Ylvla9r%(Doy{85at^X5Jf)JD8hnc8sa9h9)Or5CLv^l~Tg z(R=vaH)G@iLz8l6P`kGBf}L-V`--Lcg6}wc?11;m><#T4J)Gg=SP)MJHpe}g`TPbj zgHM+Ob~xX6R`c&|`K9tD>C$Ij(|1$<9{_7Wl)rukYEMD+5!`bW%ihDv_vEi9*Pnv= zGe{dWUm|xe+6J_a3#|1#)n)@#!F_`sor8MYklsd>_>x9F1XbVq3n)v!Xc_kC7|>e# zdCQo0_n5JB$ZcV$J&;wQ;B=5W31}SkXdf|m(Z*+??k3FlL(~7&mCDR1Xk`7Kfs(h` z*2kdm2e|l6+;WbWp5{A`vMn#LHBW0Re#DpDi?i?La}KhM4oGf<#8#G6#^d&2Oc};+ zg6O3XvKk^vAz?K{FT z%kPI)3N`#>)b+#VvYQFb2w%!gu*Sm76?xhN2!OOD`` z6S*A1O+>#4Iz#RVW;WV51)VeG*lb`C3(IA}GtjjNL+10~l{{*v7QchVZD(;^+Vs!q zGw;#zA2Kd^+@tug$J*!hjrWQLcNpfr=&}7R@9IPP>`?IjziR9#9|a={dGre&yGHb` z5mVQw$6h(Di=>>lkpUmV#$jk8|3Pw0YJN`MNlTJlN1{BynumA`tz2St1BR9n&(0xZ zd%tMyla{=tPi{b^kGj{%3ZuaCe=7o46H46Qhb}(`toP%}OVBbQx-WYk zxMDkW#d7G1_0Xi}z7dbTqvmd^m!!fMrN59h?3|Qus(e)QYENP9yI6UGRbLd%=SA}= zXgn$Pz445EXh!2XAZy=r2AWSp(^-l=$+LKL4S9498#)F_#P!x8kB%W@+XYs44(rIm z_fe#&w+(6?WOIf@%b*;vl_Rmk?xf8COzC?QeSE~!O-tC%EnYZ-q%M1t9FyL;q$pcS??^hOjB;;MZL3>w!-a!non8;n?ZE~o z39bdr0m5$M7MskCSZ%^5Ru7nN42jkJ$ajyE1=I!9#6jjLllCa0=t`OnyXLQN7 z06~{;OVfj*xieDAx+9$Xh6x945C+!i%x{qhT_{3}4bk&>$XpRJg9XgSpd~DxPD1TTs5v1EnI~#WSyxw#l6i}mvPiuBUrDY`a z75IbaeNZ?7-J^Q^zzG_I|CkkF^XN+ebY+ zFKSKh{7gfij9xp&y!Mf}({cN;c`8jg#99acEbg*_d6H+@JFInF6b-lV*+vlm>y=V` zJs*OfhxL6>{t9gP1%>di;jH}Wj2&;|=HIi`PhjC=xa2WhdLw3Z>#1E@Y88*Ez}Oa^ z{8i6+*XTJFJaIF|tigyC7`B$MG3YRWX99C3Fux?tKiv@Q6gE#O?j9as@6Ey8SbtGSh4k>YNlcRiVx2lF&@Y3iwaFo7qz_$Y&ux)~pNo)$Y=ylIEbi>@Vr zk@&5zDd*c0@?aI)~+P9a5vaMHDe2;VTYN1|i478=W(nJjRg2+QNa zOL^p67Pgp$7qH0H7`+B#iy&exM%P2q?KtzNTG6AT@O!-Q=WN4oL`gelJPL&upz?Lt zyd1*de{1|xiMuV3NKxq^Z|c)phsYr7?L%ZosKzq+P=Nucr}aLhMjYD3t0AT$p0GT zeGli~i8HELY`q+{3)=u88zFQXMDB4<+gRnc>c#R7``}y*D8}&Jm^cqYX0o8!JR}|b zNj+oHksz(HBa(C$ZKUrJ=!ijkGMQ!c2>?rk9Q^bR7xoZgCo}8zwlYZ_Oa59qaUYUq zGRx$Gy-7F8m@`YLa5$I`sW~}lhh`<+Co%P6UKVDtX;Rrq--C6hU3Lt<{#@F2+StfE zeRP{e*u16I`vh@cGVDe$Ml(k|cab%=qJ{Qg;Uw86PxPc>VP>+=6bJYVJ4w73dRfrR zCM@L5eZ>1FofO=NCKEH6g%^oCi9WsP$vr)}m$#771|6FA<1LGqOS1-OHiztr)D3t;X15h*&Jcsi<8L-GOQMiv>^UD;{Gje+_GXj;rqC^Y6!k*VwiT zyz(=U9qE3!#ow$g?uR*R<(PUBDu-A@KW`*C9yCZr9?)6`7%6E(Kh*cjK$aA_hD4mg zSyE?;Zpo35H}4az6ngdnZPqyGuCY}5S#vKZ-ETNAJA=BZB0r1G=Vh2HefkNvtRI(+ zsOC+mcmpb_L6Mhtr$Fn@%9Yx)to97noWq*))E?av&-&crK8P*DqIJ;FI^xwmq3;{v z?N7073t0HS;O@VV8=v;6kaXF>Xnshn88;l5G+rY||3&v@lUx}lw+_w2&^jzS2aFx( zv2iL7bDGzm#Cqw|WfiP=2g;v;Ef2x6x1jtzsHPhEE>yjXHSfAj$Lp}?4Jdn;)tqJZ z7fHAc?R|#Me#72D^Zp_0!9fykt?d$TbfaM|ARxteazf%V`L%4n*mS5s^&*7H)*n$UO z@f)z|7;OEM*z^an_Gw)4RhEAX%ef9S_w#8xSjZUc+hh_dWpv0F(yAhcLMDqTLb zYcYh(!{99RpAN1$7&6^GnwkW@G2rWV<-R1}5!?}{yMnphiQYln7L3*qkOPdg62xre zX9ER!RjZxkTX@@Kv4n72v~YMaPqOM3sqEg~nwe~}g?YzmPMcdXNnw4sg~VOzJBcYb zOGB+$oVtxZWf#_9qn|^w(d$NLGH_2Xjcm2e&*1RYs3UR22|o=C(cBT~?pJ(;)hc!0 zVnh#_a&has>?)*Nx7l>7x906B=s;#tZL=_YQPI3j+)L*s1M@I2qX+Y_X!MqsTim7G zd%4$1$L+e0S$NWJE!=A=X(RWed6U7XYqSZom3x`dM82Ma4EM?VNQ2MiJRDy-0cNIt zF<6><%hX`+)KD|6Br?}*5uPoA6S-d+b7k?sSvQ6?4AC<~(Rz_Epo;y~eDcd9NB2O+SHkbK!5?_Uz8ah#H=AP9v`^$Am7StZ8y$ znA?nBlu4L|UKxotyo*&Qu$C(7X?K?L9M+weaxb->0$k})s1JaK0XgZVku;rpg7d8I zlGfO#HBL>0Cueg>=442_t53^DRQWDc(DEphAI9x}f(jD%ccA)+e1(L*@)%Yfld_h_m5_j2!P@y(+k!rsb{rU^Mk=olStmb)^H4}svyndLywU{x3aH;n8SSAB}3y6_^QvaJo4u~xFEW4eh6l3sa9<@nC7hvEj7Pgv&t;Em;7*GH~%V>oKQz2!~#lTGTpXM&9;EV%% z4!EYHD~|a_3Exm|ix9pMns0!R!;&s$31B|S=uBsRq0HvuJ`O>CTq>GPI%28dq}sG4 zZRX`3nRMHBsi&ldWPu}fhXFmvEW0(-(?se??`qx_a?K>)y3C1t$`ATD4GxEHrw@8? zPY=>r;q9y21C35!ImgD9t_N_?$qrN8;7dV(keL?hCj=O1=X7YZJS+0@-n4VG@b(b2 z6HlFvt9hAqZ`!A)W|psT6BQ#jc?gr;!(um*WXtZs%PsMAdfxJ)yp8Prb2ibIv^|q= z8QmLLWFKInE48`@X}#RO-X_yf7Af>{q`~aZd_tJb%DkM+$4^eZmxIhsw1lH0QwyE0 zhr|lMNa{_QGnu<)VbDAlyiSWPU=bPMnv21k^!PfFaxJ6(Y$o;GRPNIjeb-c2t*76Q z#b;T~A94E@jQ=m~pTvGOM8Au*bdxVH^3()YcC zvgLLS`y3oL9~k6qzlR-J5b&>-n13su-f>jAa8D5XAawv*N6ptwm=BKgz2hF&Tz1?% zN}WG64QqSHsaj}l=VhE&=PtGHVGWrDvJ8Ke52xP#JZ%00Y(0+ECwa|rtULwPRG}{* ziEJ~OZmRL*HK=O7iRG_g>5I67UO$5k$64Je)*#dLvO?EhWG#KXbwFz$_Siei5cRl{# zpIZtk$Dx$Y^ES4ijb%M0){wHl1goEiRZqjR@8W`caL!GbT@MKzkh%uKm$8t|EV=+f z=3>A~Eqp!(Ea%}XSlAK_rsV?p?392REMPkNr^(rSehKJ|274e_Lcx;Dg5tPefIEro z&uvrLWMA^3@~$6Co)$P=1dvWyq>y=%7E6aNbL-OBnz`8~C!%<{rOiU(?kT*?!flFW za>M3p7TI^|HCV}MBJq={og~=!= zCLmcSq4zWjPk}~KZSww}ZgKZ;tGTbyM|LnwW^d?4x3!n2B)24Sr|5)wFHZiQu9rdw zIt{ZIdQA-;Slk1)7W5(`A1Qq8Xm&6k_svrlyIb7-z$XBF+|x#VgWMBIW0~I!9z2hQ z&F5hYc~~sSIZN|J*iII|8)EAr=~~SE7B2iO&ba|+{YYQYtxvn1&3u>bzKGTPAnSwM z_o<|UJd)^Fos;lxh2j#B;8TMUA zpzJ7C9g}ij{hnLgUx1x2!Oqv9>`hkn7FHd>>SIWzzUCdMdQa}Ev7f}OLV|vFZ zwv3y4#_fj&3~lG+Fn#U2?+@?P9+B~2%^R%Z6_Qt0@oQNBD6Bpz$95=kB-24bW$iJn zd>KoRVEJiQ`yQhZviu#acneA&7Rw*R6)&>g@3NXxyzUgr{@^55o^g-88KTf8ss z#oKM$tp=-f@ouMY5i)!3qgi~7 zHcx4{J*aqTW*^@HQ2JS(!PD_m$<+?0%ZqkfTtsC8Wn<>LiC*v(o`~6+Hi+s^- z>Seg#zCf7~no7=C-C28YG+WT@o)RiYXekD=F^dnH1Gqhk`-P%C0Db%!DZ3+-J0h8H z0{Ts7feGLnk5rto;79>i5eqMd(2WpPk4Xn{#+UelYglF{PWunz(srJCJ?8$A?-*p2 zw_tuGSf_pu@0(CC26e;OC==XJL#CluG*QKV2g;AT6DCKX{7+E&04)0ntUM0Y6w98b zD$S$^KLa)As2);nBw6Q;=NVOO>JO?eLd^xJK7%!6)z3&FuA=?C1$%xETYm-XAI4?R z^6k{74#U>}V8xH)+E-vZwVER`^GRFEsS0ml_3KbU%Ko}EOeF5~@v66_!KV&D`uEe& z(97HUdD{SQ8x&on??Za$sO7-8?syV5{}R{#n63Q=7TwJ9Z^BvM^1>tO~1o0eAi!)=}JgQjRr|3932CYGe$7vULqY%{O6T0<+y<%0F+cc}w4UJ)3h2 zW)f58&S1E;l3pZrmKhj#{@pF69!9rh zn>Dw!C;intr!pS8%-eWcHH*yW$Q-wcl-ElmYj5!oW}9YnX^uF96F{f80(F~A!f-E7 zx8`b6+`YWqJ%?FHx%bxSEjkUONtjH!7x{Fl*CgD!Cz*GR8#V5s%cWb~g~{EK&}MQ) zLnG}_C*7B4OD9Iw-Y9k7oufCn`vw#B4b0sQ$lSfhRK|un0K0DS)2&wbu&uWYM`U+J z=jo7hL%k`8p{|j_4u9?w;J$?_NZ3O(-(YU{bKknAOVg7d@7C8S={Yw5N?*21M)QV)IfFS;|sQK*brTq~&p>idRiW zoO7qI>scwIIf#>Ru#^fENdEerNhz*bYI zmOV7zH18Ho|A{l6gSq=)kv{wP>7@fw0BSEbzeX%+@jKA;5ZtieZP*sfSucisPL9yX z{x2}*A(-$WO!x_2bvF#z1pPO`pf&Qmm8$^uWHYjB?g9mhefChTKnCk^OVin@y_ z%e3YKYFLr)Ez4^u{W4L7$&Re5Q@D?;9hq9p3=)+cA(Nx*{B%yF2;7})8O2MJc|~!; zG7VKSk&z^`XzHE!G7&>?z<3>!h1^6b38NztyF&_2(nyjT<0J_~WuW(KOxO4xvg~eX zG6gw>uK}^#%jtWKh8_kAJq_-9(2**WR+(;2Iiee2SnpMqd-)Wv4_ryp0KKoCX`B>K z1{@dFu&%w zm?=XFy^?<)^L->$QtJ+7{h{(A>~J|%fatv3Id6+Q{ZW6*v2g2&^3Q5~*VOHhx3WR@ z`=7?1|CermX^?JjBcb*USp5m!@=0{t>BKFkeuj z#$|6fYhL%(zv12ds)kxp(wFUrrLW?04el>N(+h;H&F@0%d!!G}{1uG54KBPMx_jU$ zeKA8Q$h+c5@LX^mkRG^cNK`}00aXFXS)%8c~!Fh$ew*EIX4DAV#+ zNq;0;m|nfU42v{&vjo)gq6T*wjeDR`PYH%k?WQw+;VxLX4;o&F*0%}Y7e6LuOoP6g z-J!p5Cj0|j`Vd_E0ABMiIOfYRd@=Ny2VK|0dCRf?H0U}{_Lu=(Z-Dx1pyQ=bJqoIZ zV&(awe7LCY2W5RB-ve?zFyB{JRBG%d2{>6Nv-PUHqsrF_D#lWUsTxe{kpqGrP1x() zd|sw=Dy6}_(#hm0>xU%i1ZymMc&P75Y4KP;@p*$eFM+$q+O)=W26qFs37;iz26x)e zSezssT!T9wqhT@QW)kFZ4>X=i^a4Umjk$V3pdm6@>tytQijP5!Tb_6F30^1|I9A~4 zHx2k@eVItQ$&{OjoG{@KI&1h2orHdOjp<6GvkH7iPYIq9p5D;Zp7Gjz7oW(x@L915 z4d2(_OYhY5-$B=ayZ%V}GrOeQ@CGut>-S~3pQI`_=cJ4VMSGH@5owf%M1WC^Q`Xh5 z%5wr&nM~KHJQ+YST_?)A%E}IyuZ5h3_-;_%8!FC&s!L@3D5#r8UAzaZl;_7Q46pk_aM@_6`>B}tI<7j%WcekS|02xSl=)eh^GBHe7|hh?=hHCfS(vLK{z(cr z&3%PVemW=j5cz0+LoI*PS+*A%4nX6pqIr*KepR(RujVa)9{0eAm!0{)me)5zzwVIh zgZa6#>m=E^3zP-mNf04;0R%26McYm}Bql(|buj2|xcEL8`)8Q4gWhq09?#;!9iXAS zMbq|O(EL0!J_hrD12gpfGtls&So(gj`Dn25UDV*d?tQubMB>(y**ib#`1#|>ttb2q zyS+tyAp?H_*w^mA;F&l5h5JL%@oSiP02*E; zLe#pS)R@HwV6o=o8n}1Ef)@$I^(u9d9@}Aorcp2A!lx;&J7*hTb=&j>i3{G4i{BDU zpTW6HV907Y_}{#--^5FPh+}>UW4{F>KLZ!6g@J3K{}SxG82jCTou`Pdvqg7J*vC=r zMshli!s;u%`aXh`^v;l}hfGJkfw?XsUqLCOsdAC(sIr|@j!LOeo_)F;k{aJNug_sZ zgL}1`%bQGn4No$`!9z{hg9HZ~H8g9S@+kI5Lt~!-cTK1@2$E(k2tXZ;hHNa+Bt3En z0g0qDdDn+&l1t>>p{ILvBynDi=|<|&knQk)K|sPwDk6x?WK|{-dd5|H_N{bsWllB{ zk;_WDep!96L$DhXkCw#KeTtou_Cg}N3OJ5RoZTUO*9Uu^@_i=?H2O>ZX}y59BbOfX z`K3JbT%-OgbbVfSXnZH3Mo}=9<}=|Lm4>`G^evK%;}L&yiY2h0$2chy6_;$fjzij6POxitGJnEjtH^*>@FKO|udfoXlH0*(feH8F)*y}Vt=FD8G27NXd{v+qw1!6!gq+D7Abb&l0>{28kR5ogk@6#ugayT^RoePTQ^K?G}r6$i^2$(=Oua zdeN-kuH|KHc>xzci4A|ixsTDcu;_qXbu`-iwp{-fta%4-{vh1?Vdjn#<#(R0{>-s( z;|cfXALID+r>BFoo7-O&xSPC;&3M_d$~!;G-hMiF$Laj-ANiXfA|@LBY;>OVm?-J>t4 z(o2AP=nV{gj6940d?aM&{SXM=mPGACgh)Y@l$mkK0rT8`-xQ;NFDE_*GxoruUC{6{ zFO6TqhUak3pJDoQv?!kYEX;cnX6q~M37GL4xc(uyNpJrNrt7P5pWE_&u<9jm(IRnv z3l9D^T)GDOegiN52XXnmIBYfaxf%L1ZSUTUy{15y>!5z7>~Sr0B3Q=`S5POpx}l=_ zQomCdk*ULU7tB>6l>;lsWF;~2bY7*(RJvTHx;SMuDw9E~mQ^XzeN{!B$fQtn^Dsd< zJ_JwX6K5Lk6(ko9lUn_nz?#$v#{@q~e-BMe(qZ&;86^$G2gXfEfEy*f6vMiPcn#|m z&(!Fz5nrQWnU_m4$~)*O^b?x%s&wR}(r&iKugo|p01*hk#?7V$sqLEG>xm@tA`LDs z2T1j^h;$nSmmZ1ij<1BP(OF47NN1PA73k=lq|BhppVlWM4FSDp7=7d=JST7%_kD*n z9I0Vl(DD4rK0&{pJoLd9_apr~kf2X2J~Y#e&q3Ene`T2{ce3R!iB7ccp`VvzD`Pa` zw5e1_r>v7xUV-T{Om@I*cTwI$RGcqs24QtyQPl&=2MX#aG7u^*#tzrWE^}1xnX322 z*lE2pY=J!g0#WrHdCfl5Cwb!|F!|r%`d`6yKZomn36s7LV}A+PKMFIp!`z?3_5TbL zwoyZ_`TN+vxF4E!;GEqsf18;1b1~_+-qib}DRb3;sa~%!UY9aV32ON6#b>_9*Miy5 zIO_@27fV3)dhjJ(K0fe%2|)y54^cMPAMiCb=HLArx4HB7JI#k+SL<$NR3v_brRyy!M~g zglGKQ-fsh-@-b{YRekrV#BCpE?>L>g^>oGE?}r=SW-rPiSaKw>@%{8I2c1=WDVnOu z`_fl97imA+Zy$jfx8ul(&}|5GsDYeDEE}76X z%)#?qK1DO}Iw#lLuP7H(1-GwL*;AE87=$#RQ67H>Hk*@L;v_Uq8LJ8F+N3O-2qf)c zQH7{38ulGAxHI9Etd@{?9Ryb2V0XEG1y*A;COQm@B+$#q9F}%dA;}}2!>DaEmXHFZ znVgeNC_T~2Py{t3xD&W*DA)L|!B^^8go35CXrOh2@|7fvR>aU5nn__JOfL*c`0hBu z<@l;bY6fdYbB+5N*?EtC$a5W^U&Qz5QP;6wkRKHU`jX`uDZEh6e2nt;`;tM3@?djL zs@f|{(4r&}u|z{F8>aJmBn3q>^nHcO<}j7z;*@<=Wp7b6#_K-8?a^IS)I(W!sOXDT zy`cPjsJcdUy+U-l$>}i<`;LaXThyo%J?SfZ%GwG{m7(S? z${;vcd?%J;a2$CLfxEEC9uIr@=mknZ>_=03UoU^_F?$7e*(gW+7G~|!R18+WjEi4! zmhX|vHNNi`D_<3>4~UhAotqD-)qC}_8&?8!kjXB=!EzkZ-{Ob71iOc++z*U-R^5Na&pX zTXEwL@#@E5<|BIG3=Q!gz8J6<9N|&I8>bn<$4U2RsFECo&;PC z=v10q4-Ma%l56b9X=HcOc_&llQb8D{xfLcfl9BSxHbL;$`0b`8ikdHat-ME zV505%o_M`W%1q!fxW_}U05olnte3_K`DLvN&(KfzEZ`8toArS{MjuS^0J6{PsVidP zo`%N@7mvTPK;JW&t}UXsE^Sv(0%u z$+df7dp^ycfKdrok-krJb&AVnXO0NP5Ps{ApUXyu$|xZT>Y$S{W$rV zkJER4BsQE1ww%t~e$-w6E>*gqibY2fTaKh}*{+)Y0JC;slScMeV966Oe<@yglNj_B z=jxw$lYiz-`m(y@2JD=KNLcm}@Hy%TI-&WLWgIWi5E5$6pd{!Apecz)b4_xS5+fxv z(33dh($2^OUoQwQ#?B3R-UD*VlQ{cHnE4pYcnGKb8Yew~H~j&pJ;bp708G&Y|3@(4 z5t#ZWw!V(de<#LYjorScF8yn~cnu8Lg6G|Z7p#MUOQBB#^jN^)K2vCL?=lwZ#z5^w zP<ZlbVRe5f>kYYn1OfSak*g$dPnCg&3C#qlG)j^j=w!~zQ@TGD!i^{wiDIPe zgh?hTeP5$_py#=Sptzr2tQho(gQdPvR~WYZkbp1LNUf1HbQ7TynXoEhpBw3+h*O6N zkF4bm0b&^0ZG-r(p~-F>x-`y0JzO-8>KP)fQBuQY+Rfw%+#&JDu=>3emyg@r95q1|*p<(XARfO+>>jZ}58=fwC!+^U>z8cyvdXAA|^m9q@ zQLH{$O`j$_Y2+Qrwj7Q+IKuu`9D$&St530LDnA*@BpWno)e>@oE7d%p)K;oFoWpcy zS=LWgb%0zg2eyg<3uOP#%8{2~?JOLy z-D^0E%l`n={t8BZ7cTo9-0&z&eVA-BQy+rq55csDVLFc~kHVCvVCLsw^v&Ldjb8se zElHIiM0U{1m9Du)O7NWo89nrb?V{fn^nH5~#YX~?D?t#r%M1pS-JZ8Qqwi3cEQCSR zpx@t%i7&~;uUI2|>pm*lvHB3X-Inf$6^C)nyWZAgRd>Iu*1xYd9LwEyGIi@msoU-k zW_RRv#Q)Q<^#A;=eSbv-m;mPsc;%_oJ)h+7IThY|4Az`*HXL`TI^CPN;&oX1wp{tH zx8+r5)gw6T%W%oh;YJSHv_1g~e(B74*fjF@xLZ9BY@4cc~~ z6yJ*@5TPc&f>j!6M@V#@hM$5^la!@u$REY@Kfn|gUZ(sEZ}^$K{@3!RU*qIo!wtWJ z8~zO@Jr2{~Ah-LXe~0UDf}R^;$QR+F<^qMBRU4}KI zq55JPH5%D35>=yR-35ZW!F3hcZd~fN3;Cu~nkc0)k>##Klv$%vNsW?DGQ+8%2~NZh zSQ1H->}&E)^^E0fh|j5Xz&$$F^afB-sh^{U8s*<+LS)4rqtiDvp)FRj5{ zGL$>g;5%vPMj_Gr8M_@xBD*IE-~AZb9R_#B2M~@EYAX`uUF8{dUXnWRnb50IW(?@- zBWW?=MEY3>$`E#!zdqS93EW+_&j+jsk(J(f>S^7hB99!IBuObWj9xDe$j9l?&ucTG zDpXeEdy3{`P2n?HOzOG0nwpU0%k_j!nPs^Ondz-6M>-vcirQg9gL}uZ*mZRK9)unQ{Z-AE+{>SF z=Kao@`c1t0DVX;nnIjwi0JEPV-$BcB6s%gp_`Y0|_mdU(yyt9w3)UXX-*Kw!u9KNN z-!0obTl9tY3w?hnwPkuhsu}w2@o)a5?DL=GK6_lQ|9~3it<&IsEV1P^67QD2tyb=n z%XW&!Ct%KZVC)}Z)+?0%*0NVDdB@xIqPt{`7*UV;6hsc4c8bqJOEeHYXmf%V;a*yj zau%|qABR{i{g3h8AUmDGF8G}>f3fKFT^#oaO#2y3{0U6_JDBiQxatS;x}W2XKZWc6 z3C8~dChmttZ^GiIVA^!(GZlJ&8?I=8o=wnW1@zSrzW{nnhptnh+f>nYGIk!NsX9~) zfpUF66e$VfOPQQhaYfm@p^Qr?9}-MQhCI4R zP8bdGAv<1@n#-#+`TtnaCfyv_Poj|vV+5xPEyTe!0&4IIy(CK$p20G9loMz&^9>j= z>2*A|nH#~{bI8OZ4Er{&L={r3mE;}Igg}`Bn=q*tIZ?tP4c8OCX7QTQYZSKXxyEsZ zb-}ZO23dx0B?LW0%u!>y-Y{xAZ7AOGgmCq}BmZJ?EB7aAr2pkGHLyM7{vfAz1SxjzMdUE=uqw<15KaraYS5s^+{ zDnaFi^*sq?+&mqHupQs!4cl6q6 zWVQXnI#3N6XB7;778ZP5e$OYBpZhp>2lY0h-lXeJ2Ahs}8#FgLOnIJ5cEF--*zky$ z{daKn9?FSmc?A}~Dwh3F+&CV(M0A3>5ri&9c-)w?Ylawjq_ET3sbU(EghUz=6_^UC zU2g&0gOYG-A*N(sM-*v$q)@+0;8P>bWF@4ALDl_uAK`TzhR07*naRCi$9-@@3x zhOu|RWp}}tAHl?L!`N@YWiR3ajqK0DoVhUIJgE9SUUmx%Z-(B>q3;rM#q^v7J@lAN z#bE13L+voA)R=w|RFA@%AyC>H60o^s(j>+Nl{_iag_lUz(fKbKRt|jVHrQ zI+2URlFVfFAm&RO%JOU0sa3$dm=O?(5;~T)bL3NoNk6S$mPK%nXO7Ukn#0GtOqmsG zq)Zq*WdU6;`IRQ-CIl)h;wug72Hy$31>-yYsg$Ir@G&lPdDqMVP7Lk_#3e^%11~b~ zQutn)(Mv{lPtk8uSa#6jfI_bvlTgI^X`pY?rW_;MD4qr=KT9utB3~u-y`r4nM46LI z$`qvzAlc!4wo6j~KcsfDRU)e~J)=oIxhJVweFbL9$>f^vqfY~<8Voi1eh^fz#i7?i z_e-HuBMkT}xbzihJOqpX5w7|wT&8)?-@}A|A})W`XW-)B!%f>n!|iyvbpH`t_b|- zeH-O8H9QZC9)KASQ2~R+d#JF-n)lr;N8F9?B2^|hU3J%~^c^2(Z{O`U|0_&tf_{HN z6=&Mh4ap%>_5+x3FmdxIwfB5d@!5~kw|ziejn*Dl8&3Ee-jpj$3A%%@cn2=r1&#OP zl=V1D6ZT!u{Ck|OVRX4S_)4cfNft&2t$C{e?gZQch79X&IazcQdS^AHI%Bq*lM|(9 z=NTt!OjrWOL0+YXv4tj3#N73Cq9H!;z#oU*|3O{#1-#_5aOqaKcm)i<6EFK4xbi8O z@iw&V#s#0nOS?mEvgmh@bIB6yzXtj?P~f!NBuYB%d;@g3T67*SJ737iJ_>54sUA0} zt|LTEKS^Z;Yq;ECnW=`z(rpr=8c21ehH$AomGnwgIN7w5PP(atoAS9(qP`Cdc^6?y zCelg+O5n4K$~ij*vpDjJ7SZFA9UW$@ye(Pbb2(??wiN83zMpf|HDEo`F23 zw5)@(M8ohGyHn`(^+x29*__hhpVq8A%!e_`yC(9)_a#LOk!+DJt2*@g&FAD# z<@52@Ny(y+Ci2EZNhq&agL0jOBROb+VOpg_nWT`i27R=dV*3BI&MD8yGy%QfD*2N5 zyC(8fO-?9QPE?d78j|(KcpjPe8*j72P50szEAhfj@}i~Th1D_}pI$z+1$VHx zOzb18!5x!89NhPSVu@{G{T#@yM+KD;_hW(|u&Kr`sPJrrPezbwbq9aJxnwO|bUTb} zfeV+wu!msUo6xim7W^w*dnt4o2o<-g5zV6SS~#y6dbUFEMY7jqs`1@%4Ax!abQ`5Q z^nv_ftQZOv6S31stnQ6v9Z6x&=BejV(iBM#Wg_IN0F{`mhfKLhrew0*CC+a0Zj2gZ zG-5+JeG#NosAnkxcM&spi^9eXW65=>X*i_<_yvKY09C$;pc3x0678^MkO?~>JK??! zTAEO&21HgW3NJ;(Tmxl5j&iHH6Ac$Gi|;-Q_n{>B1tGO57~lwYtZUM(G}KB#LkaSD zNWyOEO6j0rKu7wMVVwsM;!AxD^04BJryOG6q|~#NPhnUhbBse~s*Vs-U5P zp1w}(t)yqMK4YbS$wo=RdJ)+r&9uiqto}Mm>O}ylG?H9KCjBa+>Xjl&a~F{WEya>a zNjbXu(F&ELdXuEHWy+}!Z8l962H+<|K~96fLQr{$IqO0Z#kX0^8>Z^ z16+MFx%FMS@-?|^8_e4c4f~<_0Jc6S7XFWHEqFOuVvIQ(%?lDuQFD~Vle>6k7r-4k%Sk|@6IQm$^H;<0TVbT0u|5Zv z9U=q%g5SgB4)Wgpll$N zkASMnv9>RkcfxFipsFv%3B$;4GWDsYf9> zq3xPd`I5-HQOQ~Ow$-%)O4;{~kx^0-KU+l5C>ViZxI|z%Er^na*bn1zeASH|=msTC z9F<)zp20-@E*dEm!6GZ;hPl&A`HEj$BO@=rG<@sNp=YVc5e8M2=lB9GQfr7O51$oe zNNP975I_^YGsGJT&ti`GJc4mta;B1*eync84 zXp-mMX>%R|^xEo)~K3KLNSG?n|eGON>iEG})wWn(D{wQ_( zvGi^4q&GefizoZ31`?$4#&AkWYUxgJPI%_|wx%;%(bUM2As91Yktviw2^ad>1 zgUye_^qshH4>ld(gtx^w^vmMPM_~4U;FQCnb|U0oJV*)u@j#iB*5#6YPzyPiL=kn5CmA=wYA7QlctFk+(`xy_xk9~S)ruKgyA z837%x!p=YS#?2JHSKz=I&}|NOpN-wFhE5kl%`m7Q3e`hIRUhhgS2h4EE`z$EP}7B_ z_8d|H-XvGt)!^pARz4dxTrQ6lFj$+^B*k-^#&?&qF(WrJ zeB1;EH5i!`9uqBO%=H{62>k@hFM*-(Bu{IkW8=9penbX$-wi$H<8h$UGui(!ZTDro zO%i;3n88GrN{m;Xa!py5Ay7_u2`V{&u^_|ToOO2BO6?Zhl~G_cwFeOKPIg0@XOZcJ zUGU0NW}zTx4saDgxiAV08ehDtU&O>?iMjI-{PCppVg$GImH?7KZNFqj&xD5 zE6uE?c*fGOZiY*B(@39*RH{&t%pq@Rf@f>J8Y35c5|SB_u2#7krz|0;mc0h|6eM$y zt`fO2NY_BN4)Oz_>Jq41FD|)B3@pRsIyGzy40&A4--j(Tall0Ay%jEQ#X$jab{m2g z=YsP1#4gfymrYQmTwXshA)>RSOJ8B=P>9PHZD76B6i?|R5=0ilyWPwGIW=Js^uHgb z?t-R&g&V#AV|F8z<32!5Sv8Ye`5N_mTJtWfIbL?_sr(&B)3?5#zvZa9`97R*&i-Zp zpT4zQ&JOXc)q+D#;HH!QmebigKT;b{C2yt1q`~G7qD`+u>o%PKA24M%G{1~3`^A#` z)WkI~@^LX|msohfZF<rh z|9TVzpOEd6Q3#3dP%#Di|4QEQrfPl=CjARsy%H`M2-TXluM)kl!>$e3>uT&UhrEy7 zMrurliVL99w885_^+qzCF?+dF*F)y>kSv2_8lxm7l!i$WWwI!2tc1qN!zB=Wqt)=-8SwB8ZKt*&(v))`WOw5l^bQ9qU5<4- zly?@@xMg{jsZiN6nN89;5M_``232CV3zdVf>H%d#vEyoQSUu)DLfLXP@RulQ!SmL6c>o`pD`Z z1QUNNrrimb-6tkJ;?4dRUh|S5&HZIudf2~tzg)f_mmb6wZ#!#`rf>Nu_nDLF+fL?h zJK?W;(QO(jDxrN*-S%&VywADuBX#@9XzQuOEhoKACsVh+3CoT7#LbgbGaxPE^Us*p z+X8)X7P$X+kiArAw9i!(T#XuWz-!pB3+Ma{ul*;uVmQ=H#_k)`pm9)jBh+699miwc zl~^+dYX(z09@1gX$EyCKqBG_?h;*IE4D_liRJwv19uYTBVOUPeOq8TR98vX9M4S*r zGA^h4hYG#G4NYpkvF?!pCe{bc9*=QcSO-h&2sAuhSc=U_J;cyW8mED2lPkn{9a`uY z8WuGI8glBh>Oxj=)*_4_+yI>8Sa2t{YiPTk1Ed993!3~PDNq?Y35WQv24=^147mG- zN_!q9%1hQ^xYL{{f;*FUBeEmP0^BpWGp8obZuAyojn{mf)(4u)OY5sqR>`q>PZUA5 zH4Fp;H_vUX=DP(7FIcxRGaNa5V#kg&aRM~Is+l!?+xAZxr;YVTCcLy>ib;j87g5nyRd>R&VbHl%4!8=tDo_{5uD3a(f9FnnJy`w? zHR(dAb$G3Iu9Nnh;I2O13hBnHRsD6&SP-|leDp*Tv5~AmwhA9W&o1LcuidctX;}0F zG5G;C<4H~1aq)|=cn7rX_gC#z%U-0)*h}B?HylgfaXh^BM5sC6?I*%b8sFE8p};+S z{-+V^|G)kBZfSI%QY|O_t;Z9aPXwD!_?u5en>Dx}!PSST@niEBVa&h4wY#WNZo`XI z`@i)CXxs)1cZ;UKcdo94jLkTO(41Z&CUTf6IWNhZl^5wW?X>t??In9e87LaL&Ib2$ z;=9xKygy@4(Kp!zDjtq-gXdwd2~aZ>$}fiwmt%+inC}hQ zUXbew+1`*Fp=yVynr_^?r-q&EfoVmANe_cagjEFeiHK=?rI*ROX=7eAWH9!A1O|33 zxW{Rt1xE+hU2%;WPH|}$)6qg1uFcx9ejQHj@i|4aK*N2b;RJ5NwXbQBJq(hL&1N!m z-gB+SVkQztSc{8mTrTX94-6XWci}hU(gLLLc*g&(*^K0XDk&RQ4=#QZxnAQp==qd}!yWp9I4t6!-o6n~A7~$TCEe@|d z*idiml}>E3bj^HeCK5E}dZWMFnNR;LJV!FbbGk1DS`{ZZY4VO_rVPo~cm|y$}hsM<3+cnFrZwo@F2YyhkssOaoAt-l4`jY zdI~Fud;e{4cRmH&y|#c}8nrru$QLY(0 z=Iz+BOApaZ!BywxW4YTua5jGEtUHyt_Dv`%Rf|`PIz06 zCpR4nHy-yk9QQZ8O}^J9uR!BLXW4(^43pT#4V4z{jK?2wPJiss3o5xFyD#mz6~>hY zyx0)Qxk%XN{7bu0g`Y81A4MDw| zW5OP2@?I6>JTg#+2|rBRO&6H_flRz;kfsvlyWCs{owy@h2N0(Xa*yBVy)({L59Cm7sK zva4X|=L$By#cp&>a6-nai?pdshNN4q#&zw~Xw3e6j4w^1Z-KMx`*;XSccLLt|BQ5i z#`mn7O;Gdh$Y+QTAWATCxh&DShpH;m=ZRkAp+0lUyF%4;>^W2PSKv;Be(S`@`<(Gd zf}8)@om36k5}f_-%Q9!13(i3E((SNhc;`B}sOqF3aW(XLoVeQJ?a*YJcxcA9g9O;7 z?bx(awCsf?hvn*H`P<%C8$J|kPv>qqmDqIJTfbMdmeGr}pIcFrX_pv3RrUQOf7gk` zt;eHVj%9B@>a2UuS+^Hjcf-Ox(0ouX+fJP>G^{u5q{N4XTp@kl{V@3+7&F%GHCR=d zd^v~w=6*;}Xdqj|fu9jc9}}iD*tt&1v&Y$1$WnTK#wFpjg?`$j>F1@;=~AZwBb7tQ`$ii=CNP!Q5MOp5#2L}(d0y2dACGC6HPHOB6e7zZyW%G|~<~$Bc zhrApKB?nhcBC8ZZp#LjXNJ*_M#G7K1ap9WK#gK~zr>aD{7IPKc&Z!2n)mT;w`HooD z==HCId_CqiIv35AgP&3J4yvXm9OM@33P>LAS(q-{BKsN4{Y-Ed5LCMZRmD zzy%|XOO3>O7oy9d*WbX{XK|sX?N87}-SmQ{?a=f*H132ZZpgRzpj>ezv-u5Y^*d_y z@zmyH;f7=Wx(}l@H>j@v(}?wd^46Z)?CEcGS9s+owO>A-y7hQ+>&fbSj>xsIsZ}pf zYp!{Fu=!Oa{=SPEUubY&unp$D1dATT$t&=JY1nsC&?gchoq}k6xUPw&#!_H_35UQv zsh&gXUILVg1C+5cE+w{Z)XW_B7d; zdox=w+_TkE*#CVrD!i~2YzmoE!1&G$1MGY89AIrHEZXR=8Mt0#SiIz=mEbCp0*yFE zC8;&~hhEZ2fEVmC4~wU3XcQ$8;H0axSaI@*G9r>&Ibt4W>6aeOuLq zUxBL*W9x6k)UH(T+MKT9{|2}hfm@TOtV*Z?xVKprhb8yE{xE5XOlpW;eDHkWcgLC= zu>a50)Tc$`pBdbDK=U?g$k+G+wU=sr1(qCCD_?h49TZF6c2|Aium8YZ`+juusoch| zxmUF(7&LB~b|}uU!`=H;IP;U*dygfy9E&!c?(n%I>gL08g$DPhVb;sobP!tikSuQsym{p8S!9SE^D++)rWSnxw6RiVWN*{HMTy9Ff#Mmv2Om8d3#Nb{)a2^FT zw{97T9W}y&xG}$*FsZV>c;y-0pUg8nhgt8uA>)RgThEMJ0C!`dG5BsWr_8}X%L1Aj zu?XmPoAakasRBe6Y9!P4w)iedpCNqL8#cEv)%b1L`Z&zrPF{&tP20Ca;|>P*eFW~y58&ec*!oVe<^y;2QD@DE(YlY* z8y|LOr|A>6lUw^lcHpnn36k5qmQQNFpppGUciqQTpZg%(_=dAmqxq9CV=pd#jVi`9 zKR|7aZrl!YUxbG3V&ScL@odpIMYTY=HHRV%-hcbqG`r zgQ_cK$I-G*bN24kJhP0LJLak&)!nJ+>Xm1yiD;M>i3C+9ag!S8sqI`~Q%t$jG~4E= zbcxHf-GI91@jn>AMcx`_S@|F8mcqv&ua2jVps8N&}Y9#)6M!`51$|6EK zwL2}`GYv0LcryW5ST|a{C`3Em7~JD5Cw|m^o;a+k$vfw!#>uYnV0x|?!Hrg<*plzC zrP7*bq@F7DoMfNkih}u_f~x_yG@?p&f?V)n5#KFOr?Z;%clJ<9o7x&u9z!x>d{00! z1L<(emj8EPoA@MUQHzL@lR96c60htwA-L@1PHFR|isVo@X# z63?XV1@dle>1}v@tlI#IozZ4{UHp~#R$2yGS zbpU&2g!!n(;cj&p-d~*i`O~u6E(%%@r+q5IbbiR*o76Dlf@jBMVaa8jOL~&t-G8uisKr#WT3}%v;?f~UeWUngBcfyLz{-}xA>QdZ`@t4Y*cQ z^=GNoaMSb5-(Q5qkHg%DaN0|g`gqGCe} z{~oUXqPV0Uautx~g`VXFT)iu_ClE#gH3&wgKPvTV7hzjvux*IHi0}3k^eAz$#Q25h zG|v>64(SGipkjxd`Knm(*Dz*1jQEwfdLUPGyxX~O5M(a_P0|x}km?A@!J?u+mg(&- zknV}uK~5#LtHv={}kDGHVpieGwUUP(KXPG9pds_;NFI_qYO|4XE`8!yA-yUPZZ<39s!mVRTW$_ z72=B#?L}H(?m+@FSxilJ`)?ALKFbxvo@ac20T%Dp16#L?#vQV0hicm8v>Xmr9)_hF z+&@fh_$asKSYqR3?DjtmUH`{!?KwkrB6N8xy!mw9UwtGupHv&(^VS_nZ+s zm>(d@hN!BZnCk$k4v_3Ea=m0eN!>OgYFf?47>~g{L0R1tK{Y+Bvx$r+Dan>Qng$-H zn-alCKf%YdC~vC>#M$t+no1$J-m1VRUEYGModB#Qu?XwN&SHFBQ=P`6G6r0c zMkakK=%4O{<>i=-ATt{4$72r{f=-ZMDu!JRy?-vQKctp?4=0pUY*YR3z+F#crHR~j z2vJztnyaP_xN9Qf*-NbS7!qMBImNp8I(j_{$qySeFaH641r8Lj`g z%NI|%n?F(;-h>seT`f2t>S`dB1CFM0 zM|OPkWK$a4MS^v9 zqUtUNc@>qbl;jR)KJ~38|GvV=p?lA>t*EImuc7u4_q`LQMmc*2Jtv5jW!JW<;OtN^ zR!Hgk9+e6ZMd5|Da+7ByjM3Xf0+mr+%rT^`bH2Xme-v9y3eV;2d{)~v={Bm1F`^h* z#zatyFBnHS?I^ zu5rAScqLUK;>vy)0(3JC2tHn_!s5d*G7B?nWfN<`Btx0}Rimv-Q_r$M?FGk~3(5?j z#})7cR%SdV@?J?y)nhMwWU`zJT0E&$RA7=y2OEE+=I^0QW}Hj{lXZeR^W_QLlO3^q zyzCJ{)(2;n8Z=4ty8}k=a$0x!jaSQ_Skw~FC^K+|uh(rGbNVz_JA*rSkdGz!(gWyO zAvL5dWVD)E9eSOe>@R8;hv(e^V|GK!4vMB~=HB`OEO`!Ew#(+{RHMFsLAJaC&4+R6 z`_bB?;o6f`w;j)HoeDkM86dVpE2O@Bo8bKS(pyds`0_{o)>F}z*Kp}UvGjw?rWaN7 zv!X%I-rGgPPSN;^Z2i8N@NF3PsGReRJEsri&xeXiNL!xHAl_S*bx~<^>R1krHteIX zfmi`N7p4~@MP?6eE3TkYVhlLr0w`P_Bo3q@xLXW+73b}MX{+#p796xu4vE0&E%U2` zfy1zJ7?cfy+$g9V1ZBN6nnSu866JbeR3lQAGNms7^0SMGnn4qk2MNht=t_L+`yv z+0t63sa|Ytbgf&wP~y=fqZ)K0$TMoVD$&8&23{f%nTHIU=89mZGy?Tz&~WU#wueTH z*Ts?p21a9(pV{C??F+UUg>b0BUuO5kz<4nk%2*o>xW^TPOUS-sRCtq#YNsWm8iB1- zW4|3rVT`I)!yzuO?-MGK!c1SM zssb}a_Ftg!ga>H5}(9V#sU4lC#&8MsHd^fRvFSfky zt=NT&p2GRtq{jD!J7vQz(fT`_dLNAam6-B#cd}kxR+79Jve-v1F%t5)>9b^d8~bFe z%%WGX;tWo4&OmEXQar=*bvC$Ld}kgiF2Kq^s~Zl=1rNdatD);MF=!liRv<1_HS<;X zfmFROI~2+;fhxV-5t0=U<){Lb9$|(*w#&X3YNp|(Tn2ZJntCSHNZBrK8r+GnhXm_p zP>PdJeMo3s9Fl*AtnRE?dqq_@R>@^Sd>2KelW|F`5;ewxyXyo62zJ>UW003gt8GGE zz;{M}Ck~$$xwGk%R08fs5Vvzc!RulR2B3}fvMi%SCY;5Wn---B__!~9*)^Z-ozB~01|^PhzU&qBjaY}_MS56Y#l zd#m5_SHJBqKNhV#6>aze3~x6*_u8#2qv3BIjCkMQaJuikC*2LF%WgYbe#a}=@**zU z0S!;<|6{Rmhg`IiN>40$4(2}uQ@({)e_f36h@PACkFCKhS(r)#l%Qm3djY$Bm(4S0 zdfv|s?q>vDKZUsy|02zl4TWMW4msj9ydvk^0~d^gE*s&3&X5T}&6C~7iVlOJT!Z_C zP<8>i9t~%YGGM@+q;{XG08)vVOpr?XDJmqu6-cZfF(&VNXl|aQCY)4?AYc}695uw> zS*)kJkGzDpW{g-3w_r`Wxk*-ZxKWOkUrPCVDYz?X9W@wZZrq5@W~(yLyN+XOauqry z6{@IP4r|La(uS4JjnhUHj4r~lDmhrY4&ycIBYih?9KXQaIfE37h+Hy@Sf7jyw3gC# z6^kkkTIy|P2&2f0LJStLpwAQnyr!2^De&2KKwNcF#fHd&XcNx|c5YCG;s;Fm4WRq{ zTnpJ8H1@$X#IU5kWax8%ysBPou%W1|QeiCP1P=A`ja-cM`Y#FTG-f)<^2tsQeQu;6 zm@CgaA3M#2A>V@=54)>xk(ct~#(Z&We>87&w$;6@VXQ=dKZChrR6?7g!j&b+&z2|# zUG09~R1SGQxLf`Fr82 z_oJ1k!wp}B(N24T#P$j9NGF1GJ6!&*zv)!Jdrx{BKk_zwkhyK2Sh`QOynv0Gxj&0~ z_HNSP{v4GYX!tEoZGj#&%?4V zn7+`fsuigUkt*Z+3YAW&go%+RG_o60GX{kUEvCV#$0m2Z22ZPGf;yuTZP(&$3a zkMv;K-8Z>T1_i9%5;u(2C~3GM3Aie5J;9!C6or|<_{WPOP*Hpx*QUIdnj@913ua0! z8fAuaHH{i$Q66IoFJhUoHq6~g*D7@ zj+@PU5~lkH*y;r){SB-ZPk(ZjQ{Xru6=LI}G%Vfts#wf`^cmMlxGFNS)<`5mOt=vG zRBk$%fovMHSE`OZv0VS2<5c%1HDox{-vL)X=d?Z(E$Rw6D3QX>mBeK6U5KK^prF4~ zMAS)^F!4~)p9aATP;Lj37H@TVUO*f1-88~5*{t(af6D;ks|YB@uo2_HZj^sJ17JcR^kVwRghkBZ;l2x_|yd zf9(fi<$KZE18VUhZ|Pot>62=~4%zsUYI#|->?E_)f(LQ>ROq_^dt25C-T*gOEtARu zZV4!tmJ{GLU;-2Pse(+&vx*r^1#mw*j#~7#3lKNM;A67+8FAw(7kYXsn5kEp3U)o_WFjw9WhzzfrOQ)UliMPt=|>uaN#zjp) z^{g^7mVH|?E=x-R7qpi`eS-K;0fqShO|o&^(Mc3+m$9HPtO>HMf?qH`^1F!GEN>PW zqM*XZgW=xbxD{t?4?hy$3j?eI;fUpH2h43QS~? z$ooXU+bpTC6xm7SmIg!Xp=vJl|L1VZdzEW%cQ1D7cRt$|dCqz==co!v4QgaU3Jc{Z zOE6vUq!Cl7Vq_~4R+=|ihjeju#{3#N^j5h1F_^E%)3ESavdJ~>Qmxx$(+<)6n!9?R zvviMWJs_99pV)9bee=ou`X8v#Q?agnC^PNQ=dQm=65Mq#?CUW8?c}D9>ppihSoa<* zf74xlz-iIr)o|G#xcQ2w5H;GVDnVZ2KO@x&d@Tp6J(x(n~q@9eQ?F)P(KPfu7ZADDRnUVyc~2r zb{Ybe=R-v=>Rz9$qW1P-1b&hw@`NBzCQXK2%%;qU>2Be%(5yLln$lJ1$OJWNNTdV} zsy9GH-VYhvL%OO-mf?mT6k?@X1+rKPAZF91%QF=oC^bZ~KhLvuwPJAR?P9@zqS-Mn zVs4Ii*ldGwn+qXI)qKY$@y9qQ;y0CX^tFJD7S`h#h*uSgz+F)CD#k~~a2(h5EpTLl zdn2{|{}SD%5R&C1RRP>>{;DZHV@x&VgLF&4I!@-aB@Kw?oA29pUWrYXaS0kI zJXCb!_!#qazyi4YdLrY8Xsu~07Q|5#qs}{V`AJ@QX?Ugjk)A^ZfwL-=pou?OiTSQr zUM{koWyMXhZ$y@JcY^5A2Wl^at{ddV+fq$WISU1s3k`;TaHC5j^)??n>%Ku?9)D~y0H#emCy0aNB`Wf7KIKTCi>bsAn zHXnf%ud5}mI<5Ov^C5r9{W$rLYW7a2ahGg-4(2}!Gk*(HM?&{%T2%URFGsx~3@WJG zwbLd6mC~1rtYsL~y2210prQlvl>d!`Y(%cm|OQHV>XnhS9d)hdD zjT+X=B{$fk9v$33l?uQTva?mD2=4kaW~V&0YKjD1(uMjhajR&{+-(vQI5FCK>??N+ z%NDl0S6qQT26q_?_x2Sy+*(K+6*jC|sO!s5fi^;o1OGRuzeLc2sTXxz%dgj1uUVg?K63V;tjlw{;?wO%5 z=68y|DC({irbIFY=^SP>bC;OB47&Bey#BIdMEz7burJiD!;wGqZ+O#Nyh03hYy|Zj zNla%%P4yX47Wsh_gS)2c=2C*lf_qHi8P=2bo-Z^3VG@$^4C^FC{`GmAbRejL?0qot zPcZihSnwPydKMQwhl~CU^B;uidey$iS+bkV(2a+kr6;mmkNL}vr`G+W7`GY9HVaWY()1LBMKdHF;qs*4~aphsPbiZmjAX{GZmOSCk`3+9lCK{d> z3!Z?PzlW*6gDIn+tKjAvG0v(Ch8;vwv|;Y0)!XT?5W=1!>s$HnQ^c9l+A`o5H`n4z7D&EPerIe-Fl91>Kh7par5&2*H)AZoN0)0;m`W<@J#1M&M3#UW0p5 zQ*7?0WZI8KZZgt4;(FhvwxX}7ZJq{q54^NU~iIiz7&6Q+|wGE183@l-{Zg+I3 zYFIp%m~PrKt~p$q>1qrEz<;p2qt z$_Wak2LccEeDQt_xJZ?U0Id0P${3N2Xtg3%z$z@jz@2%oGWtuIz zDhHMe2ODX~DR|XORQM8kz2KQK#SCnj_`(cPVw^{};Dd~zyim}_lq)c)3I7*+-vJ#* zk#_r4Rp*`=<(y?nwrts!bGGH2vn*R#a?Uw}0h62oljH7^mK+T@kinz{Y!jUcONRB5 zcUi#RS6@|kPtVBgkKg&v;~le29WfsDjAo>sTeoiA?|!fUroKd`z6ewJjb}*13!KQ) z8T;t8LuA$mF!$@2)&GoH^>c99v5aL$mFhFJj{nu%|35t>xSvb;p@2%VUd*^622%;n}nBKKdB z;o3R8k{}>=^Ht_vWSBPN3WZ_MjH}OJ(qxp8#;?!dx|q}R3!uy2p#FB~dlqyU2?dqV z@>bF-8{!hcUcy?IKtfBD+5?#o%!VKb_f+KFSW0R$?0sr#vVolB>{w8Wo$Z7%26F`{ z!nckI^}6soIvb~ac;K#!VF|>?ub8f5$bYJ`HHQo$QSPMW#fC=T@#mmxY^h@vx5 zm?bM{xH*kCbnG#!@gX8{ zOxayTXQo&2#Hgz2CPQGQ0^A*CNopV(7F9|4-VOfsYL{Fa3{rBRABG5Ur>_Xy1$%R?aH88-4An0Pj{ zKOZ`choW#sUWkd4#h>r&=NUd}$F3pO!R9hyBc&WS! z_Ke2f)<|g)+|k3XBeEMdI5u`6!dN2a*D&24*&${NWXBd%65I_;dlxw~B5+aXL>R&w zp~P)Dgu#b0|HR?!;Wnh6AWlV)vLM0tdgn&e*Gg#62ks8Fr$V2Rm8&AbMsHy4ZeT;7Ahj=&DbJEAyUAou+jntrhsKu>-y08- z86T=QuqzcfMYo2_3#vR{W5-{-?}M|1?(q z7<1-_Z0-RvZ7Pt+GJ-{Zg7nvMepiW_mBY#q0J&F9Sbeikd7T7)dqb4%c!8a zsSxN&lhPo-IeRV%WkV>9g>r*Qae7EJfHoW_J8?B@QCyB&sS@1XVc}*e0=+B32<9$8 z+$LzGLE27j8#NgY?xxe23Bg?`9@4Gol6NXNKSlI@(wv}5T{hC|T$1&#qnnQ(+I0ND#zQ-oCI*70sG&89s3qpeF5ZX=qC+?F z%^4zV*9i^-rmEovs;;lbgKUS414L;i9?CNoE`{Z@lruarM?RHLsBtxS3GV*qL2ryB z&JZVC*gb=aWW)ygN)hG`7RiLOj}w>+e(SaWA4Aq+5Px# zMQo+wC(a7lAyW@U2<|lKL-rtGz(y#A#yQohf>-GfSV+5VApIXD4bQ;j=U~bUbn14f zeh4PL3{zf&##dqTA(-`Gy$^Co&J-fI!;yMv6YugD8e2r+ZTTkjx>tgfc0xHn!C=mBAxHfhAIW^GTQH5wedPqwgg&N zL1AZ-d5O_$HYtn+eVURtO38`=r45N~%MzNicuw9E!H#D^OABHr8X}S1&0Ci)L%_;U zQ?n7=sV)-1Oj{6k^uq|?wxlcrhGgh6aY5)XctbLG*<_XDJBLe+IDJ#aR;o%p=Zqx6 z{+>jUjW4_;0GSkqE%6Yt#ipp}=f|H`7nQV*XpVO}dW#~w_E(=*dHl#lCk}5pad5+l zLmO5!bhi{szAy~~A#izt$Sz)_>UM^bGm1cSS*1d-bv0s{(${XaBX`-(+!Z@>m!EXp zlRf|J>>jO!gWl-DCvPa zP5_Az>qPsB-Bixc(jaC%?ajgcDQI|-)bFNKo}*JAA(M8IN&7_9%wCxCt}^dqebFcC zqVHqZoXA}JQ}XIV_M9Fx<2S~y|E1%!1@|_P{0f`)lXdp-!mVFxE52llKV=J!Vp7=T z?PT0-FzjWhei>@^LE}DjO4aUw@$*Uho;2UP>}Ukt#vths^|f~VRp9O~T#^d{%;%!S zh?OwI=eCW0u+75%9?lfnk+M_+h#er5sb6U~(5a@|uq!25K1d>TG zjRq6ckdD363^5#J*RaR5A;~+xVW^g9f~uQTaCW5UrUY*O&wMp)Th5Y4b64{57>-r$ zZM^YN&XQX)XKhWZU63#&MTwJ+NpJGtV{XD=fh@mj?8;rSJ#SgQo~BW^9joY|EwNba z4d5b!fk;OXX~P`ZIbQ2j@7JmD=L4Hh9N2K;;KqL++Q{+!wTG4lwE(7`5t&qs%L{(8 z(4Yk0cbL1=0ED>VC#ot!B8hTc#+2_`UH5CofuarNq0Yn?D^?fVGwPi2p)UTNSUKKr zezE_Yr}I~%7Za3kTVCtG|E}!0xN}Q<;0|MtGmGTgzi-)ea}`M&$;9q`;5QSMaR^YhcR-Xk(2i;q4%>e@kOZKLmKu$J*V(5 zK;s&pk-&T$(`rFdZFSXGDU#uWF9?ypN9Y5&64_py62KJvJ(kKsMLbSE}8= zwPxQ(hpmOqYoSYT$f{JD*V7_S__M*D2szonKiP3b5X`5sxhyV&#U!&(fY~B3#sPO} zOf(ea#Ufo@C^J-&V#5-lVD3OQgO8fnUcVA1jul_Y(J(-5Ke+EJxZu|VjT~L<=2Avy z0@F3&z87%_rl-R=wB0#D51D~SZ<={raQ2_}uRnf}gZri*_HSq$)j`9W1J2gb;3R3g z)6^U1X+`*O#1w+R5J#4Ad#Ea$3!l;}pBC58)4|V79uxK5j%G8z;La(wMU1F(ZqA%V zs8XP%M%}+9wF>=CZ((_(DIaC_P&DiW0jyV>L_k9kH-8Hg$+8!mi?H#?jP~zd;yF8Zm#*nUUryHe}hck1|wb~9MG%z*dxIGMX0(KhLk{> zRNFO-RE#0fm>z}iP4|DoJE)doW``^l4GEt2v8hVqXYTkljU>Jts{2r%b~*IDkaS-F zrR^boq1tx7+M08l5)#u$^9mr;lO#8TP$~oyNl?~~qEQ5!9b2N6niHQZ>qsTIqlH|` z*+dtbj43x!<=&|QCSSat5>nilIYX7CSgZ`bD8AxU!97(;aJV^@IPO3^B0D$~UM0S7 z5q)HzlJEC#JbrM~i6fiecwpW?-(1g8{`jHIA3wdkFfBm`hu{m&u6YxN^u;T(bsv+O zJCO~tMOwP@cH#O{dgY%LU!I{PNI|11>rY}aPJX0I-dpOKQRiHcGJ#U1zg-e_|ANH9 z#0j1hZ9^#I%au-vkkk{Jts;Fcr-Pp|s@{y7)&dKi#4cDw^|hyV z`frPmk}Om5f2KV0ZjmY>sZgz1`1D4a0l^zrb7F#?K8g%obf~2 zg`cqbAF7MLPCoZoVC7%g+*hGNs_l=$gcqRhIpEWKD--CTUD$WPLZkQ+X#ws$oThBbrDad4u@v{U~`^l6ShE~YFgX~h3z0|sn(`K zFX9ZSJxd&>WTk+W4uKdjLc|KOARj>tYBx>Ivh;xBZlyZij=Vk0aOtcGoj=@t_VL4;P8?Ww;=qO1oikjz;Kh5y)=?TZ9x+786;_`r!UZoX zq*Mv+qA4r>a=vPL^{Kx8l}RI|VSjt>(x~?(_eH7D#6_qX8x|~$diczQ{v1-L#Fs_g zKPJ=>0iDQ7D8?xNk3E}zrvIFGn_oo5aYpj!Q+?Tw=B;21pPAxMq4GyCrYH)(La<+; z!cF}*4*LTcu?wmmgSsc6 z@kxwypZo$$dlYJ4CR2}+xu5AvzqD6=p)UVE_Uv!W1wWWe=fG)Vm4VY6+y_AJUqeg3 zvDf@7`GU{2MSmspKhPF^m9XX`ZNcj>6u5hWjO~MaKL=?l#o$%WDTawL9Yz4GE1>s}%IpWokTapf z2*{fWMa2-efVIveu?$#un$nFXHRp5*W4yE=wPKV|k{O#9pKPQ35&bX>+{DLl*E+;6 z@m;j2bG+l=E+X0y+;uTHxIdJ$sp|;HID7UU&SBwVyn@A}$z2_!ix! z98E@S)e1Md=4{W3BuJ^bi;f~%mYN*(+V0MtS7x{3qp#g+V4(FGNuxh)aaq(kH)YP0 z;Qm(OI{*E93eIynqoTpl!RYDneWM;eEL6%N^_-M(QTMkq@T3n`xLsjuB6DZH&og=#=$=^u7 zbWjk_JgHSC65PSF5p&4q7pmMu^@DrlkbA8pV9;RXr%d9zHkcHgP0Maa_e9O3Q1>`# zcnTVyf(DN4FF@l#I{PDa@fXJO&y*#{j1~WgKkI8_!S~wI0Hi=$zu}O3+Cbsy+(WfH zWbR>8{$Zc}L*m-+f~!6v3*UpeA8QLfF&4c6Q(uDmmx2Gis~>{#PeSG6F!4GVJPW$y z(R4wjWsJKKkPaE2ZHA&-z*mp=lQ=9a1oGRT)b&+mob@Bqd3N0dRnh)nbzDxCA?ve;9J2GzXj4(gDTVc{go4!$vX_!ho5+B-+4NmXO*2R$(eVQ(W$s=LpiQYA&;m39+#Q{r zIwFj}RMpF(v0d@gv{`7B(sDKF{Wz(59BLke+Felh7^%C1j@t#*Z;}~Dl)3M#3qN8D zKZJQ-2haFE_RMe0CGWAR#n^)FzsLXIhYqZgmGTwYH`dDUL#uy?UGu53=!utPmds-M9vmzsNF%q(c1Pt%AG$|E&#N$34>k4=*xjWB}KsBf8(C-Bv- zC90)F15D7zDS1bgs;9`vOQHKjC>jdcZ6LNn$*Wb0f}qEMK7nKxLQFg|eNLLJ1Qtv% zVs&Z>qKXAO3I}dci7LR|w9O!<+A_DF2Erw7SDHS--4sEOoEQJC_)0$tJe0H4>Bl52 zfTPP`34XCrXY(KP zP>V=X9>TZQ0+OdFZ7JCKkg}3>Ig9nag^b&;O&>*ClCa?3G&{`mm3chLLQhUO_t8hy zX)tQ9RVp+5yC#d(NXVt_Ry>OzNDHoq(NA;E4t0-;aX*=K2^shtdMKv8MW(+6(~rXJ zkI4M5f~&u_SAT0R-2ub1kky@5$LW^m4x&_J0x7;#8T*C4Ys&L&f?d@5F4)*SvjqX%hw2}UNjvMV!C(v8j&DwMqI?< z?IRELaly-1uNSJF-&Je=NPBFBt`*R1AY?Uz*m1PkSe9pkmJNYQnwx^QVvfj0fS5^I zOrjYpvK~zdi2R13STY|`Zm44FfZ|lut0Ilvi3W2lgHADORuhoAI%BdWLW5=efFX*T zq9%aL(&{B0zB0Wb>fxzMypxIOW*#okZ~$F%+J>N3j&>IZ+y(SAqa-i= zA8)NczJJ}n4{tt!W6Ozmx88M0)z62-KM!q^;QrJ8b!(^hGHLi}U2qqruujyB?uH65 zCPKSbCq*mQJ+0<$5`a^J6r?uiy#90U$ePP%sXixT{mjv1P?li=+@Hu>ao#Tn$QV8cahlQf``Z7uX8tHRIKDfb%F!{Y5#jq{ils2i3$Ko+F{u#GKPE9Gw8-q5MB?Hh z*p*~2q22!kBj2V|*V4WUPLsN?nW~>WdF3GCMX;{LP!b`sEBsE}YZb;yDOn{Ipp_;tPt4stZ+EX)Ie(vF;iGx1_=a3`DK7w zAtj(=BV$Q*u`{Z!SOLvO`y;+IAL3o%*yl_F%U^*l1x)+;*7*GZU})>+|=D{ z9(7JXyR`((ZIOCCp99=fELD09ogN*+%HlF>4}T4@Uuw!;ua2nVGIuH0T(D^PiNl-F z*e;>`Fh}!^$2p)M+9-y&=kO+u{@=a2rbkJ-E*~yM9+@VFuTz&fVq!xTi-S~^(`W7K zCOgSlYNFe7!znRsI(yBFAI!nMwuyg~vwnqykzIoOk)lohbDqsVLq#!Lk21O6n>}9u zI&+3NW+X)G^`l}taNNzaqPGgJ%4~GO9U(j0OuRRDe$+XwgV_??6^ZUbYR7*vRqm!T z7u=bfUP;BB!aQThwtT9*u*LPPQ#%G?6tEZ=3-m7SSavJ~iy>tY6kN?lK1wUMD-{W0 z>Z3L_%!s^FA9HWIcZ%R1&?LCi2yiD3#78~KD1o#aVCb{hrvdT(ag0_S^E6a*On(_G znDA4-NAygD82r*f(w03pWRYb!SQvXn}VJ@nC^a+ ziDn+SYc9BJR4>U-|NP|(jvo;6%VCM*n>o<`ynnr{WBRuX?kDzNc;dhXSDiV^E$((WQAt&%dkrQB1kj_vVa&Z4LjJ}bUFmBp(>JM$F%qjKDq zJ)7fcb1Na@0YuBNiSp;Oz$<|~hxN&R#Kc{=Cyio@LH zKB_CYD-KV00`&2Q>X3K5#}LkU?CRx#yF#r#kX?v{KWe4cY6M0_2AV@^Z^*fb4EZA& zwO^my4RXZlO>YA3c!P;WTcq*P{}J<53(}Ae--DPi!|#EBAK$T^Jp`wd_76h&QwZy| z9Nh1KF;~KnCrQn7(C`vW{tH4p_GUT^v)`u+J~vmr6SMSLt$aRhb9&@K{w|Ij7V`{k z{K-D=AAxf|Q5PL0(+|Vcx3NiX{b88-CQN$)>Yl``iN?P`!}C!01gTz5y7$%c10)~{ z-khtDgoE1cXq`PmZ8yTIizM|YiGK8u-FcuY?q5LLerVL(s+3&;-R43`f5>hPNv%lI zW~);+iB&)yz*2j#Wd4qlXpn<@x)B#rL#7&Vz+KqGLE_(BPMMb!VP)KCilNKzoeVlToWmb9I~V2nv;%W#aHHQX-M1AAS5<&1DcP1U@8OVtT!f8-#3aKpb3u0O$H{m7<&e|*`Aqgbl??*r=vm)|4{R*yWk zEMx@av>|GmG)L=~h8)z~Ri{}8!!=Ema{X(@%A`@c=uG?TOI!V8W73!f;*Ew zNTJ3^7Eh^=Xher@2i%#AmK4$OGH`~X;e9a8X+u*ue0QWd)68}O2;@U@U&vcZy57u2 zA2DXHq}^n(g==_^U_2DBSgXn6IP#+ezEl~hyyM4HFn5r*y;;F1r0L6*?)RWkqTzA; zfHyo!YM(+)rr|kge4g+RJ4g0uZ@_ePL$amc2G076G4(|@VJM{k)`<1r<5wT0O8P5w z#^1Cv{uOhYe= zu^v?;j$Gq6xpQ#u-8TEHy=#vnd~Zf>eqcQxA3d{r^~`}~?F;5rb^mzx8V>png~vHy z<4*@SuAS3g`rKtC877oT@{SXR>Burbv6l#(vdR7KtoboC6l8&r65N@){Qm;n=Oqs0 zAUZW6+T=bVt_#Op1BZ&>ZW{dSQ~9g?=X}uO64T_kudYdr-o*Y7_9|t-VSV~8ePRgPRZ5M^h*$&@i_!q2)-SJd{ormZBq+3Xeh)flR2q!v z>>jS|Sx>U6 z*UjqIB=)yPtp6Ur`mjN}lT0{9SN=1!_S?{!59!=@$;`uK`gRz<3&y`H+>kqH&J|Vpb638uVV~uhIv; zD854W(~!ec{2gbDFg^;R9gZT1vqHQ7JmWaWZdZ^wzJJ{}d)AKc+gyZ#;pEgXx&v;j z9^53s9VdW8o4>BnbH1I~0UjJgj*`~!|U%NKz)QZk-&6yS8 zk3(!n6D0o6)nw!rtXs;YdgNV-GsJBGi>=iaq0C@U50N>;F!?!{elW7pZxHG`vcuy-jAnMrJ&T)h(4D!=i7sGd@?Bzr<>{ zX~PX*zcph0_xN>(+)S7VCC6atSH>AXCT;vsU2v4le22_@1jgNr*wlMXcD zx!|q~O-4vVj-ka>W}IDCd4I)__Q#K2 zk8Jt(;VrnudT`@)=Zu!Q#7?%b+*1|RunZwaME)|phaJ63{7d7dX6LlhvIC-vp#$zD z@PAR-%11jpS69_PWKE5_Ki!Dsm@6@z502mg-H1*W%bCjwIRDned5cf==bo81T231R z+;KP6bxyjLNalgN=ENgQ@tw&VPR+Aua$*Vz9{2M#P+CBWiQ0%VNG)j3IEz<0LRvkv zTR=KLq>lSGuwa(iUcvGa^%pSRlV$!RxT6YW#gY(qgYwd5!d^*!@uOkpJm~WTR6ULz z*6R7#3AMM9(Yr|HOLX#U%FO3U!(&kS3TZe*W`04Ie50-Y8(n- z^g1%Z-U|)ikd;3sZ~8j+taoANQJB7mHatMaz5ul^Lj4YybRUen28KQa6;D9TW2E+R zQZofQsKR^hb2l21{6gdtv4CrW)FV9rocEx)=bwPs+TEg$a`ZHb(mE{I{l5DoILF$$(W z6lu|kF}GyR3@CO0ms6Idnx<;vFdhGVRWsWc-v>DX_bk|_x z4o{Y0UTbeAlV?zn5y-B)tyWDYB*72_g!@2gPqPQIX8gL!g~UGVRUPwD+?>Az zs)j*95`;)NOj~mukiR6jNBI{}b)h6+k{Aj;OowpoH)l3|NsFDN@=>VX1$B==&BIW$ z1%~|r#_Wd1-K6m)GUX{+_d2@fX1)h={|1Y{QI~yBmpshIW#A6kX?29-2Tn_HC%Dz3 zUI7EYBFn$D*8D4R{pZ@^BQSk0nYtY&JdIsDY9EK1T~Ni5eH&EpYhouRQPkW+%iGgT z*@x2$ELFkOAY5EZ!g0P$BkueRJ+d{2^C-?@%q)mo0Ua)fJ|9Ev7qs?z=z2bMm<`Q) z0(MzSg}|j&mkcb;pzT=vV3ww%KBJo)--#I~2slFi;5)KOsZ=%ZCA_rn`gb`0* zR22VE*F6Ze4?y*;7%{>*T>WF>!~P1H{uZ0_Cd_;v<{X0sU&5j^|iV3Lpt|OnDI2J+yxV!h3cpAPhPzPCO!ZaJD`$}T~PfL zt-o9!DN=t`uf8sZ1VSX}a0DV-e>r&V?v(n;dsBS(gS(al@k^oICg^qvbpH`%yhX;Z zgSIP3>n@O5N%D#y#IMw?dgnwE>{OK!*F(!kCq0UgB+%@B2)3SS+A?(fbarFKc- zsY6;-;TAU?b}VvQ1dM8;`G(osicXF_J87JS-gc3SE;dd>B=C9h<^FT-&0Z+MJ<8<% zb<1ny)|rf0p>72eN+MElms1P4gk2UZIrkd^`t_XTgpXc03u9ysZ20l5b;99}%>DCy z>vL0+q>Wv1#~qhV<>1cA`#%nDnpf59xjW__Kgb`r@o#(1@6bG34Y%&o-DXd!3+`Ie zxU^y|lmAZm7!&Li^{sWu6aC=c7~3c6goe02SkudyyI4yF_)r4}3L^plUTAifsc~>O zqY~ct6`s!_n?tj%NVB5Kad>maq^KX!F_6#C$+M!1&Thz>Y6xW4uz*S9C~q42ojLQO z7Y$ZOfIH3{ns7vl4OQnh8X^(yRnO!u+Ifo>iP+~vcIB06MY^NXhyvgelGutQ@spDv zb}DO|330`cHVj%!qOI4eWmmCbACj3%NtanrI-C?RR4=2zy(xM3Av^Y05*hBywLg+j zltYFOzM`E+N*@8F?fet{2vlu@8cyD~L)|WD*a>xyVJ%DjOK5VRa)8YEf-d?J79WF! zFG5XQEV4b_j?=KsUev+g7pK6t!`QFQHJ`F&pDBw!R~H{4b6# z)xA)07mR%fCUWNf1g(EiuUlsIiO1kyL#!n^I+!#J*}lt>Sc)1Vkr6b$VkQ5OJ@$+Q zh+P7mmP6+eP;@QyI6-DTK>BZi(go16JtWn#W=UWdlendN>kwE0(EDg9snnDq1cm^2 z**H{wx@3ksX84JcRD~I``;z#o$|grLTvzzqIcJxRigeLM+Nf?~a-SSmra7tT9NA6L zSk?S265OB8J5$OsQF{Fwh3mpiqJ6FPM6XmSxEoThcbx2wG9zk^+$i?BRegRwiZL?( zd~@TYf1Lj9YZoGgKfLL!?JMH#kVZ8D*^csl#W|BWn*VfY)3s~I2Q{m-FmwN|B|q-p z@biHUe>#7Rsf7Eo$_iB{6;f#K+j63nYZEL9?lCkJm1BIUXp=44_yrN%gKLtacSQTy zB_?)rwK#v55Fcdr*O8^IcV*8rHG_jYM|uDKU$(p|RgV?u?C|GoGx4Jq5qUnJw75)T zoL6f-14U6kdTrWx2i!%462F~h#YN2@dkW8U{W1=?^C7`qm7A!-?Jm2SQ|5v@;nZFe zQE1_uQITV+$-!YdnFNa{X2`^WIYnt-KvFXxuAX!pPKz(l`d+{WzRjj>r31P``ZQMB zLvP0LlcM;{F#iGEO+wrdG1uEpXpHBE6zI?YvPPL&xRLhThWxC08%%l-COwSEE|vF& z$Dsac((oLa@+!=DgUtGyvg9Ai@~>dw*RXgq^f6Dzt<=+>xdSc&=`3jTk-g&Y_R7C1 z^WLL#j?%gNVcK5O_%im(Zg>{SI|ujj>&Xbdta}J1JwmE(B4ZZQ?%kAJ#kbExn(%ST zgiA7dBPc5R&QlUa)dm=)Bz-EhnGNmdLA%{B?w>I27U+2)X*-)0_aUiWNFs;t-b(rm zt%#x&V-7bnl0XZ9YJsYYq%ECjmTDu8WB+R*gAx&Vi*#PVnas;|d8=E+slu>Qz2<}Zc zRPW55#~&yFT5Drx?{2mx>V!)&Y9y(zit85jtrT z?htm>Eo5@j3KS`_i{bP^q?+5LNfB7D$#_UATjnxTcnu`Dt2USkB!=U40Iab}%WMRC ztv@TOSKH0jIxSOrJqcCY>DU2K)D@a_XU$>|l>dWs#)@F>Uc!vmSXI=fQW9c(T`N)t z(n!*1R z6rGmv_qzahezb(xy~?z20%w10F4;#XAAp&MVb&YiHn(y&=DF8Bfs42acf-UhVep?| z#63{{AXKa(J$kV0SX=}80o`wBG&MEo1NW$aBrQUJcTZ5k90WO+La!U3@8!_v2-JT8 z4L3p08BkP1in^1e3=-hrIEH3b(mejBNdmJ%%Z|fsD=i>=;(XYel@OnRmIhVF04yT= zrKzH+o+HKR4B<~8yDIxc%UUNn4M>ebqvn-O#N`%xmMS}`QmaVIm>$>fNMvl5V5zP7 zlV>$CxnGwt#py0BD(}5E)2=Lo%MQO9Bc*mRmmtb>WW46w@)JidIdNpmi+9cIT9VhN zec{BR9p8Fn$zNbN`BTb|HvIMJ| zl$1gS1uX^QrqI%ITC$jR-w6}7%l8eic2RcHBH`*ar0vK-Es%T&;Qv>YhRVUd=!3hhfeau;dsl{6Sgy zBB@QsCpis|-wU|wK+hyyzth)zZm!&?PTK(!kHYK&F#SaoWGbG4n#ZB~VQjuN@eeTa z5*Tl5`G3iC~o}X|Z5%ln-G|sX#_*U?P}ogDFTB z6_Aa>C=EAVlHEt8DG;f;sAZ*MchSwoHMZrRa+3Q8Ew;)&r9FO~$=yF5%30!WhZ=5h zqah`D{+zwq<^SWr=AVyT^5daRm#!T0_9NBdI=;pt_wC1zt&g|GC8;fiu*?0MS z&o((fytU!PdzTzPa>>t!F2X)d2T_9m{*CoN?_dATp0ynd)1A~Xq8o~(P=~o^Ht9ji zXC@h8CR5CkSX`8-aQRv9L@Po=z0TySR^pdG<> zz7vKC&_rZkwVd6tjxea^ojK2Ve-T~!LIBI*{vjnrl z-hf%0xxWjuK4WvgQI|AAo6{BhPEV7}Ne@0hzfNaWo`S0PVcy#?{c+q( zpZGM??1V}8!h~C4%zEg10}OuvCf*L^SHtj9$Pz9qE3BJ`D^X1uPC&eh)~3vz_?SD< zvuVm^v+rGW$X4jF0NUP7hI~Nko`j*-LAS-wsvZh@lH?dLIKIzRidsQDhoR<5%uqeU z1T6+M3pA4&F;)n}WU%jqN{MG|P-Re;$b;0p_7t+)ksKOzLUaXwIib6!WODybP}H%Z z&a#H6s)?2Ge;f~FFH)VIRiU#}caN7CmSXMv)9mB#Z2kM*bx;3!?l*6&`|0glT z?xzD6K6=CCpcc?Equ8nPlspGQ)4L zO&K5c@GijuQ^+y_(;68UZHD<}Xl`(U9hv*K+*32T-%yaa}UA1{V@4^eZ>P>g#xE-oXqb9+vWS50i~ak`Nx!H zcLXO+rd{^2#`lytFOs@@VDz(O(r(;auX+H=IbpvBhTjciIDfwn#$U_^=dn~bBTx+^ zd)T*r(s-GuNE!YaP!b_{0WG^z8My_@&Vg<#pyR7#;sIKD8}!%!r8SUOrxljc*bwNc z#6D9mDZ=Kzq>~!oO-rU|8c=ogHDX6SRYA`Mk)4j^5N$AJV7jZbt6q}|#cfN3iVes( zbxo=_r`rCsCbpOAN-L{=oypxlE={X*Opr933W@Op#2C`O<&TFi`PYHXpS^V6&xf}h zKeXwmgBy?SIrouk8vA!{W~pe-kp)oF#v>BvErTFmHiQGm0Ha^~W*09T^}-zskL|tS zrvvNJDZl^1`VqK`AR$`>hjHqzRK-Q_B+IuZYkFmt*_`;nO<%u7tsEsfl<}JM$;_#i zQbk#oZZP8ynbV_Ai_=1;X4;0u2ftAt-}|r4FZmC@u1{KAHY2H@NFva@jnJsAg8wiM z6>VISGRzjFUF@c6n%qkDHg26TcTLJNViQ$3o%j{yM26`uxNDNR^CA7goV@FNu>y98 z*gaT!61pLk79?>jE#iNvREX^hIpd&kCc47Fc3IE6u@YslASvvyRZY z_rkc#N#CcSQrKfFAAw1?!l;{J)GaXbW*Bi3j9N;2=aNL?;CqzQ(TXg@@D!V9a1Vmn zNK3AV{x`zFn_$>gFmNMuKT4}#CFAaZ9_K^r@g#GolAQ%sCJ7`HYqiok9|D{p4P?pf zSzHLT5VCJomT`-?THT#;(4AtLwq;mYYVU!&yUQwFA}+W~pqE;WdP?>8Pv)&27wW7F zLyIUiI!TiI|2UQ<4p*H}1ViQ`I4&A69=d+Uj|aB=uzw?mb!6*@H{W+fUANYGF@`NS z4`k4o==-XREdkpkHbT7kYT!rRv_(d7q8ZyZFLPdHujlWW%jbzV9$lfiIR}EdBe>T@ zO6uRVyr!j|CFCs4E$ij~PL5*eJ9C%wDI`}-iK-o)5?4lX51ENSfr>pysdh`&O#eB2 zk;DPrP)$QaWH%Ipk5oNwOL`UmR@4uADu4Bglo6Rmf}x9;89i)q`45XN{x04uT=!7! z;>*%&$H#UwR84Sp-2-=Tl0b)y5Zs*&RW~n8*qnsZNrJng%XOgx?nu}*Y%I<%Erwas z2H2dZmncd3B#y&$7Q~FCg?#qqpr6L^on$Y9j@O{nIqG?+s)SY?+|PlsGf3HRQpoVr zAunL-q|ORNf3@ zx532cVe+eF<_y|-F?4wqX1q?OzeuKhMV8+PgW~a{blM)j7tLKB49HN(-$$muX)V}o z&7P)pyILRiE?f92nR+I4TMIoO6XH7u_j~Yi8Fw3uz8;2dfdPx4+gQ?4lxZl@3rXVJ z^NG&K2-i0e(Xn?vbhsOaJPxC8hvCbi^BQRXKCRtL$36{%E`T;mS<7-YFAMAf5|d5> zi_{irU|7KV(&Sxkov&(l()K*~SMO1#Exb&l{lELh%7UHcU9`m0 zWj!jNFe-x!-`h8P0bnXWUuhr>Pp7H9gc%9ggQDK54?hrO4eodCrr1m74gL?q1eoBr_OiteOAfY$So&e3yg`R(c zp>M*}xzME^+Mfsgu7pvW$)FOF;S!XSf;(z59N9(Tk_Z@Z!(<2qDFjO(XFc@45=Q(P z#%)7SMD=4(cPEtp0Y={m}NIE`7>i3iRPeSccSnxi~9}NZc_knxA zi-Z3qV?f_b`X7y5`nJ9B25Wq8(&8dA^Z?Ai14dUu$s*|Th^SEA2~`h6#eFd0L6~qC zjQtagnF8&aiH}((_K!MZ0%w$1xOgAEBe4h4B|d*(50L4rv>p^D(9IAg#Cq z%H}}feA;}dl9>&`B*gdFnOZ>rm;p2!%xq$J(^3Mir4POBjIUTV@K(?Q->DO&;()ue zr|Ky0P9~S)Jc&c?6=9x{rLAIUqHaq{J^0Kn_g5ua2~ZR8=kzuT_g8YI9+{sm`(tQA z8WKn+9->LNyW9NQ-2l+j<3h(?Uc+Ji#9z1WdvNKXE-iGQWz+wr_)H*>-3kx~+%0Sb zh(mS_Gz7Ry6DQ~LA{h<8%B~%n<8$Ze&UvX$9hVW}vdZruF1{00BD?!8H0j_pD1y7{ zzClq;;DS5BCy_&tcN_|am#N<1c&&-vq`Khj9NAR_cU@zA@Na3@nVKS-RzRQl;81nJ{=<(|{9%wTxJ$PTc(M!*^ga@S@BCuW zREts{xD#0`r#B}Fy=W@nuf-V2nw5|=3yg_Mi?O7|5Xe6VdRjtbU98W zBOewu=Z{0p-7ujM+TB7Xyh#`BU^P#%+JC~Ccf!bI+(`Rf9KVydiSM&BBt5QFf2z#i z!=~3m+cZdAM+a;p<7Yvq63Due4BiQo_=L~D-j3qT2#)VNVB&2sYBUta;MTkr*)Xi> zrclIoD~MW~E|7jF41Atc%!5vyp>Pzm=mU9ILGQoQDX-A-i=lHpV6h1(N2r|ZnL59?HAUpFN|&M30X%t~33s_$b00C>vQ-Dc1-^Tw ztq9+;w+4TAoUaig-=;fr2=@4 z{mxdW($C9$UDq_EIfv7NpNE0LuUGjJS(dbAL6--RhN6_Zo zNDdMG#mbeIBS`TYD7%IXehF%}(!m9g+#Pb-LGD!A{!V4|0@^7anYjOROo1y$+kv*^jYB{)H1tU9<{1MRRO>N$8b=nnl ziT{XaT>FS3k0_@}TMnjeJe@4%uzkWs0Sm7neUM^sH%AziMmx%jU7klj)39sH7UG_KhOKf}T=p>W`1 z-ZZ8-wj4PkLv;N>?=B!z>g${8K1va=?rifisT7G}DaOs48_t_IFf}GdHft5gu1P_L zxhn~$VAAcfEg#E&mccB8nW|HtC07HecT2QVT=q}E5t>rL|ru9nO;N=7YhKLa{m4}%|uanBi(JCN*=P}~~| z;~?0XrY%!CjiSv=glx}j=72b(wyyfX-OUK2VCF!|9NPJ2GWsD>a~ITH2V<^92gIbu zFh-{CQE0f4RxDzD`#^yOfwjt@gT{iDq|f!V{7o{s2AZj-uSv!`eqXRI4?&03_0VfC zOnzINSD|%Qz%GT%v!T~?=*q8#>7>&`bkcLsa2JfZ2}azB7ftznP<}g%Tfuq{Fk8iA zbFVOSClMxhGtA!+-1Q_9y9C-*L4GF0wuij)Nsq12do6UG5A9xq3D3c(tD)zG&}ls6 z^e5>9X+{oU1ygep>PPq@7eb)6hByl}9TWq!plWKGDWjKUx_~SY$01kENG)|2*;OSh zo`m%c;t3rNQp=CA<9HLLEBKLCHIsM>tgF(v@cN73?&7=RV!a}f-Fu+o%nhDF6Ge&C z_;}GSN>#&>j+_QuR2Axn6bjtVO3uE5saVb&=14jIh4~}+XHv%19!f< zpiXO6O87sRgmV0rY^CHfaYv$Y;vPkAj0ADnpH)r_4!E-jaF0ZGU$YL~U9$?G4Aq?> z(k}uK2!Yv^BpS%U)$SyFA}t{zXfFi85zu@Rw7D4iKM3PKFcy^4R{T>|2OS2I;y4Jk z;g>xrOhDJKXCRIe-=o3_j5LU=f|9kg_r0W?gZn*Db30Vr4C8NuiU*+baj3r$#`hvE z+AGcTX?iQjxL29DhV`9DN*_{cm(dQEuuGlx$L|r`<&g>2<Oj8~ za~$)D1a}axjZsI?knd3y-IS=i#~@OU9dHzHhsj?Nb@DPf@M*-6W%v^rK5&=#>(KTn zfyH_K&aX&ugbOjP`cCt(-Vg3gSv>VazYp0dlYa#v-B1T`1(b*JUB-AJvWvkavQr8A zva2?eEM5)kElvTdc+PP1ZK?BkaDNhTcajFE2y};M?|j-P9-rZNbo?G6o`1-?LTCXLons8#7&E*j$;p7^B1oU2b!x$K2v{v4 z{W><}PBLaI47`jCz8l6o2ovrm6IQUYAYN)T?0JvQgVe=UsHtGIA*sV4F9SkdA>$4h z`W%dZ3`X7$!!C!in_<8wSUWf9JZL)w3fn+J50=_qNzj3Vw^FWT4<#te#Dh7WX0;)4 z22pjfJLgFy3e^I32wUXH8dMSnStg5>r03m{$Th_)Ya$-YW)e3g6~)i9`xzDsa4*&| zOg|;^(lE;VZj+`Ip81g7*`||E=r+#w1bq=l<=9RlNwFhdi+0=8nTO;~K=_Ri??-qj z%)AG>SjkB-?pP93P7vG?=);7XuNn-FfZ-oXB3^*+C5aa!^>pIbXFSgC(SQFsAo6(} zn%{)`NBk@&xk3IQ=OIKqHd^g*H*y7|7eFrs7BT&h@R>L>G0)o`mViXHDyImjynDY- zw?s~JS~5A50%v`Mb*f2Eqzswizxi%7y*WwY=a^tOXl+`tRLm2FKp)5%2}RSP^nB9$ zz2N*yl_8U$>pe>{=hSE+DclygQk;m^5-1(6J ztQ^uuLvgLrVY=2mm!v5WXhkynvX&-poT>$ou$*zX67BgNYB)>Ppg1 zcUa6x3zu}6nU_ss$IxbZkT3wUZzBVqhw-~%+~Y9(P8hTWdfmra3{>9;J*GpmT9RK% z63Udcbg*ntOi%`~wD$Z30!;(Eg60%L$ixCmx!EOQkqI}1NgY4CXJ}Dnziip5!{>zY zfx9QgfU}k7)+KUktOyB4EPL}F1QOHh)$x9&pQW$h6 zjK2{^-3nv>0HdyikypU*bD-}e+AfVHQ%s^Z;~{Yc8@YlEPKKlu2o8koA&?sLJCNGF z<97<{^5EBdGq8q15x=%ZvEo6rg$*$}+7L5hvD*uxVJ3-NOL{*Cjd#KLv!KU1=zAwr z{(+QthFt2bAN?j7U9|c|aOd9*kw6LrdPC-2bkNIW!ZR>#7Yx4z`rH70FM~cD=nq20 zIw-A!yn!Swg_tc!Cm6P9Aa zZ9;V#&U05>$wCS>ZumRZ9I(drn3~*EC9cv+#FU_Grc@pT2uhP5;x%)>Dz13qB720+ zKwRgEAKar^uuvg9(ZdIS&N;GWvy1HbI#m_-_rQ5h>iAV8ZATG9^Wi3SCjeDW142}h zk}DxTtBm_WASVHLXQxzgXE+Kn2$yNmyQyM^aM4_VJE}vp3Ajhj9KLBIJX=s_@f7tN z!(S0?3hsV<#|_&^aVb1oP~Xn2*p@)ehk6v=Q=BA}JA#~<8m^N&>`#GXz1+)l=Cg+Z6YkgZrC()W*K^aLo$fgO=xK@xl60-AtH{M5i{I0>va!Y#XNPB6d6n zV$Vk`ZrlMC^GLTU=zJX+e-Rm$0m%`eU|3sZs!B-QK<6(Xy&z);9l4iId<80=hOzg+ z;5%U84j6SC3_Ji;ufh2B(5?ZRl|p<1Xx&Nt2qmo>O^PAfcs-{r!6jrX2z4RJ0nh_j zoT+<-GeTj|g_JC0bkDj@JREmDj!yefT?yYtC#8#|ViQ#mOd@D6CuI^@sEa9xr??48 zB#3Y{*A+w1e?L8s02C6fDK`aoiAs)&?P>b%cl}xrqBEfmLJ^1cdpp1=JNWG@#IJ)B z4?1Noxvr`PIP{HRg^q6~a2E|x0=fs>uCn1R9f-%Q{oqci58R_RX$fMz>i-S+)EM9T z0Kr|#DNPj^?+rGY5~61d-*CCVBj`IrHdJwBALb6?ieTW|GQsItm}G?U5%)jjprTII zR00gk^g@M@D0-zT16W>}l0&hk$>hl15>k6X&T8oTuvPtux#9v+wgDqihg}K7Z^D8j zj_-Zb`SMi6jrqVmJScwEYm|=nv8wej>=NjI8;rdPhTcm@4I<4IutY5tU$9yn*^^01 zJsZ>=+9g0z5+s#DdLKw&zcJYSzdn9n6{<}S`L?@5+!#ph3pwdDRR>GKVapZ)6iX+} zAlP$g=RYYUuUAH_g0ius#Zskn4J}bH;a!as+zn|oWMH(X*$=X@hiUy=P`e-M-c%d* z>Qy_)xaH7!1$6ofCcgw@HbTcnQaGHYrBXA2=%ciZjwH?mHc8EEj>X(iMB+M;6dQ}V zHJwvwq8q9OZoQHeto^w$in|ro)RXS+dE&&tVa_KYFc*%Qq8fq}dvGk*@<@Bd?~4g| z@*y>G9vg{eBnn^rx&cI=?A#V=FY`omNflkAy-yF}vy0*=2E@@W5Qzjar?Lx&@A)ZX zs*9e|JfjfzMPdW!u*goNQzdMOB$3eR{!{)2ns90sb(%YcP#30&4|)AWyNM~sidht~@gyMz;?p6i zBP30LK-_PJF~8aIdk1%U1b~)7Y(GeAMl#ZAVj@Wh;-Ys34D$gmkEy{oiUSyfpk%Vv4+y*FK^eM8fY7ajx>(0C+3Vi1jMj1Y|x zAb|j31+BpfNrTLj^fYf~z4zm-x8B+3hRdvK!OV}5W|3#z73*eX*cRu5HAdP4cT=auyQWXqt@UOR zLpx8Hm1~suJRy2PmCHkFd|zNf=eV1bcj_o68ul2;(g)hvvAGClHspT8!!FM8yH$-r9-)H_C_j&VD<8}L>Oy~(D*J?jr>kZ5fl_k4;?rwX-!yOcUd zvpj{*e}dy9Q+v4M6ntbgN0j+u{bf@T&=GS6%Aw*wpLqnDCn5-lXkK zL}o#zL8yiIs~HOySB*A&U;G0R8F$fn76%8ip1?t7b0Xo*EBp&@y~k|b&tF8HOTMOy zaTuKuU8N(5;2HG$*yZKK5X>UJ9NEKS;5A~+U($uw(Z&vht5i56mOo+a{(#u?3GDkM z4s1rv^fD|%Oi;*_&BDIVqhC8FT=_w#J0;~bO4>E&Q{fB2?8VnQUnbV5F!vl zbP$CxWcMI5#;@>eH^UV!xv zVf7?+m3V#M@xgDjEvPyiLOQ2u?iu6i2vSEGzEDlmX|=~|phjyIl+AX=vm<+h)hhgLn*iFy znMI^>A&Vqx5N!|K8-U&-=2}l+UtmL)F`CT1r6Fhqx!p_d3G28&41zXS{tDD6dqzyW9h*Lf!*9d(ZgecH>h3vY z+zFA}i~d!pK8nfbV`@Sa1H{!LNjLG}4y&X%d%zOmpo}^qk|q{fHz2(NVe8it-&)B2 z>-g>4hWh#?@(;+Yi?9jq-6gq?7w_msOSbN$%J3IQXft|WM5`~+xXCS~U4w5MRxNTB z+*d^A+wSH6JMieIjD0K7srjZSRY=97a|nE#w*L*zy#uQsM*m(Ex653wh-BcOmsuZ# zA9B4&r#S+k1TV3wXn>3TmSw2wM0^Gp;nRIn>vdzexsskX+I@$ds!EIRY+4fQU`Oru zw{X*gfVvdRrK4DsUrY%bC`RpCMBS^`E<+344ctW?+B}^{YJ0Uu&rLM#G!2yT9R1WV zdx)kbpUG^!r-Ya2FUe@|ZqH-Groejj7_R|E9nG~BQXSMbWH)sAfjgkK&c~_YL2PRM z-h;I@Mf-f(XFh6vaZxufHdUS0%eGCWZSdNVaT>oxo3h_d!yCVmp%*sI7VZmc5gGT6 zm1uj+zYXqQq66yL4|N5G*y`?jO;a1bRkK0!twt#VD~zDS7lNTU`&M4ev?~bpAelz= zsOWz{PP{~{{-D_R8T&|$5;hk-RVO*Ci+MzEWAe{%^u<`C&BR_M882VYw#b(e@or>) zQ>=X@EibZ>%+WoKxh0bZcfMM^O^T2qLIDcZ5Z;Sql#lSQ<5;5Yt)YN<6#fCYo!p1o zGIX^ss>hq{1qLh?c&gKDpEa%w-v8~$`5WeRtllfqdy#qq zNH@j4BzFG-$3BYnk7DQmx^@v)9VjAjUG^j(gE00Xo8<`uS@P$F;y7j$cAQfI9iy3! z->47cxoAAow`f>L*hu3kEiG(q5jW95s5XMU=(4XrOw>{A*|4CUqP7us4YjSuH&~}$ z9koP*Yg1e7@0l;rvOu7TT_IaKQ#yC)#ZFFTR4q15V=XZ4XJw~qJ`RG@v&_=GTY;uMZeL) zU#%IPwCH@}#p@JXpb-)+jGWqkP|yT@3uB?leG~1 zHk?K(32UBVgkK=nzSNxQMvCh7XB@AKjv>Pa1x*S$6!P&CeI^1`*gM%tEdL!LjKXr)yRvnX$CZ!fnEbI5a){@b=Lx)3oue1!P*9kNOaT zTCT?hN(g&8TeihUmg(Y&jnhIK3lfcE(n4yZF>i^5N3yj9dN+gP!k1bwwKU~&G(=JLtO!C`#OB$$^XopAV12;|!$cDPPpLUk^B~mgY}bGMFTsG+7HFicVpEn zF?IvB)kqzsatF^Pp)*ua0Yn7m7IcKzwn!xr2ykH;t3u(N2w7VCuO|xfs;OgoN@(3K zQZGQLAjXuo>5;@nX{shjQQgkmt`D?{xuSL1w+S_ifuObAN==!&O`~tx?CR{ewIkZz z)HBpKVWQoH)1LH1Ex>Bff1Lv*yi$>^@6rzLtr`FZ7mZaACC3>$n+rPu-o0& zR>R$AQ`lgo#c4piMU9kH4Y;}#DoZ7b%lo8WlJ$$YOJPmknYLTxyWx&~$=vmFjQaRzz4u1G<=EihMN@4ztA1MF?!^ScYo~2aQOX zT1t!d3+e^5Mq`~iRbPO-4bZ20pxpw~_DEldx|h5iaNEgdQ=K4c*MI77)DWhPCb-KM z?QIxiTKL{njm(zTyhwj&L9lF;P}h-x{zj(ZxQ45ak7YWp?PFbCSWyIu2-hf@rErv+ zNHBmZEDXa*AdnK_7z$rZ)aY>qv?RT93i8=^!3YB5BeTL?tYZjGk zgaW#U5!#PQi+#6;N{xd_jpsI8s*Q-mXjX%0Uu3S+dG!NHd*NhYES!=XceWkIRsgXe zlF)C;xeiWq-fh>-^qJNGck(EO?P)UVWsq*nzAuB6H$%L(f;9g3vp!^}( z^ICJ=tHj(-aN%{>XtK0uwSl|GpSWnS&8~zdxYswK-R=zon!DIP$ud=2P|6#kO_JM#8#i1N1h*y^*;?ZR$szU$=B*Z@-CF zZJd3f>7u2`FGzN85b(xC(srgb3$S1zd-Xnp&@0bE(>mcbNHP^z8;;KoIHsDk*d_EB|b=K0t!ePNi;|^Xy)eafIj*P<& zo7|H9B0Y`p{V1A5q9Dga;8EM|zSvL!>CY<1kHVOPp)xfshHp<@X%fJNx=I^@w_V2dt)+K2 zDS1mnzstrh$yN^MB5-e1Dz5_vEkrJ8rCYdU`nd*uy#_UBj=yoqJ0eym{Y69Urdeu1kj5QoW9^fn|Dq zRm~Z~)qO$h`L2z^)!o3| zScu^5557ap@xZ-qzcCtRAgzWd@8$QJjly9nh_oD7S*Yli4{|T1ju`y`mRZ8nRM;x3 zGgR1*-uGkM7wO>l|clS>uKX> zY1dEWi4W4o2QjQT`x2NhzI=SvZ4x=I>>h)@%!Z3~}*V87tX#$NkuTROI((b;fpOOa>=rmj!=T?PHz zh^kpH-tu}<3+`WG*FD{>wat2-R9hLDhN!~#piQ=J3qBhD6E84gao=kxr>j>I*OqZD z^@C_xNwIYWr6vwwLpJx-2dII1?1Zi3p&l!@eCZJP2PpSp(Ufl(1 z!ZFDP_{U)fd_){o>y_&;u@yHtyeA$@$=oJc*^BZku<9+?{C#=)g|zm798Iu{BNw+$)v&I$ z%|NRfK?Bx#)6t4fKOJiv~`%q`e2;2gkZlqG&F(Y8q zHJN5rBW=d2t1(s^thY8|SEX;>tbIc6`8f7`344Bm6Yrt5XVASB*%e4lhSD@F zY_)P=S;m~9gbS&_Jwv`QY*!<@rNA9_#tis{=VAAjv+Bl2?}F4BsvE1g2afr@-B4C z?0SUU$v$-&6EDE} z2Wfen@x4*8otkC%T!Z|!Xo9;BT8e3adnhbowg}rIlorVnbxerdMOhf;3v+2KjbAp@ z>0EVEBZ_SXPzkK|H|1vkRJmdv6B zV|8h&Imz@1JE(wLx(>_Y0k!!}zis-Z;WI410yxtO*gDVFVCBTotk!Nca%+CP_OO!L zZWoPTU03{H8K+WR_*OrM_d^KJcH)}M_bvUEeTMEgtxe^;ako;IJ{YD=%cmlhCP}9S zfsrSOwWqn>sfo#YU#&a%`+`}yCEVSW^|vpIw3bzyFD2CMWd^xrhwhZ(a{J#{fX{!? zNztq3L?>cF1apYbqO?hrcT)EQ7=Iq7o-&R+BxWvR=sno-984s1f4;^QbQkBb-Ve0u zh*8j{kSjxe5m4-BJBrs(9oMNLOQU@(Y3|QDqL4EPOd*j(#AXf>FcCC4(U~wKa2Zw=rnxLxhFpP+Q}@ zI#RcgU8hqnvV=F8nnCT9uNmR7e-uQyP8g@CqI$3?Pfi)d?Q+N+5px%(iQx(A^VAuB|t3nKuv zV~5D{=~+{2)uiS{o2%Y4%Ic0Ne7|TUF;RoMs|WZvdtQAbY3VQM)L(>;jvq3>6LyQ| zKl@lz&p@{9G+wC|T{TyD3O-9ZmSMW4?PsS7H?Xx8jj#iM z2!SL5W1{l_4ID@R1DJTf-2a={dIJ-$z}k;s_Y2H58H!N-#arO6F0mk&_wcw>3*7w_ z35lp9LyidK5xRxJy~qZ!w2aysOR)Y+25}ctIfd9Pb%ha=96$OAK2a}ebnMS?^l2RUUCcj(=}%(&m$Bms%)AQA&&lc_MHF7>%~&Cmc`jH= zop5RtQdeF{QFsxub@MsBDgMs&Wc<=+Qr&l~K*4I1u{Ajn+cwEdvNsl8?TxHXv2eSS z(=GDFx1Qw{Z3hS8hMJQ?x-^2?g77)y1Qb;luFwtt*xX|JY(p4(<@0g59tHQl0DFxrhJF@;Er(}cH32vlA6vu6|8fHGMG+`aL_N1dy#fVO zx-NeluG$7EIw9f;zv5iV%88OMA_MAWb!cU@g%@{Ie(rMQWkdO?cf;@m955xfZ98aK zJ_dTjQ9F(s)N8i3&mUp#4}%qdX||j0>r$JzYkjwNrT)%;-O1LQVH_KEOxBCMf}L#z z-8lGgsnM*1xJsQEq*#WtwK;&>YxWL_PDih)hT$Kg^eGxTg#O!@d>3~ACvoULtb7I5 zy#<@T=$?6fV7^-9{r;t^r?X0<*`qt$xdZxCK zsVm&k&64VZi9?3fD8;@YtLTnD7sc}JRe7nM@v%%`=+#|?kFG=9y(laLA>u_{E?y>F zOK_D+TT#wNjhbeUqQ+502L<H`ydXVp9ul7Xlh3<;lZ8*4POWEZBtE;!}_i@G>9ipFR$ryleu0M!P~ zfZDO_fT1V^7sau4=a9Ow7~Aa1q>;1XbW>XW5G!T=fau?c-utlp9b(TPyJv4>`VH9h7R>*? zaqwyP#4DY-94nLUeJfjqf7$!UMr8%=!2rcvb!muD7llr8U~T?;gT#N(vBckh`RD)! zVMRHULV>%Z(^FmTWam64(Mq*&HT7^NQG61+zlZbRz?lzX_d{55i`$Hie3OnnO*`I< z&QU~9p{L@-WrS;pRuLISVgellNDL!6iOw11R--VB z{2-FUT%kKNgyaZ1#*i83{Zv1aV@QvqQ{6L7`BhX<_fH}-hw?PCW9XPbdX)RIq{fk6 zh1?nxmm}MYxO(Cc(gW1di{t=Oyw5wy9>mqA?(Ea|4^@!IyY5se4;Kx zQXN=gMq|+VsfB8@WY9D;v2>KC_9LPHf zR!-bII(2a6yd0A66x*K>=e~>ce}a>*!rIdqIf>y5H270-@+sQ#Y8u~0nO(@N;I@iLI7tF9df( zGeo1&fk?D5H9iM)94-W3rZOdbF{!w@#SRwfGt_3dh8D`}Yl91X@#2mdqG9IKFX)o` zQg$c#2Pir~kvJShpGRf7O3@U2Sp>_778L2`j%W(ClcPwCBDoT|d30?;c@s)oP?_L7zqUav)AE6VFoQm8#ga%85E zQLw%e`AL32hx&6A>1Dj1nLy_hWhePZ=~R=!2sel0Z5SORNDu4DV**+4PHzqv;JHCP zx3gQ_Ntu3Rx)ATCRKG}9RaC(tMI@#9z6v-ph^lBHN8wJPW-@;V1(Uj7P?XabEL+cc z3q|}z>&b2Mw_bM@ip!gNZC1^%dL@IKw0H})4X3GT+ESWrU@hDAw}t0Gn^;6`$q*3j z%P^jH)TnjiWjSeZ*IB0OL{-0LQrF8<=ju+gvewKIr*8O%MQW{4JWRdkF!W-qcqy&@ zOZ&bfG_n(YFU9&Nar}$8{3$whRZN9AJ~kWctL?Sj>$iRcOHhGYcn$LNBD(}$cOAbv zarku~#3mMdqsXt6xflX|KEwPP&ApOgZiBYFMI_&9@A|2A`D1eLt7z`GvE>q$UBu`m zjQo~Z`}gLBr^MD5)95^9wlGYnct225*8@3Qt!$_8xy;SY9^&2|c?v|xY3n*|T3lAl zERs_e{wOc2Hp;lys}9sVa@1?mE?6ZqS_&^0d~dI$$UrOitx>5^j-dlS_r z1ZS3uW*L*ki>`|_7G9sUNZ}0|W@3gvB7IrO5_yf{LzL*@0^dPJeigq{JiUlenfodz zluV6?j`gCnM&yT(SV8H{DD6l0e(KpPYTHm=kNgG{_E7Br_3lJv14bWcV0l9U^uSRZ`3Tj(R zg>|yHoOlA5)G>jA^tDC1d*BoIgvi$4kYGYE8wNJd7YZBys6*Io8WzJz;S|is5I?z+=7MEMzX89;QoaapHyB-esC*8C4`T8jjQx#u?`>K&jLz-oc|JD0 zQS5me?f7GP>Lqf0lFKm}TKUxAP7VI9HwVFPB)6mM1eMeD>)43nR~dAdy`}Li!-ZTa zIx8aH$@WCQC&du48&@Pf zdKKTFM}8+tyHMGN!d?`Qa8s1(K2#2(dPL0u{AXo9s_F$ds|QopPAVVbSMEJ+^zWhS zHgs*Kl7fCk{}qm_54KZuZxhuyQPC_uIj!zQZao#YQe|FL*HG6gDo&Gne3m!LD$JUs z{0dRh>VHzv`EE)oeD4t*Rm2O3E=p0&D&dL^;xhtAh(CIE`R=|ahI`3X<*V%_tuu0U&pQQIj8(n$27{>!B>mL$j%{r2$su2yrHWv zNzoK%Jcqk+N9JLjw)54`g$;;}^ER15>F1_SyjaJ%l%90k?78u5em{drnozS{f~zXJ z1qAY1T3LqVGOeo&Az4L4k@4lotVE}x$qIs3pi^zL{AYSSa+{D>7^*0_LgAe#Y)46L z`%pWG+9C9uMBhaWoJHRm44gv$0hAA*>o|JOpzkaOE@0p~MsH%|H2N=~|0c%NzIyy= z^r(Bz@?-ih^23JIQ;t&YG7Vg$;q&M}MSUkluOjk_&hMkjA*w2f-%nk8sp}wB_wd%W zUv%x~2b4EcVY4Xi6xBVVwi!jW?L=)4dQQ;50aSOQybsmwC~rkc&oL?#DC+N+Uy1w- za%1RNL+YOV7%M+4{*0=CfLPd3_&%W6z0CE=bg%5FA=yvq0qU$!DvM}_w^)|qMT(aw z(M5@pOr+WNW9ZZ@*;cst&OvqYgwu;$y*gsn7iP85(6$4*x{k4MZfFF4EvV z-B5Es2X=Z*$mEqLPOK{-ToqAo-BqFaR#7u_+^K+m9387Uoa%f86K}?*AJX*?V9z|d zx1oO}`fk$f6Jq~CTGo$_Gh$>1RXI2ob>_}xWc1>et{llWtr~)ph&W5&{w!k&+<(=f z4$u(%yO35`oTs3xJu@J$&#K>}?UGvx1mXxQ_VFS1vmg5+4txYVKY*=o$J`q*`{#7x zvts89G4wp@UysCQHh%az*vV@J$XsD0lU%b zsq5GhW>a~;8?3WlpCrep!-5F;0@7~^n^PqXN1A?V`lQK;lnbuyIwbuoH|2F_Febs9QNy$7gvS|joyS=}efheh{!Idnk` zUJ^t1(9kU!z9mO)iNTvRcwY1$rpj?tFJa&khAt7$4JSywY~_ONJtg`MiP`~KJtC_+ zMAuHywL_G4%dUf>`-~hoY4ja7YP&^c2Nkx7+)hzCB5V6)_a4c}epvJzp`QJswu>t2 z^Bkt`EmTzBLXpRvRNYJ6TdBN~avQ)&I&^R>71mR$6fKB2VT0_1 z2!usIw=1x-6zrE#seLsnz+G#UES+E7g~%Y1Gsvt%_6COEfQ^4i*FK5^M|hr|xQ^Ki zn0dQ6@L6&3w=qA3Tmk{7F39*4ZI>!OCf6pe+9bIeht-Y9G2|00%`c6m@jpAX&4cEV zx{mH?q`E{bMPbwPylZf$hUZ4F4SGg;A6 zS81J^H6&DRbC#Od>k{gwitg1*S-KUGBYn2v7gDFlOEz6J`t>YiZCXEfgrzngSydyp z%*gf_sho`T81XKO_ECI_t2M<}DT>Mhbb5-?Yea5dmUqb7EOP6puuD{qqFd4DJzyPt zD;0N<0@l(|>b^h&x5TpRV(_XMye&s>$7LcUsQI>%3)EyAo@?po+G0BqUcvx ze@6D4k+lodbCLSb8ogKKzU66f8MD>u052$)rR1V9k`Y=bSdQg;iilPGdT~s(CD;JEulcZ*g zZnYhw?i1)cM!knb^_Y4j)%H?(Kf1V!7E3@X^61(n%QK{c5(W3=-7E)HHla(+Z4=Zv zZ**-Jm3h&%O5{eVV}MfqlvpOR6S6QYvV$@+E?KW16Zv78Es11NrphwIn@IH;oxLKH zMZ6|bEa^}puTDRa2qP3hC?+F*BVg%ny82gZp0EpjFZDHWOU>e(ztwCB09%D_K5l|q zUyl)sN&}JEmUmt6dnFnPbb{=N5%7^yHljfmCwW0NO1>c(S09PE7G7|_*&E;_Cf^!S z96@Fk(&~ua!02me<1_No(>Qh#gO6bO%dq{$n73 zkmSMxjzzwNj6_8s3wH{!o5)q!&agC=#{cXf-NfS(iU(0ha7u+@5I#vhs;63b0V&N; z*T=0x|C!Ez9mjuwGvC37%zxHJwT^5G4Gajm{zB`?Qf&)RM%uAHSE$&2{leuQs=TtvTegB z+2ml@(zT>hFD^z+2xtXx8W;py6@|aYNU9K9G4wp5J=z)4&yqq+ZPUmo7BJ%QR4^eL1-!;yiC54w(_vJ=JKR6I)M)2Qiip}dbu3aQo0?qhW*x1ASkbMwe= zMQ#te)Ek|m-hEWwio!+|)koR_#m)0;k=sn_9$uWSOT+GeXV&7RKmGRlom=MbqGF*{9#UTwHkJ5xq+NOTT~?5LUv zWUf!7E0id(_l6~!9HLz!QI^~gCQhN0jCC5xw2UW3Busukd|?VWoK@5=wxCUyZ-#UV z?zt_h5S$pLi>I?YGog+7XoQIi9JCAS{?|(c~~FsOTFODVHw_L!t8s zvbJ6`$RX^lyG$Xo9o5@n#fOZ&U!!AZF#ITHUX5*U#_pG6{`uJONgV&0xb!`7Fu=(BC`2WgVU!)zsOVckiM%Kzi zfjE6Bz_pfK1?c@U>@r0n1@uvUeOBR5stbk;OV}2#Rxu@arK7H1(WvM|t^6aeudqy! z71aH*ePla&QB;?&a&&!Q&$}k>{KZLkCQ2!SPreMhGXq`R9W7o&u*y5U3OdeEt{6IF zx`MnzsO(199$v2OJ_TO$RCv8xYv?;rQn+@Uh3}#37`cw&Gw46A;FtzaQ~w1FU13h$ ze-6E8HPL{|HV%Wi-Ss{4&5PEi@GLOPG^%bakg8Gi3=NL~UeQHKIqBZ^F91T>DqVEzdJ3!s* zkzK`}`p%6C-&unyspD{j*M6%C?hjM#EDfo-LCuA;=$xbC7OE^0nQ58ZU{*&c-G{_F z*)=Omqar44I%)UME#liRE$menHtGM`WT>Fu@^#}6g4AopVET~Uwi@NO2&2R>&b2X(; zQzw@2>)#wpp2%k%-jUgjP==M8l_W9_&E^Ad0NOG@j#dNGV?3xS?nPF4I zbcD%Qs%V!lrC^V zP}4Bua=wz`hnXk;m`L_hw40)3L`s}e6zNB7j8dz#vv3Wv8+aA8v>T;Us9jKijxL3X z3jR(~-&QK@KwiQ9K~#^U_dNAqq`~Wq#mlbKu;SO(#n^qu&>c35c57Dxl7*;TS5d&)HA&lNbgBPjyIt|`X4BZ&MD2K1psCwePV%a@3tU&x> zIeEVvzb(ep#GtnOuuR=~KgMs$@mt3DEt+^hOg|`BT$Q6o)l5U97sbd$Idl=j*W~yO zbK-_Mc8?glgpng!INGJnmj~HS!=(EtdQWhu(Q^uYr!aU@L;MA(xS?kY3d@mPuc8X7 zsK7<-Y@~wP+03y>VV;dWGMjFQyjxAiFyIs4&ZOS#auF%j% zZ zx=nwlp`v5y*Z*aA1aTLOrj6a;YtLqv8yT*&Q-(rwX=t%NAo$eR#b&if4Q6{}-3IR5 z=~>aVyb;OCP*w!f6v$DipW?j~Uq&gl4I(i}iBU?;h|aCr%CZ$j#YQin|2i*%^`AiP z6!lyd{nzEdUg}zjFQ7-WJ+6eZura*cY-po%kgu}e~Yw!S0m zrBT5__fAyj`3n|yvmd5=JI5cD6Hs4d*-7;8M@8*i#j?GqDd3*xc%`PuzMAKDQsp3Z zGr<>qyNO?96Y_icxqXMIvW4k==-#9*V2qVoc743 z_)f_#ktvHzPIe?kB1X}eh(u)6&lQSXE=)w`-RcW97hrWo0mf*B*Ba$ndodJ^$eN+F z2)0&S8ZpYx~gwFAbeN82sV;&%1xt6Sd* zMArU$MyO;2iCU6$001BWNkl~n9<9b)!{}9vTw*U{_YEw29+p3X$!l67 zSN!)H1|GoZ1!lzEr%}C(zH6T9!UTNmAxu0MV-GWbpS*&R^XNH`?yLNoim(q|Ky^Qx zqf6&exq)8wj`y-^Kky*>Uy8|BV&?f6dp<^Aj_KFa?3*zAn^^vCtbd=_@*djwF0B78 ztbP;CzMa;-lh(Zp>)s;Qy^5w^jENUv>UCK4I?TKflehUzyRV^FO+4q&a{`r{tRtzJ zplg;>TVqp5sc2?1vYV0H$48*=DAWJ)yq*}2v5B+q5W3f+xCZ%6jO>M7)Vr7MH2Epc zfy%DugIrog`EkyVO>bs%eb*MdHfxqvQgH>VH~A6Dj8bMm{WLPaPL#LE?s4iIF>*sj zmOVBi(<3^1sH2~F-L+SC_K41^=&Y$7GglO;EMh4I@f3+rNNphs1Sw!M5VzM=Zs+p# z#aOSiE)#Qd4B;VZKpPyTR}TYR=)%yd8x^t#goYv3{`T8i3CZEmq4qcl& zUD$2aUl$hx5W1jP2XRZ-GKG36reIwG`h-YNi|k6uDSTN=#Tm-ZQE?~A2lcw;5!4Pd zaQB?#t$Grb3+THa!-}&Xq2hJ)Jr^VQGaUEd&ue0%4`b{G2Cp$6SHL}}*!?Yx+=pfN z(z55!`293~jYclf@D&W+kMYMaq4kqxHyD?Pud>MAuWjr-3iR*g`xUGY+>gPBF!nfB z{1#^4femlN<~L#P_psp;*!6MR|5@7iJskbdIP)W1`Z3P@oX-AGocI|||CKoR6UqBO zq*LD)$G$4|d=B$J$BAc*lixCr{i)dZDcbgFW9L`w{a-WoKVuyEfqDEJ_Wm!6-Jhpj z-xbGxE>HiA&izoF`~jW%3vv9LIP%A0*Hg6ZW0-#u+dhQ(4`Tl9oVYOaAVweKZ!vO~ zV*>WzpF-bW^eAxOhsptV!FSD}xE7_2=-SRJxBZ)SZtXmJcA#eq)was+EwXnN6(%XW zTohJ{lH%_(Lb3Sblqjwcg;laND=KSc#Y>=FXOveM`Du|Kqs|^ms`+?SS4ZfF!uO6b zqcC9<700ikqo%?yvp8%NIw_VF@vKZ_WLyD#hGI!l9L2B5uf;$q@45!lOodhSTuLA5 z@^D(^vtu$?K+r3Ip@n!2@eS5*!70eN&fn$~szI6AYu3EJxN*3{BGrTBTI8=A%ib$? z{v4M+ioGwu>eplYE3xHXta=XCd;mv2jKhD36Mus9-@^6pAq+OEA4rJ4Al+a#!lYlh<2PN?mfmE7IadbLP$X=WY@_4uH$J7gdy zBZD$EB9b*kMudX(&J`jzEAz9muwE25QE7*$Y!hY09CvC5y3QnG+uvEydy!Wl*-&@{ z)f*VPjiD=|`+gdH49gU=zKMZ*(0?CB?xB(E>`h$u7)?BiiF;}25)IzM*ljU>A1!+> zO}>;?y_{yBN7J{M-H$1Ve^mXKmsOI){A?)}lwyA0Rk7)NdaNt|m|1})^GIoCo+un=K zufWRZVd^S|`5jq*FDqnU$2AWWqwn2=zRjquN7q_Z)}cB_waw_B5na==xYnrdl>NKR zf$e7BT2Wbn!Za186~t3{jVRAjc}`YVilUm82UxGqkL%ub>Yh!aGKS6y5+gD{ZI;K3 zQXgfykmwVg8~p^;DlOtUnd&yPNf8TD$fsC5xu)XgWNY0|F2n?(3;bHd zaiMDpt}?{BJoyq7N|HaXZUr}5^3-;1m$VF6DGKW)P`jW zug(MiXx;lGarN6crwIGEaQ5>!bQP1oBe(v!VthF8DeV3Tw!aUXp23N?(7M~`z8AGC zMyZ#AAw|-;wm26`9hb4P2z$YDo*BLCC z*J|7hS=DQCusE>ttz@QQm9x9G3&9P&h6sXJqXx)y|-Dg9aX^;d{}qIQ8Q+{4kqdy3e8fN=&^-L7@V7pe)KO)mSTwt|S}g?jO5R+srzw}YIVl^)ktycxDmR<@&Z7~KzG?6p|)1lGP0tDeM` zZ{fsuaO}(2^M|zK1GN2hSo<)>4^sbXs?0E*SBS4*y>}gI%b{YX%4$)a71fopJSVz0 zD>{$vb?Py)XS3{ECu*yxYaLbA$gb5?Sk4s=I>#wHMfuf6ag8Xgr_vfK3{iU6$c)S4 zm@E#9Tpu#MNKY805v!ONsfy95@I52q9U@UPvSp()CSw5^35ammh`1CmwVhGGTp-sl z;+tL>FK&e>U8(rHUTbx^5{^G1!ZsI^@kP1MfhW)_@)6d>zZB3rX+)2kgHfG(6^7e| z$VTegL|r$m@t24duf?V>bYH~8ht>Rz(_hAg@8H_Eapn7T z^RJB;{M3H_8|}lL)ZvJTBJZwl6PjUL|IP(LX|CreKPHg{dYj(=uKa5pPv1#yLu+E-D}raHd2!Oa8EM9m(!A zUK7(f=y%rX)$SJ=RaX@GvlPrys3f9eDq2U!D$30nD!|Vx(lk#M#nZP_c?TC%={-+_ z=V<5@1`ncl7i;S^Eid$3!r%$?9YptG^xTBv;Ory1|0U=)IVH6w@!mYPH?Q z#64PGzlM6O}z#yUV+Kq!`xSm{eNj4`CEDVALQBp z!#wrR&be>Uq2HqoPr934=uYpVo&(0fMx(OK%2&;l!l0Oyh&hRn74ezDuo;e9(WD)V zn31p*j@prwKOXbN!&W40ha+w@=tRP9G~$bf{n3Cg67YvzHxLTM!-06f4h5ZXzz&Cl ziC6$`K#{*R6^*1q{+MO?1EFX%mU8WYV+8_EC>)H1{V|^r2wEZaQb9Z7ngPERjQL|R zCl+_&DL2vKCL&He=%}|&qyovPKVdr&%L)aYNZv}UHj5X`;VU%qYBBRkvE@tH@qOdq z_xy)GZS8m)&AkZI&&9+s)Yfrzoy-*XNzZKJd7`!ry_?yM)4LWu3iqdxUr&|w=vi;n z)`+fU)TySNUS08c6qyl9ucqP}Dyk`Gn9`$y1^U&pG)6hEKye?^eInB>JG(`uD$;qb zLK>@5x{J~|nMjIAT!cGhyu(PS+lWrRcE~ZgsV|>?cdr@A|FTSSB^y_KwhX$$*Dd3D z3hQ<*mJfbgmq+C!DFoJvt_~5jRS-!|82(9-U4{H}?G;a$n;*fU;L zoc&8);=lMOIPy)L`X)|(4aYyPyX*Y{=HE$k-?7iVMozz#Rvx0#fDBn=*t)l-t_dYa zM5H7_x^f6bVGU8RkNiFuRq|Iv(Bi1slC4(P&EKot(I|s3((v_CRMGQ(iuQ@vw8(6v z;s(m^q^`Z9wwtQEwY%de^&BCc5X38=!&)e3EBaAR{~0*Ts&W1_`p;3{dFnljZgqQF z)UMIMbD=o+#62{8fq41!9vZoUk$c&yJf=Zkz1pbSxyhRQprY`v!OZVt{nOa>XE^u_ z9r+=Sd;vSYOuIg1?)WWd%`3$6`!KRkR#qF?VM_Iy9Tg|-v%|I(3^>t{6Hhn^pB3`E z;edi#H*DK}(+=2n$aO>JXRv(z!x4fWKKw)sxI z?{(QD!!a$tdX}_&WIBf9Gi)DsI^lW@K56+)Hz+K>`mcJ7?F$=D&~!q+KveCUR=`mo z#tEBt$gqPxUnClgtEnO!jJs~w$CFAt#o0w+l_<}dwUvU4 zl#S~$51U1Gr|2E!vgQc|^eaVSnaC;tU29a-d@x8I6-o@4g;BHEO_?$hWyBS)ACsk; z!g`VD5RrnB>XPY-!COYg!xU1RpZo@!VLVm+PJ@k?!piw^KIwO)FCYUc8FXN);AXi< zN3`ZHGH{Qg_sXKg?xNBe$HfcNp96$BIwl(1W~!z2P^o`3;H⋁f?j6|k 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

O*snS*W2#7<5vIe-x{FIJKrSUqcP| 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 literal 0 HcmV?d00001 diff --git a/gfx/bearhub.svg b/gfx/bearhub.svg new file mode 100644 index 00000000..741db6b4 --- /dev/null +++ b/gfx/bearhub.svg @@ -0,0 +1,453 @@ + + + + AABCHGp1bWIAAAAeanVtZGMycGEAEQAQgAAAqgA4m3EDYzJwYQAAAEH2anVtYgAAAEdqdW1kYzJtYQARABCAAACqADibcQN1cm46YzJwYTo0OGE0ZDFjOC1kMTI5LTRlYzYtODNkMC1hYjI1MThjYjgyNzEAAAAB5Gp1bWIAAAApanVtZGMyYXMAEQAQgAAAqgA4m3EDYzJwYS5hc3NlcnRpb25zAAAAAO5qdW1iAAAAQWp1bWRjYm9yABEAEIAAAKoAOJtxE2MycGEuYWN0aW9ucy52MgAAAAAYYzJzaEaKZhe7M9yAy/sTn4Flp3sAAAClY2JvcqFnYWN0aW9uc4GjZmFjdGlvbmxjMnBhLmNyZWF0ZWRtc29mdHdhcmVBZ2VudGhDYW52YSBBSXFkaWdpdGFsU291cmNlVHlwZXhTaHR0cDovL2N2LmlwdGMub3JnL25ld3Njb2Rlcy9kaWdpdGFsc291cmNldHlwZS9jb21wb3NpdGVXaXRoVHJhaW5lZEFsZ29yaXRobWljTWVkaWEAAADFanVtYgAAAEBqdW1kY2JvcgARABCAAACqADibcRNjMnBhLmhhc2guZGF0YQAAAAAYYzJzaAdbrYzK0427O1q2d17ihEQAAAB9Y2JvcqVqZXhjbHVzaW9uc4GiZXN0YXJ0GQEPZmxlbmd0aBlYKGRuYW1lbmp1bWJmIG1hbmlmZXN0Y2FsZ2ZzaGEyNTZkaGFzaFggnQG6l9o9w1SYHRT5MLz8fZYIdgoAEZbeNeUKLnNSW+VjcGFkSQAAAAAAAAAAAAAAAgtqdW1iAAAAJ2p1bWRjMmNsABEAEIAAAKoAOJtxA2MycGEuY2xhaW0udjIAAAAB3GNib3Knamluc3RhbmNlSUR4LHhtcDppaWQ6ZmYzOTdjNGMtYTRkMi00MzFmLTgyZDMtMmFkMmJhYzY3OGJhdGNsYWltX2dlbmVyYXRvcl9pbmZvo2RuYW1lZ2MycGEtcnNndmVyc2lvbmUwLjAuMHdvcmcuY29udGVudGF1dGguYzJwYV9yc2UwLjAuMGlzaWduYXR1cmV4TXNlbGYjanVtYmY9L2MycGEvdXJuOmMycGE6NDhhNGQxYzgtZDEyOS00ZWM2LTgzZDAtYWIyNTE4Y2I4MjcxL2MycGEuc2lnbmF0dXJlcmNyZWF0ZWRfYXNzZXJ0aW9u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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPZZAgAq3r5wmRGbYQK0N/2P3+IBzgYvekAbU5mB87WnVLL+TABLJVqLa5qAQ2FKlbpuEY0xHdKJQWXpoKhSFp69XIbhyGiYC03NbyVET7/ljPCNhQdNKeWRajEYp6CBxF8tU+NL9u1RyvWmBegUKMLpzYGO2ob4mzoWDEGMsMKocR9eCUNMuxfH07H7EtuzdB1S2bX6lcgd7k4Hwq1VptZWLf/P1QhPHWVN1MO8gRmbZiapSb4gMQFb0ZeHVl7gFNQqPkPsbwhJ/o8JguDJv05oKCiXSblCFAU7/zK6KSrhaaNSQc51XHRxOW3eVCHCsXuNLy8b//4UzdjE/lhPD5socdFXO27Ee1b1LSwt+g/32wmBSgz3l2g+WY+roCSsoa3D27WyidX5t/b/zOdx9tbGlHbQZc0UCzHVkCREMGDlSdsMxmfl2EdLvF/U4f9qvno1I8qzwXovQP+tNLzUkrahGqoUckIFW7kqJXWhbIhLANhAady40ExgImmsjkIvXsrEzKctRvMmb3d5Ji6IRLf2xC3tcjxW+LCDcmW1ADxG7oNFoVhV6yoWFG+759FkszTNo78+ZoCSUAU19SvnMQUypnCFmnPoDgpG3SKtuHOCVJtMi4zr1Oe7DbsXvj1XYIIan3zxrJXvRo/9vU3eSs63EA6vrPseuwfCZDimvXYeCemGvg== + Yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/linux_dist/appimage/AppImageBuilder.yml b/linux_dist/appimage/AppImageBuilder.yml index f9b360df..0e5276d2 100755 --- a/linux_dist/appimage/AppImageBuilder.yml +++ b/linux_dist/appimage/AppImageBuilder.yml @@ -3,26 +3,27 @@ script: - rm -rf AppDir appimage-builder-cache *.AppImage *.zsync |true - mkdir -p AppDir/usr/share/icons/hicolor/scalable/apps - mkdir -p AppDir/usr/share/applications - - wget https://github.com/vinifmor/bauh/archive/${BAUH_VERSION}.tar.gz || exit 1 - - tar -xf ${BAUH_VERSION}.tar.gz || exit 1 - - cd bauh-${BAUH_VERSION} || exit 1 - - rm setup.cfg setup.py requirements.txt || exit 1 # removing the outdated installation files + - wget -O bearhub-${BEARHUB_VERSION}.tar.gz https://github.com/spalencsar/bearhub/archive/refs/tags/${BEARHUB_VERSION}.tar.gz || exit 1 + - tar -xf bearhub-${BEARHUB_VERSION}.tar.gz || exit 1 + - cd bearhub-${BEARHUB_VERSION} || exit 1 - python3 -m build --wheel --no-isolation || exit 1 - python3 -m installer --destdir=../AppDir --prefix=/usr dist/*.whl || exit 1 - - test -e ../AppDir/usr/bin/bauh || exit 1 - - cp bauh/view/resources/img/logo.svg ../AppDir/usr/share/icons/hicolor/scalable/apps/bauh.svg || exit 1 - - cp bauh/desktop/bauh.desktop ../AppDir/usr/share/applications || exit 1 + - test -e ../AppDir/usr/bin/bearhub || exit 1 + - test -e ../AppDir/usr/bin/bearhub-tray || exit 1 + - cp bearhub/view/resources/img/logo.svg ../AppDir/usr/share/icons/hicolor/scalable/apps/bearhub.svg || exit 1 + - cp bearhub/desktop/bearhub.desktop ../AppDir/usr/share/applications || exit 1 + - cp bearhub/desktop/bearhub_tray.desktop ../AppDir/usr/share/applications || exit 1 AppDir: path: ./AppDir app_info: - id: bauh - name: bauh - icon: bauh - version: !ENV ${BAUH_VERSION} + id: bearhub + name: Bearhub + icon: bearhub + version: !ENV ${BEARHUB_VERSION} exec: /usr/bin/python3 - exec_args: "$APPDIR/usr/bin/bauh $@" + exec_args: "$APPDIR/usr/bin/bearhub $@" apt: arch: amd64 @@ -94,7 +95,6 @@ AppDir: use_host_x: true AppImage: - update-information: 'gh-releases-zsync|vinifmor|bauh|latest|bauh-*x86_64.AppImage.zsync' + update-information: 'gh-releases-zsync|spalencsar|bearhub|latest|bearhub-*x86_64.AppImage.zsync' sign-key: None - arch: x86_64 - + arch: x86_64 \ No newline at end of file diff --git a/linux_dist/appimage/build.sh b/linux_dist/appimage/build.sh index ffe65632..50454c0c 100755 --- a/linux_dist/appimage/build.sh +++ b/linux_dist/appimage/build.sh @@ -1,6 +1,11 @@ #!/bin/bash set -Ceufox pipefail -docker build -t bauh-appimage . -docker run -e BAUH_VERSION=$BAUH_VERSION -v ./AppImageBuilder.yml:/build/AppImageBuilder.yml --rm --cap-add=SYS_ADMIN --device /dev/fuse --mount type=bind,source="$(pwd)",target=/build bauh-appimage -# volume required to run tests: -v /var/run/docker.sock:/var/run/docker.sock +if [[ -z "${BEARHUB_VERSION:-}" ]]; then + echo "Set BEARHUB_VERSION to a Bearhub release tag (e.g. 0.10.7-bearhub.6)." >&2 + exit 1 +fi + +docker build -t bearhub-appimage . +docker run -e BEARHUB_VERSION="$BEARHUB_VERSION" -v ./AppImageBuilder.yml:/build/AppImageBuilder.yml --rm --cap-add=SYS_ADMIN --device /dev/fuse --mount type=bind,source="$(pwd)",target=/build bearhub-appimage +# volume required to run tests: -v /var/run/docker.sock:/var/run/docker.sock \ No newline at end of file diff --git a/packaging/aur/README.md b/packaging/aur/README.md index 38eaca50..da13a49d 100644 --- a/packaging/aur/README.md +++ b/packaging/aur/README.md @@ -10,3 +10,26 @@ Before publishing: 1. Generate `.SRCINFO` with `makepkg --printsrcinfo > .SRCINFO` inside each package directory. 2. Build-test locally with `makepkg -si`. 3. Push each package to its own AUR Git repository (`aur@aur.archlinux.org:bearhub.git` and `aur@aur.archlinux.org:bearhub-git.git`). + +## Stable release checklist (`bearhub`) + +1. Update `CHANGELOG.md` and packaging paths for the new tag (e.g. `0.10.7-bearhub.6`). +2. Commit all release changes on `main`. +3. Create and push the git tag: + ```bash + git tag -a 0.10.7-bearhub.6 -m "Release 0.10.7-bearhub.6" + git push origin main + git push origin 0.10.7-bearhub.6 + ``` +4. Refresh tarball checksum in `bearhub/PKGBUILD`: + ```bash + cd packaging/aur/bearhub + makepkg -g >> PKGBUILD # or updpkgsums after source URL is reachable + makepkg --printsrcinfo > .SRCINFO + ``` +5. Sync to local AUR clones: + ```bash + scripts/sync-aur-packaging.sh + ``` +6. Build-test both AUR packages, then publish AUR commits. +7. Optional: create GitHub release from tag `0.10.7-bearhub.6`. diff --git a/packaging/aur/bearhub-git/PKGBUILD b/packaging/aur/bearhub-git/PKGBUILD index 8d46bb1b..c4acb2cb 100644 --- a/packaging/aur/bearhub-git/PKGBUILD +++ b/packaging/aur/bearhub-git/PKGBUILD @@ -1,6 +1,6 @@ pkgname=bearhub-git pkgver=0.10.7.r0.g0000000 -pkgrel=4 +pkgrel=5 pkgdesc="Arch-first package manager hub (development snapshot, fork of bauh)" arch=('any') url="https://github.com/spalencsar/bearhub" diff --git a/packaging/aur/bearhub/PKGBUILD b/packaging/aur/bearhub/PKGBUILD index 135b8bf8..28f93c96 100644 --- a/packaging/aur/bearhub/PKGBUILD +++ b/packaging/aur/bearhub/PKGBUILD @@ -1,6 +1,6 @@ pkgname=bearhub pkgver=0.10.7 -pkgrel=8 +pkgrel=1 pkgdesc="Arch-first package manager hub (community-maintained fork of bauh)" arch=('any') url="https://github.com/spalencsar/bearhub" @@ -22,16 +22,16 @@ optdepends=( makedepends=('python-build' 'python-installer' 'python-setuptools' 'python-wheel') provides=('bearhub' 'bauh') conflicts=('bearhub-git' 'bauh' 'bauh-git') -source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/${pkgver}-bearhub.5.tar.gz") -sha256sums=('42001198cccd5ade206f93fc0570c9d3dbb7e49a1f85b790fa577c3af41aee70') +source=("$pkgname-$pkgver.tar.gz::$url/archive/refs/tags/${pkgver}-bearhub.6.tar.gz") +sha256sums=('SKIP') build() { - cd "$srcdir/$pkgname-${pkgver}-bearhub.5" + cd "$srcdir/$pkgname-${pkgver}-bearhub.6" python -m build --wheel --no-isolation } package() { - cd "$srcdir/$pkgname-${pkgver}-bearhub.5" + cd "$srcdir/$pkgname-${pkgver}-bearhub.6" sed -i 's|^Exec=/usr/bin/bearhub$|Exec=env QT_QPA_PLATFORM=xcb /usr/bin/bearhub|' "bearhub/desktop/bearhub.desktop" sed -i 's|^Exec=/usr/bin/bearhub-tray$|Exec=env QT_QPA_PLATFORM=xcb /usr/bin/bearhub-tray|' "bearhub/desktop/bearhub_tray.desktop" diff --git a/pyproject.toml b/pyproject.toml index f0237b2f..ab8f8fd9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,3 +54,14 @@ version = {attr = "bearhub.__version__"} [tool.setuptools.packages.find] exclude = ["tests.*", "tests"] + +[tool.setuptools.package-data] +bearhub = ["desktop/*"] +bauh = [ + "view/resources/locale/*", + "view/resources/img/*", + "view/resources/style/*", + "view/resources/style/*/img/*", + "gems/*/resources/img/*", + "gems/*/resources/locale/*", +] diff --git a/setup.py b/setup.py index 2199a5d6..0c112ae4 100644 --- a/setup.py +++ b/setup.py @@ -36,7 +36,17 @@ setup( python_requires=">=3.5", url=URL, packages=find_packages(exclude=["tests.*", "tests"]), - package_data={APP_PACKAGE: ["view/resources/locale/*", "view/resources/img/*", "view/resources/style/*", 'view/resources/style/*/img/*', "gems/*/resources/img/*", "gems/*/resources/locale/*", "desktop/*"]}, + package_data={ + APP_PACKAGE: [ + "view/resources/locale/*", + "view/resources/img/*", + "view/resources/style/*", + "view/resources/style/*/img/*", + "gems/*/resources/img/*", + "gems/*/resources/locale/*", + ], + "bearhub": ["desktop/*"], + }, install_requires=requirements, test_suite="tests", entry_points={ diff --git a/tests/gems/arch/test_pacman.py b/tests/gems/arch/test_pacman.py index 283746f3..1e62f6f4 100644 --- a/tests/gems/arch/test_pacman.py +++ b/tests/gems/arch/test_pacman.py @@ -3,7 +3,7 @@ import warnings from unittest import TestCase from unittest.mock import patch, Mock -from bauh import __app_name__ + from bauh.gems.arch import pacman FILE_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -29,7 +29,7 @@ class PacmanTest(TestCase): self.assertIsNotNone(ignored) self.assertEqual(0, len(ignored)) - @patch(f'{__app_name__}.gems.arch.pacman.run_cmd', return_value=""" + @patch("bauh.gems.arch.pacman.run_cmd", return_value=""" Name : package-test Version : 3.4.4-1 Description : Test @@ -42,7 +42,7 @@ Required By : None run_cmd.assert_called_once_with('pacman -Qi package-test') self.assertEqual({'package-test': {}}, res) - @patch(f'{__app_name__}.gems.arch.pacman.run_cmd', return_value=""" + @patch("bauh.gems.arch.pacman.run_cmd", return_value=""" Name : package-test Version : 3.4.4-1 Description : Test @@ -55,7 +55,7 @@ Required By : None run_cmd.assert_called_once_with('pacman -Qi package-test') self.assertEqual({'package-test': {'lib32-vulkan-icd-loader': 'Vulkan support'}}, res) - @patch(f'{__app_name__}.gems.arch.pacman.run_cmd', return_value=""" + @patch("bauh.gems.arch.pacman.run_cmd", return_value=""" Name : package-test Version : 3.4.4-1 Description : Test @@ -68,7 +68,7 @@ Required By : None run_cmd.assert_called_once_with('pacman -Qi package-test') self.assertEqual({'package-test': {'pipewire-alsa': ''}}, res) - @patch(f'{__app_name__}.gems.arch.pacman.run_cmd', return_value=""" + @patch("bauh.gems.arch.pacman.run_cmd", return_value=""" Name : package-test Version : 3.4.4-1 Description : Test @@ -81,7 +81,7 @@ Required By : None run_cmd.assert_called_once_with('pacman -Qi package-test') self.assertEqual({'package-test': {}}, res) - @patch(f'{__app_name__}.gems.arch.pacman.run_cmd', return_value=""" + @patch("bauh.gems.arch.pacman.run_cmd", return_value=""" Name : package-test Version : 3.4.4-1 Description : Test diff --git a/tests/gems/arch/test_updates.py b/tests/gems/arch/test_updates.py index 0f209d60..4e9e6a3a 100644 --- a/tests/gems/arch/test_updates.py +++ b/tests/gems/arch/test_updates.py @@ -1,7 +1,6 @@ from unittest import TestCase from unittest.mock import patch, Mock, MagicMock -from bauh import __app_name__ from bauh.api.abstract.controller import UpgradeRequirement from bauh.gems.arch.dependencies import DependenciesAnalyser from bauh.gems.arch.model import ArchPackage @@ -28,7 +27,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): "prefer_repository_provider": True, "check_dependency_breakage": True} - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_not_return_installed_to_remove_when_conflict_with_installed_version_fails(self, pacman: Mock): """ If the newest version o package A conflicts with an installed package named B, but the conflict expression @@ -76,7 +75,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertFalse(res.to_install) self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_return_installed_to_remove_when_conflict_with_installed_version_matches(self, pacman: Mock): """ If the newest version o package A conflicts with an installed package named B and the conflict expression @@ -130,7 +129,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="B", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_return_installed_to_remove_when_conflict_with_installed_matches(self, pacman: Mock): """ If the newest version o package A conflicts with an installed package named B, @@ -184,7 +183,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="B", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_not_return_installed_to_remove_when_conflict_with_is_self_conflict(self, pacman: Mock): """ If the newest version o package A conflicts with itself, then A should not be marked as a package to be removed. @@ -226,7 +225,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertFalse(res.to_install) self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_not_return_installed_to_remove_when_conflict_with_provided_version_fails(self, pacman: Mock): """ If the newest version o package A conflicts with a provided package C (by installed package B), @@ -273,7 +272,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertFalse(res.to_install) self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__not_return_to_remove_when_conflict_with_provided_virtual_package_with_version_fails(self, pacman: Mock): """ Scenario: @@ -325,7 +324,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertFalse(res.to_install) self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_installed_virtual_with_defined_version_to_remove_when_conflict_version_matches(self, pacman: Mock): """ Scenario: @@ -390,7 +389,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="X", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'V'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_installed_virtual_with_defined_version_to_remove_when_conflict_matches__case_2(self, pacman: Mock): """ This test case covers the same scenario as the above, but adds an additional provider for the same @@ -466,7 +465,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="X", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'V'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_return_installed_package_to_remove_when_conflict_with_provided_matches_version(self, pacman: Mock): """ If the newest version o package A conflicts with a provided package C (by installed package B), @@ -523,7 +522,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="B", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_return_installed_package_to_remove_when_conflict_with_provided_matches(self, pacman: Mock): """ If the newest version o package A conflicts with a provided package C (by installed package B), @@ -579,7 +578,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): pkg_b = ArchPackage(name="B", installed=True, i18n=self.i18n) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__should_not_return_installed_to_remove_when_conflict_with_provider_is_self_conflict(self, pacman: Mock): """ If the newest version o package A conflicts with a provided package C (by A itself), @@ -622,7 +621,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertFalse(res.to_install) self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_cannot_upgrade_when_several_to_upgrade_conflict_with_each_other(self, pacman: Mock): """ Consider package A and B are selected to be upgraded: @@ -682,7 +681,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertIn(UpgradeRequirement(pkg=pkg_a, reason=" 'B'"), res.cannot_upgrade) self.assertIn(UpgradeRequirement(pkg=pkg_b, reason=" 'A'"), res.cannot_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_cannot_upgrade_when_several_to_upgrade_conflict_with_provided_by_each_other(self, pacman: Mock): """ Consider package A and B are selected to be upgraded: @@ -744,7 +743,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertIn(UpgradeRequirement(pkg=pkg_a, reason=" 'B'"), res.cannot_upgrade) self.assertIn(UpgradeRequirement(pkg=pkg_b, reason=" 'A'"), res.cannot_upgrade) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_a_package_to_upgrade_conflicts_with_another(self, pacman: Mock): """ Consider package A and B are selected to be upgraded: @@ -806,7 +805,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_a_package_to_upgrade_conflicts_with_provided_by_another(self, pacman: Mock): """ Consider package A and B are selected to be upgraded: @@ -871,7 +870,7 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_a_package_to_upgrade_conflicts_with_provided_version_by_another(self, pacman: Mock): """ Consider package A and B are selected to be upgraded: @@ -937,8 +936,8 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) self.assertEqual([UpgradeRequirement(pkg=pkg_b, reason=" 'A'", extra_size=1)], res.to_remove) - @patch(f"{__app_name__}.gems.arch.dependencies.pacman") - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.dependencies.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_cannot_upgrade_when_several_packages_to_install_conflict_with_each_other(self, *mocks: Mock): """ Consider package A and B are selected to be upgraded: @@ -1039,8 +1038,8 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertIn(UpgradeRequirement(pkg=pkg_a, reason="'C' 'D'"), res.cannot_upgrade) self.assertIn(UpgradeRequirement(pkg=pkg_b, reason="'C' 'D'"), res.cannot_upgrade) - @patch(f"{__app_name__}.gems.arch.dependencies.pacman") - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.dependencies.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_cannot_upgrade_when_packages_to_install_conflict_with_version_of_each_other(self, *mocks: Mock): """ Consider package A and B are selected to be upgraded: @@ -1141,8 +1140,8 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertIn(UpgradeRequirement(pkg=pkg_a, reason="'C' 'D'"), res.cannot_upgrade) self.assertIn(UpgradeRequirement(pkg=pkg_b, reason="'C' 'D'"), res.cannot_upgrade) - @patch(f"{__app_name__}.gems.arch.dependencies.pacman") - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.dependencies.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_to_update_conflicts_with_to_install(self, *mocks: Mock): """ Consider package A and B are selected to be upgraded: @@ -1228,8 +1227,8 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) self.assertEqual([UpgradeRequirement(pkg=pkg_b, extra_size=1, reason=" 'C'")], res.to_remove) - @patch(f"{__app_name__}.gems.arch.dependencies.pacman") - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.dependencies.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_to_update_conflicts_with_specific_version_of_install(self, *mocks: Mock): """ Consider package A and B are selected to be upgraded: @@ -1315,8 +1314,8 @@ class UpdatesSummarizerGetUpgradeRequirementsTest(TestCase): self.assertEqual([UpgradeRequirement(pkg=pkg_a, required_size=1, extra_size=0)], res.to_upgrade) self.assertEqual([UpgradeRequirement(pkg=pkg_b, extra_size=1, reason=" 'C'")], res.to_remove) - @patch(f"{__app_name__}.gems.arch.dependencies.pacman") - @patch(f"{__app_name__}.gems.arch.updates.pacman") + @patch("bauh.gems.arch.dependencies.pacman") + @patch("bauh.gems.arch.updates.pacman") def test__return_as_to_remove_when_to_update_conflicts_with_to_install_and_it_has_deps(self, *mocks: Mock): """ Consider package A and B are selected to be upgraded: diff --git a/tests/gems/flatpak/test_flatpak.py b/tests/gems/flatpak/test_flatpak.py index b460b7c5..6e2a5582 100644 --- a/tests/gems/flatpak/test_flatpak.py +++ b/tests/gems/flatpak/test_flatpak.py @@ -1,14 +1,14 @@ from unittest import TestCase from unittest.mock import patch, Mock -from bauh import __app_name__ + from bauh.gems.flatpak import flatpak, VERSION_1_2 class FlatpakTest(TestCase): - @patch(f'{__app_name__}.gems.flatpak.flatpak.SimpleProcess') - @patch(f'{__app_name__}.gems.flatpak.flatpak.ProcessHandler.handle_simple', return_value=(True, """ + @patch("bauh.gems.flatpak.flatpak.SimpleProcess") + @patch("bauh.gems.flatpak.flatpak.ProcessHandler.handle_simple", return_value=(True, """ Looking for updates... \tID\tArch\tBranch\tRemote\tDownload diff --git a/tests/gems/web/test_controller.py b/tests/gems/web/test_controller.py index 32ff603d..30ea5149 100644 --- a/tests/gems/web/test_controller.py +++ b/tests/gems/web/test_controller.py @@ -4,6 +4,8 @@ from unittest.mock import Mock, patch from bauh.gems.web.controller import DEFAULT_LANGUAGE_HEADER from bauh.gems.web.controller import WebApplicationManager +LOCALE_TARGET = 'bauh.gems.web.controller.locale.getlocale' + class ControllerTest(TestCase): @@ -16,35 +18,35 @@ class WebApplicationManagerTest(TestCase): def setUp(self): self.manager = WebApplicationManager(context=Mock()) - @patch('locale.getdefaultlocale', side_effect=Exception) - def test_get_accept_language_header__must_return_default_locale_when_exception_raised(self, getdefaultlocale: Mock): + @patch(LOCALE_TARGET, side_effect=Exception) + def test_get_accept_language_header__must_return_default_locale_when_exception_raised(self, getlocale: Mock): returned = self.manager.get_accept_language_header() self.assertEqual(DEFAULT_LANGUAGE_HEADER, returned) - getdefaultlocale.assert_called_once() + getlocale.assert_called_once() - @patch('locale.getdefaultlocale', return_value=None) - def test_get_accept_language_header__must_return_default_locale_when_no_locale_is_returned(self, getdefaultlocale: Mock): + @patch(LOCALE_TARGET, return_value=(None, None)) + def test_get_accept_language_header__must_return_default_locale_when_no_locale_is_returned(self, getlocale: Mock): returned = self.manager.get_accept_language_header() self.assertEqual(DEFAULT_LANGUAGE_HEADER, returned) - getdefaultlocale.assert_called_once() + getlocale.assert_called_once() - @patch('locale.getdefaultlocale', return_value=['es_AR']) - def test_get_accept_language_header__must_return_the_system_locale_without_underscore_plus_default_locale(self, getdefaultlocale: Mock): + @patch(LOCALE_TARGET, return_value=('es_AR', 'UTF-8')) + def test_get_accept_language_header__must_return_the_system_locale_without_underscore_plus_default_locale(self, getlocale: Mock): returned = self.manager.get_accept_language_header() self.assertEqual(f'es-AR, es, {DEFAULT_LANGUAGE_HEADER}', returned) - getdefaultlocale.assert_called_once() + getlocale.assert_called_once() - @patch('locale.getdefaultlocale', return_value=['es']) - def test_get_accept_language_header__must_return_the_simple_system_locale_plus_default_locale(self, getdefaultlocale: Mock): + @patch(LOCALE_TARGET, return_value=('es', 'UTF-8')) + def test_get_accept_language_header__must_return_the_simple_system_locale_plus_default_locale(self, getlocale: Mock): returned = self.manager.get_accept_language_header() self.assertEqual(f'es, {DEFAULT_LANGUAGE_HEADER}', returned) - getdefaultlocale.assert_called_once() + getlocale.assert_called_once() - @patch('locale.getdefaultlocale', return_value=['en_IN']) - def test_get_accept_language_header__must_not_concatenate_default_locale_if_system_locale_has_it(self, getdefaultlocale: Mock): + @patch(LOCALE_TARGET, return_value=('en_IN', 'UTF-8')) + def test_get_accept_language_header__must_not_concatenate_default_locale_if_system_locale_has_it(self, getlocale: Mock): returned = self.manager.get_accept_language_header() - self.assertEqual(f'en-IN, en', returned) - getdefaultlocale.assert_called_once() + self.assertEqual('en-IN, en', returned) + getlocale.assert_called_once() def test_strip_url_protocol__http_no_www(self): res = self.manager.strip_url_protocol('http://test.com') @@ -60,4 +62,4 @@ class WebApplicationManagerTest(TestCase): def test_strip_url_protocol__https_with_www(self): res = self.manager.strip_url_protocol('https://www.test.com') - self.assertEqual('test.com', res) + self.assertEqual('test.com', res) \ No newline at end of file