From 000be72dd0c2f668cd94b36c69e45dec7b06a23e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Tue, 29 Aug 2023 10:27:36 +0200 Subject: [PATCH 001/212] fix(updater): disable `nounset` to avoid warnings (#11856) --- tools/upgrade.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 34ff3f027f854..f7a263d667c5d 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,4 +1,5 @@ #!/usr/bin/env zsh +set +u # disable nounset local ret=0 # exit code From bf774211916c8a9d57b2b56c7846cd0b3d91baab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Hern=C3=A1ndez?= Date: Tue, 29 Aug 2023 04:29:15 -0400 Subject: [PATCH 002/212] feat(bun): add plugin (#11859) --- plugins/bun/README.md | 20 ++++++++++++++++++++ plugins/bun/bun.plugin.zsh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 plugins/bun/README.md create mode 100644 plugins/bun/bun.plugin.zsh diff --git a/plugins/bun/README.md b/plugins/bun/README.md new file mode 100644 index 0000000000000..5a312370f455c --- /dev/null +++ b/plugins/bun/README.md @@ -0,0 +1,20 @@ +# Bun Plugin + +This plugin sets up completion for [Bun](https://bun.sh). + +To use it, add `bun` to the plugins array in your zshrc file: + +```zsh +plugins=(... bun) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_bun_` completions script diff --git a/plugins/bun/bun.plugin.zsh b/plugins/bun/bun.plugin.zsh new file mode 100644 index 0000000000000..9924faa8444ee --- /dev/null +++ b/plugins/bun/bun.plugin.zsh @@ -0,0 +1,14 @@ +# If Bun is not found, don't do the rest of the script +if (( ! $+commands[bun] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `bun`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_bun" ]]; then + typeset -g -A _comps + autoload -Uz _bun + _comps[bun]=_bun +fi + +bun completions >| "$ZSH_CACHE_DIR/completions/_bun" &| From 2ef7c73cc884163367279e4b586136e3335b1c53 Mon Sep 17 00:00:00 2001 From: t-aswath <119417646+t-aswath@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:38:09 +0530 Subject: [PATCH 003/212] feat(web-search): add `youtube` alias (#11865) --- plugins/web-search/web-search.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index ec176dd680a87..fc87a34955f79 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -25,6 +25,7 @@ function web_search() { archive "https://web.archive.org/web/*/" scholar "https://scholar.google.com/scholar?q=" ask "https://www.ask.com/web?q=" + youtube "https://www.youtube.com/results?search_query=" ) # check whether the search engine is supported @@ -66,11 +67,12 @@ alias wolframalpha='web_search wolframalpha' alias archive='web_search archive' alias scholar='web_search scholar' alias ask='web_search ask' +alias youtube='web_search youtube' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' -alias youtube='web_search duckduckgo \!yt' +#alias youtube='web_search duckduckgo \!yt' alias map='web_search duckduckgo \!m' alias image='web_search duckduckgo \!i' alias ducky='web_search duckduckgo \!' From ccce2e1cfdf5b9680f691a402e288d9cf6ce272a Mon Sep 17 00:00:00 2001 From: James Cuzella Date: Thu, 31 Aug 2023 15:35:33 -0600 Subject: [PATCH 004/212] fix(termsupport): match all `foot`-like terminfo (#11868) --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 6d969503de109..a800e651f5b7d 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -17,7 +17,7 @@ function title { : ${2=$1} case "$TERM" in - cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot|contour*) + cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot*|contour*) print -Pn "\e]2;${2:q}\a" # set window name print -Pn "\e]1;${1:q}\a" # set tab name ;; From 0dc40e88a3f5bbe2607d958b5f0bf79e9df0c118 Mon Sep 17 00:00:00 2001 From: not pua <140790944+im-notpua@users.noreply.github.com> Date: Sat, 2 Sep 2023 11:46:59 +0000 Subject: [PATCH 005/212] feat(battery): add support for OpenBSD (#11872) --- plugins/battery/battery.plugin.zsh | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index db5eeb93a700f..1d3d529a319e9 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -13,6 +13,10 @@ # Author: Avneet Singh (kalsi-avneet) # # Modified to add support for Android # ########################################### +# Author: Not Pua (im-notpua) # +# Modified to add support for OpenBSD # +########################################### + if [[ "$OSTYPE" = darwin* ]]; then function battery_is_charging() { @@ -139,6 +143,46 @@ elif [[ "$OSTYPE" = linux-android ]] && (( ${+commands[termux-battery-status]} ) echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" fi } +elif [[ "$OSTYPE" = openbsd* ]]; then + function battery_is_charging() { + [[ $(apm -b) -eq 3 ]] + } + function battery_pct() { + apm -l + } + function battery_pct_remaining() { + if ! battery_is_charging; then + battery_pct + else + echo "External Power" + fi + } + function battery_time_remaining() { + local remaining_time + remaining_time=$(apm -m) + if [[ $remaining_time -ge 0 ]]; then + ((hour = $remaining_time / 60 )) + ((minute = $remaining_time % 60 )) + printf %02d:%02d $hour $minute + fi + } + function battery_pct_prompt() { + local battery_pct color + battery_pct=$(battery_pct_remaining) + if battery_is_charging; then + echo "∞" + else + if [[ $battery_pct -gt 50 ]]; then + color='green' + elif [[ $battery_pct -gt 20 ]]; then + color='yellow' + else + color='red' + fi + echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" + fi + } + elif [[ "$OSTYPE" = linux* ]]; then function battery_is_charging() { if (( $+commands[acpitool] )); then From 1f56f2bdc455f2167c10fdbeca10934f5f0cbd99 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sun, 3 Sep 2023 23:08:19 +0800 Subject: [PATCH 006/212] fix(extract): remove extraction file extension for tar (#11873) --- plugins/extract/extract.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 513950f33b5df..88d8b0740aca2 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -30,6 +30,11 @@ EOF local file="$1" full_path="${1:A}" local extract_dir="${1:t:r}" + # Remove the .tar extension if the file name is .tar.* + if [[ $extract_dir =~ '\.tar$' ]]; then + extract_dir="${extract_dir:r}" + fi + # If there's a file or directory with the same name as the archive # add a random string to the end of the extract directory if [[ -e "$extract_dir" ]]; then From 2b1303a728afc285cc13a6710de128a050500f1e Mon Sep 17 00:00:00 2001 From: n0tr00t <106423923+0x020B@users.noreply.github.com> Date: Sun, 3 Sep 2023 15:38:32 +0000 Subject: [PATCH 007/212] feat(tmux): allow all standard config files (#11103) Closes #11803 Co-authored-by: n0tr00t <106423923+n0tr00teuorg@users.noreply.github.com> --- plugins/tmux/README.md | 26 +++++++++++++------------- plugins/tmux/tmux.plugin.zsh | 9 +++++++-- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 7348f77c94221..0f8473daf45c6 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -28,16 +28,16 @@ The plugin also supports the following: ## Configuration Variables -| Variable | Description | -| ----------------------------------- | ----------------------------------------------------------------------------- | -| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | -| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | -| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | -| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | -| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | -| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | -| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | -| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | -| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) | -| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | -| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | +| Variable | Description | +| ----------------------------------- | ------------------------------------------------------------------------------------------- | +| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | +| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | +| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | +| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | +| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | +| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | +| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | +| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | +| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | +| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | +| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 311c2e6a9b5e3..680f72598b723 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -26,12 +26,17 @@ fi # systems without the proper terminfo : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} # Set the configuration path -: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +if [[ -e $HOME/.tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +elif [[ -e ${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf} +else + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +fi # Set -u option to support unicode : ${ZSH_TMUX_UNICODE:=false} # ALIASES - alias ta='tmux attach -t' alias tad='tmux attach -d -t' alias ts='tmux new-session -s' From f694d5ecc9aa45f4c394d2e15bf2bfde96eeeda6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Pu=C5=A1k=C3=A1r?= <93598525+puskarpeter@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:17:28 +0200 Subject: [PATCH 008/212] feat(qodana): add completion plugin (#11813) --- plugins/qodana/README.md | 20 ++++++++++++++++++++ plugins/qodana/qodana.plugin.zsh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 plugins/qodana/README.md create mode 100644 plugins/qodana/qodana.plugin.zsh diff --git a/plugins/qodana/README.md b/plugins/qodana/README.md new file mode 100644 index 0000000000000..0b68bdecfb9c9 --- /dev/null +++ b/plugins/qodana/README.md @@ -0,0 +1,20 @@ +# JetBrains Qodana CLI plugin + +This plugin adds completion for the [JetBrains Qodana CLI](https://github.com/JetBrains/qodana-cli). + +To use it, add `qodana` to the plugins array in your zshrc file: + +```zsh +plugins=(... qodana) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_qodana` completions script diff --git a/plugins/qodana/qodana.plugin.zsh b/plugins/qodana/qodana.plugin.zsh new file mode 100644 index 0000000000000..2b92a8051a74c --- /dev/null +++ b/plugins/qodana/qodana.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for the JetBrains Qodana CLI (qodana). +if (( ! $+commands[qodana] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `qodana`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_qodana" ]]; then + typeset -g -A _comps + autoload -Uz _qodana + _comps[qodana]=_qodana +fi + +qodana completion zsh >| "$ZSH_CACHE_DIR/completions/_qodana" &| From 1abc1d998a71efd50af30210e26bee462496e442 Mon Sep 17 00:00:00 2001 From: Oscar Lee-Vermeren Date: Mon, 4 Sep 2023 13:21:27 -0400 Subject: [PATCH 009/212] feat(git-commit): create plugin (#9646) Co-authored-by: K. Akatsuki --- plugins/git-commit/README.md | 36 ++++++++++++++++++++++++ plugins/git-commit/git-commit.plugin.zsh | 23 +++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 plugins/git-commit/README.md create mode 100644 plugins/git-commit/git-commit.plugin.zsh diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md new file mode 100644 index 0000000000000..dc10d8ad5cebd --- /dev/null +++ b/plugins/git-commit/README.md @@ -0,0 +1,36 @@ +# git-commit plugin + +The git-commit plugin adds several [git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. + +To use it, add `git-commit` to the plugins array in your zshrc file: + +```zsh +plugins=(... git-commit) +``` + +## Syntax + +```zshrc +git [(-s, --scope) ""] "" +``` + +> ⚠️ Single/Double quotes around the scope and message are required + +Where `type` is one of the following: + +- `build` +- `chore` +- `ci` +- `docs` +- `feat` +- `fix` +- `perf` +- `refactor` +- `revert` +- `style` +- `test` + +## Examples + +`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"` +`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"` diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh new file mode 100644 index 0000000000000..70d541f21010a --- /dev/null +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -0,0 +1,23 @@ +_register() { + if ! git config --global --get-all alias.$1 &>/dev/null; then + git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' + fi +} + +aliases=( + 'build' + 'chore' + 'ci' + 'docs' + 'feat' + 'fix' + 'perf' + 'refactor' + 'revert' + 'style' + 'test' +) + +for alias in "${aliases[@]}"; do + _register $alias +done \ No newline at end of file From 30f0d591881713c4efd1482511943abca5103927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 4 Sep 2023 19:32:38 +0200 Subject: [PATCH 010/212] fix(init): exit gracefully if on non-zsh emulation mode (#11874) Fixes #11686 --- oh-my-zsh.sh | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 40f13f37e078e..137ca3b6fc149 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,14 +1,14 @@ +# ANSI formatting function (\033[m) +# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow +omz_f() { + [ $# -gt 0 ] || return + IFS=";" printf "\033[%sm" $* +} +# If stdout is not a terminal ignore all formatting +[ -t 1 ] || omz_f() { :; } + # Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) [ -n "$ZSH_VERSION" ] || { - # ANSI formatting function (\033[m) - # 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow - omz_f() { - [ $# -gt 0 ] || return - IFS=";" printf "\033[%sm" $* - } - # If stdout is not a terminal ignore all formatting - [ -t 1 ] || omz_f() { :; } - omz_ptree() { # Get process tree of the current process pid=$$; pids="$pid" @@ -38,6 +38,15 @@ return 1 } +# Check if in emulation mode, if so early return +# https://github.com/ohmyzsh/ohmyzsh/issues/11686 +[[ "$(emulate)" = zsh ]] || { + printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded in \`$(emulate)\` emulation mode.$(omz_f 0)\n" >&2 + return 1 +} + +unset -f omz_f + # If ZSH is not defined, use the current script's directory. [[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" From c74f2a1be980c60d937046364db0c9497187457a Mon Sep 17 00:00:00 2001 From: Tjark <16938041+tjarbo@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:43:06 +0200 Subject: [PATCH 011/212] feat(podman): add plugin (#11695) Closes #7489 Closes #9721 --- plugins/podman/README.md | 47 ++++++++++++++++++++++++++++++++ plugins/podman/podman.plugin.zsh | 47 ++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 plugins/podman/README.md create mode 100644 plugins/podman/podman.plugin.zsh diff --git a/plugins/podman/README.md b/plugins/podman/README.md new file mode 100644 index 0000000000000..99daa28cde1b5 --- /dev/null +++ b/plugins/podman/README.md @@ -0,0 +1,47 @@ +# Podman plugin + +This plugin adds auto-completion and aliases for [podman](https://podman.io/). + +To use it add `podman` to the plugins array in your zshrc file. + +```zsh +plugins=(... podman) +``` + +## Aliases + +| Alias | Command | Description | +| :------ | :-------------------------------------------- | :--------------------------------------------------------------------------------------- | +| pbl | `podman build` | Build an image from a Dockerfile | +| pcin | `podman container inspect` | Display detailed information on one or more containers | +| pcls | `podman container ls` | List all the running podman containers | +| pclsa | `podman container ls --all` | List all running and stopped containers | +| pib | `podman image build` | Build an image from a Dockerfile (same as podman build) | +| pii | `podman image inspect` | Display detailed information on one or more images | +| pils | `podman image ls` | List podman images | +| pipu | `podman image push` | Push an image or repository to a remote registry | +| pirm | `podman image rm` | Remove one or more images | +| pit | `podman image tag` | Add a name and tag to a particular image | +| plo | `podman container logs` | Fetch the logs of a podman container | +| pnc | `podman network create` | Create a new network | +| pncn | `podman network connect` | Connect a container to a network | +| pndcn | `podman network disconnect` | Disconnect a container from a network | +| pni | `podman network inspect` | Return information about one or more networks | +| pnls | `podman network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | +| pnrm | `podman network rm` | Remove one or more networks | +| ppo | `podman container port` | List port mappings or a specific mapping for the container | +| ppu | `podman pull` | Pull an image or a repository from a registry | +| pr | `podman container run` | Create a new container and start it using the specified command | +| prit | `podman container run --interactive --tty` | Create a new container and start it in an interactive shell | +| prm | `podman container rm` | Remove the specified container(s) | +| prm! | `podman container rm --force` | Force the removal of a running container (uses SIGKILL) | +| pst | `podman container start` | Start one or more stopped containers | +| prs | `podman container restart` | Restart one or more containers | +| psta | `podman stop $(podman ps -q)` | Stop all running containers | +| pstp | `podman container stop` | Stop one or more running containers | +| ptop | `podman top` | Display the running processes of a container | +| pvi | `podman volume inspect` | Display detailed information about one or more volumes | +| pvls | `podman volume ls` | List all the volumes known to podman | +| pvprune | `podman volume prune` | Cleanup dangling volumes | +| pxc | `podman container exec` | Run a new command in a running container | +| pxcit | `podman container exec --interactive --tty` | Run a new command in a running container in an interactive shell | diff --git a/plugins/podman/podman.plugin.zsh b/plugins/podman/podman.plugin.zsh new file mode 100644 index 0000000000000..97cf92b2a5f6d --- /dev/null +++ b/plugins/podman/podman.plugin.zsh @@ -0,0 +1,47 @@ +if (( ! $+commands[podman] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `podman`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_podman" ]]; then + typeset -g -A _comps + autoload -Uz _podman + _comps[podman]=_podman +fi + +podman completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_podman" &| + +alias pbl='podman build' +alias pcin='podman container inspect' +alias pcls='podman container ls' +alias pclsa='podman container ls --all' +alias pib='podman image build' +alias pii='podman image inspect' +alias pils='podman image ls' +alias pipu='podman image push' +alias pirm='podman image rm' +alias pit='podman image tag' +alias plo='podman container logs' +alias pnc='podman network create' +alias pncn='podman network connect' +alias pndcn='podman network disconnect' +alias pni='podman network inspect' +alias pnls='podman network ls' +alias pnrm='podman network rm' +alias ppo='podman container port' +alias ppu='podman pull' +alias pr='podman container run' +alias prit='podman container run --interactive --tty' +alias prm='podman container rm' +alias 'prm!'='podman container rm --force' +alias pst='podman container start' +alias prs='podman container restart' +alias psta='podman stop $(podman ps --quiet)' +alias pstp='podman container stop' +alias ptop='podman top' +alias pvi='podman volume inspect' +alias pvls='podman volume ls' +alias pvprune='podman volume prune' +alias pxc='podman container exec' +alias pxcit='podman container exec --interactive --tty' From bae577d6b2eb621fedc994d6309b6f819855c2f8 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 5 Sep 2023 11:41:50 +0100 Subject: [PATCH 012/212] fix(git)!: remove `-b` from `blame` alias (#11864) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index c3e6dd27daeaa..44ed6f320d7f1 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -34,7 +34,7 @@ plugins=(... git) | gbsg | git bisect good | | gbsr | git bisect reset | | gbss | git bisect start | -| gbl | git blame -b -w | +| gbl | git blame -w | | gb | git branch | | gba | git branch --all | | gbd | git branch --delete | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 8886aac6d7a0f..e20373de5cd6e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -115,7 +115,7 @@ alias gbsb='git bisect bad' alias gbsg='git bisect good' alias gbsr='git bisect reset' alias gbss='git bisect start' -alias gbl='git blame -b -w' +alias gbl='git blame -w' alias gb='git branch' alias gba='git branch --all' alias gbd='git branch --delete' From 8e8ec1348b3d4ae5fa156e26c07040ade461c83a Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 6 Sep 2023 10:54:11 +0200 Subject: [PATCH 013/212] fix(git-commit): avoid conflict with `aliases` var Closes #11876 --- plugins/git-commit/git-commit.plugin.zsh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 70d541f21010a..2ac8aa5f4d48e 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,10 +1,11 @@ -_register() { - if ! git config --global --get-all alias.$1 &>/dev/null; then +function _git_commit_register { + if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' fi } -aliases=( +local -a _git_commit_aliases +_git_commit_aliases=( 'build' 'chore' 'ci' @@ -18,6 +19,9 @@ aliases=( 'test' ) -for alias in "${aliases[@]}"; do - _register $alias -done \ No newline at end of file +for _alias in "${_git_commit_aliases[@]}"; do + _git_commit_register $_alias +done + +unfunction _git_commit_register +unset _alias From 76e541a3fe71075c8ef75ecf44cd60f17b5292bb Mon Sep 17 00:00:00 2001 From: Felipe Gallois Date: Wed, 6 Sep 2023 10:18:36 +0100 Subject: [PATCH 014/212] feat(gallois): big rewrite to `gallois` theme (#11867) --- themes/gallois.zsh-theme | 136 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 126 insertions(+), 10 deletions(-) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index bb97bfb1782cc..3fc349072bd46 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -1,24 +1,140 @@ # Depends on the git plugin for work_in_progress() (( $+functions[work_in_progress] )) || work_in_progress() {} -ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" -ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}[%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[cyan]%}]" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_CLEAN="" # Customized git status, oh-my-zsh currently does not allow render dirty status before branch git_custom_status() { local branch=$(git_current_branch) [[ -n "$branch" ]] || return 0 - echo "$(parse_git_dirty)\ -%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ -${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" + print "%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}$(parse_git_dirty)${branch}\ +${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} +autoload -U colors && colors + +#export VCS_PROMPT=hg_prompt_info +export VCS_PROMPT=git_custom_status + +base_prompt="%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b " +custom_prompt="" +last_run_time="" +last_vcs_info="" + + +function pipestatus_parse { + PIPESTATUS="$pipestatus" + ERROR=0 + for i in "${(z)PIPESTATUS}"; do + if [[ "$i" -ne 0 ]]; then + ERROR=1 + fi + done + + if [[ "$ERROR" -ne 0 ]]; then + print "[%{$fg[red]%}$PIPESTATUS%{$fg[cyan]%}]" + fi } -# RVM component of prompt -ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" -ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" # Combine it all into a final right-side prompt -RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' +function preexec() { + last_run_time=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') +} + +function duration() { + local duration + local now=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') + local last=$1 + local last_split=("${(@s/./)last}") + local now_split=("${(@s/./)now}") + local T=$((now_split[1] - last_split[1])) + local D=$((T/60/60/24)) + local H=$((T/60/60%24)) + local M=$((T/60%60)) + local S=$((T%60)) + local s=$(((now_split[2] - last_split[2]) / 1000000000.)) + local m=$(((now_split[2] - last_split[2]) / 1000000.)) + + (( $D > 0 )) && duration+="${D}d" + (( $H > 0 )) && duration+="${H}h" + (( $M > 0 )) && duration+="${M}m" + + if [[ $S -le 0 ]]; then + printf "%ims" "$m" + else + if ! [[ -z $duration ]] && printf "%s" "$duration" + local sec_milli=$((S + s)) + printf "%.3fs" "$sec_milli" + fi +} + +function precmd() { + RETVAL=$(pipestatus_parse) + local info="" + + if [ ! -z "$last_run_time" ]; then + local elapsed=$(duration $last_run_time) + last_run_time=$(print $last_run_time | tr -d ".") + if [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 120 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[magenta]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 60 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[red]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 10 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[yellow]%}" + else + local elapsed_color="%{$fg[green]%}" + fi + info=$(printf "%s%s%s%s%s" "%{$fg[cyan]%}[" "$elapsed_color" "$elapsed" "%{$fg[cyan]%}]" "$RETVAL") + unset last_run_time + fi + + if [ -z "$info" -a ! -z "$last_vcs_info" ]; then + custom_prompt="$last_vcs_info$base_prompt" + return; + fi + + if (( ${+VCS_PROMPT} )); then + last_vcs_info=$($VCS_PROMPT) + if [ ! -z "$last_vcs_info" ]; then + [ -z "$info" ] && info=$last_vcs_info || info="$info$last_vcs_info" + fi + fi + + [ -z "$info" ] && custom_prompt="$base_prompt" || custom_prompt="$info$base_prompt" +} + +function hg_prompt_info() { + unset output info parts branch_parts branch + + local output="" + if ! output="$(hg status 2> /dev/null)"; then + return + fi + + local info=$(hg log -l1 --template '{author}:{node|short}:{remotenames}:{phabdiff}') + local parts=(${(@s/:/)info}) + local branch_parts=(${(@s,/,)parts[3]}) + local branch=${branch_parts[-1]} + [ ! -z "${parts[3]}" ] && [[ "${parts[1]}" =~ "$USER@" ]] && branch=${parts[3]} + [ -z "${parts[3]}" ] && branch=${parts[2]} + + if [[ ! -z "$output" ]]; then + local color="%{$fg[red]%}" + elif [[ "${branch}" == "master" || "${branch}" == "warm" ]]; then + local color="%{$fg[yellow]%}" + else + local color="%{$fg[green]%}" + fi + + print "%{$fg[cyan]%}[${color}${branch}%{$fg[cyan]%}]" +} + +setopt PROMPT_SUBST +PROMPT='$custom_prompt' + + From 331f3c8b2e28e47af41ae309aa814dab524a3374 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 6 Sep 2023 11:36:57 +0100 Subject: [PATCH 015/212] feat(git): add bisect aliases `gbsn` and `gbso` (#11869) --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 44ed6f320d7f1..922cbee559cf3 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -32,6 +32,8 @@ plugins=(... git) | gbs | git bisect | | gbsb | git bisect bad | | gbsg | git bisect good | +| gbsn | git bisect new | +| gbso | git bisect old | | gbsr | git bisect reset | | gbss | git bisect start | | gbl | git blame -w | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index e20373de5cd6e..4afe34e992fe1 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -113,6 +113,8 @@ alias gapt='git apply --3way' alias gbs='git bisect' alias gbsb='git bisect bad' alias gbsg='git bisect good' +alias gbsn='git bisect new' +alias gbso='git bisect old' alias gbsr='git bisect reset' alias gbss='git bisect start' alias gbl='git blame -w' From 6a7aab47dd6071b7f264477195b06efb7e7bd480 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 6 Sep 2023 11:42:09 +0100 Subject: [PATCH 016/212] docs(git): align markdown table borders (#11878) --- plugins/git/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 922cbee559cf3..6eb63ea40742c 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -36,7 +36,7 @@ plugins=(... git) | gbso | git bisect old | | gbsr | git bisect reset | | gbss | git bisect start | -| gbl | git blame -w | +| gbl | git blame -w | | gb | git branch | | gba | git branch --all | | gbd | git branch --delete | From 079dbff2c4f22935a71101c511e2285327d8ab68 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 6 Sep 2023 19:01:41 +0200 Subject: [PATCH 017/212] feat(pipenv): add option to disable auto shell feature Closes #11472 --- plugins/pipenv/README.md | 15 ++++++++++++- plugins/pipenv/pipenv.plugin.zsh | 38 +++++++++++++++++--------------- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/plugins/pipenv/README.md b/plugins/pipenv/README.md index 4329feb3216f8..e78ef0e3bb14f 100644 --- a/plugins/pipenv/README.md +++ b/plugins/pipenv/README.md @@ -1,6 +1,7 @@ # Pipenv ## Installation + In your `.zshrc` file, add `pipenv` to the plugins section ``` @@ -8,7 +9,9 @@ plugins=(... pipenv ...) ``` ## Features -This plugin provides some features to simplify the use of Pipenv while working on ZSH. + +This plugin provides some features to simplify the use of Pipenv while working on ZSH. + - Adds completion for pipenv - Auto activates and deactivates pipenv shell - Adds short aliases for common pipenv commands @@ -27,3 +30,13 @@ This plugin provides some features to simplify the use of Pipenv while working o - `pwh` is aliased to `pipenv --where` - `pvenv` is aliased to `pipenv --venv` - `ppy` is aliased to `pipenv --py` + +## Configuration + +### Shell activation + +If you want to disable the shell activation and deactivation feature, add the following style to your `.zshrc` before sourcing `oh-my-zsh.sh`: + +```zsh +zstyle ':omz:plugins:pipenv' auto-shell no +``` diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh index 22d1a3131d1ae..f81c266a461af 100644 --- a/plugins/pipenv/pipenv.plugin.zsh +++ b/plugins/pipenv/pipenv.plugin.zsh @@ -12,28 +12,30 @@ fi _PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &| -# Automatic pipenv shell activation/deactivation -_togglePipenvShell() { - # deactivate shell if Pipfile doesn't exist and not in a subdir - if [[ ! -f "$PWD/Pipfile" ]]; then - if [[ "$PIPENV_ACTIVE" == 1 ]]; then - if [[ "$PWD" != "$pipfile_dir"* ]]; then - exit +if zstyle -T ':omz:plugins:pipenv' auto-shell; then + # Automatic pipenv shell activation/deactivation + _togglePipenvShell() { + # deactivate shell if Pipfile doesn't exist and not in a subdir + if [[ ! -f "$PWD/Pipfile" ]]; then + if [[ "$PIPENV_ACTIVE" == 1 ]]; then + if [[ "$PWD" != "$pipfile_dir"* ]]; then + exit + fi fi fi - fi - # activate the shell if Pipfile exists - if [[ "$PIPENV_ACTIVE" != 1 ]]; then - if [[ -f "$PWD/Pipfile" ]]; then - export pipfile_dir="$PWD" - pipenv shell + # activate the shell if Pipfile exists + if [[ "$PIPENV_ACTIVE" != 1 ]]; then + if [[ -f "$PWD/Pipfile" ]]; then + export pipfile_dir="$PWD" + pipenv shell + fi fi - fi -} -autoload -U add-zsh-hook -add-zsh-hook chpwd _togglePipenvShell -_togglePipenvShell + } + autoload -U add-zsh-hook + add-zsh-hook chpwd _togglePipenvShell + _togglePipenvShell +fi # Aliases alias pch="pipenv check" From b07c8cfe692bc6c7702f0aef5d493b12dfb43392 Mon Sep 17 00:00:00 2001 From: Haltarys <45515869+Haltarys@users.noreply.github.com> Date: Sun, 10 Sep 2023 09:28:33 +0200 Subject: [PATCH 018/212] fix(git-commit): fix compatibility of alias functions (#11883) --- plugins/git-commit/git-commit.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 2ac8aa5f4d48e..4ad4c01770a80 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,6 +1,6 @@ function _git_commit_register { if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then - git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a' + git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a' fi } From cd18bce53e01d0f614ffcbb7429053fb508cb095 Mon Sep 17 00:00:00 2001 From: AJ Jordan Date: Mon, 11 Sep 2023 03:31:53 -0400 Subject: [PATCH 019/212] feat(mortalscumbag): show toolbox info (#11884) --- themes/mortalscumbag.zsh-theme | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index d81a7ca06ce18..36301cb76ae52 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -51,8 +51,14 @@ function ssh_connection() { fi } +function _toolbox_prompt_info() { + if typeset -f toolbox_prompt_info > /dev/null; then + toolbox_prompt_info + fi +} + local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" -PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' +PROMPT=$'\n$(_toolbox_prompt_info)$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" From 7077989d28e9cd723afcb4355874683d847278b4 Mon Sep 17 00:00:00 2001 From: Samuel Beckley Date: Mon, 11 Sep 2023 03:35:28 -0400 Subject: [PATCH 020/212] feat(macos): update spotify plugin to upstream (#11534) --- plugins/macos/spotify | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 5fb40517c3185..ae42db425c98c 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -1,7 +1,7 @@ #!/usr/bin/env bash function spotify() { -# Copyright (c) 2012--2019 Harish Narayanan +# Copyright (c) 2012--2023 Harish Narayanan # # Contains numerous helpful contributions from Jorge Colindres, Thomas # Pritchard, iLan Epstein, Gabriele Bonetti, Sean Heller, Eric Martin @@ -35,6 +35,9 @@ if ! [[ -f "${USER_CONFIG_FILE}" ]]; then fi source "${USER_CONFIG_FILE}"; +# Set the percent change in volume for vol up and vol down +VOL_INCREMENT=10 + showAPIHelp() { echo; echo "Connecting to Spotify's API:"; @@ -170,12 +173,12 @@ while [ $# -gt 0 ]; do if [ -z "${CLIENT_ID}" ]; then cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi if [ -z "${CLIENT_SECRET}" ]; then cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r'); SPOTIFY_PLAY_URI=""; @@ -198,7 +201,7 @@ while [ $# -gt 0 ]; do fi SPOTIFY_ACCESS_TOKEN=$( \ printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \ - | grep -E -o '"access_token":".*",' \ + | command grep -E -o '"access_token":".*",' \ | sed 's/"access_token"://g' \ | sed 's/"//g' \ | sed 's/,.*//g' \ @@ -219,9 +222,8 @@ while [ $# -gt 0 ]; do -H "Accept: application/json" \ --data-urlencode "q=$Q" \ -d "type=$type&limit=1&offset=0" \ - | grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 + | command grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 ) - echo "play uri: ${SPOTIFY_PLAY_URI}" } case $2 in @@ -235,11 +237,11 @@ while [ $# -gt 0 ]; do results=$( \ curl -s -G $SPOTIFY_SEARCH_API --data-urlencode "q=$Q" -d "type=playlist&limit=10&offset=0" -H "Accept: application/json" -H "Authorization: Bearer ${SPOTIFY_ACCESS_TOKEN}" \ - | grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ + | command grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ ) count=$( \ - echo "$results" | grep -c "spotify:playlist" \ + echo "$results" | command grep -c "spotify:playlist" \ ) if [ "$count" -gt 0 ]; then @@ -333,16 +335,16 @@ while [ $# -gt 0 ]; do cecho "Current Spotify volume level is $vol."; break ; elif [ "$2" = "up" ]; then - if [ $vol -le 90 ]; then - newvol=$(( vol+10 )); + if [ $vol -le $(( 100-$VOL_INCREMENT )) ]; then + newvol=$(( vol+$VOL_INCREMENT )); cecho "Increasing Spotify volume to $newvol."; else newvol=100; cecho "Spotify volume level is at max."; fi elif [ "$2" = "down" ]; then - if [ $vol -ge 10 ]; then - newvol=$(( vol-10 )); + if [ $vol -ge $(( $VOL_INCREMENT )) ]; then + newvol=$(( vol-$VOL_INCREMENT )); cecho "Reducing Spotify volume to $newvol."; else newvol=0; @@ -354,11 +356,11 @@ while [ $# -gt 0 ]; do else echo "Improper use of 'vol' command" echo "The 'vol' command should be used as follows:" - echo " vol up # Increases the volume by 10%."; - echo " vol down # Decreases the volume by 10%."; + echo " vol up # Increases the volume by $VOL_INCREMENT%."; + echo " vol down # Decreases the volume by $VOL_INCREMENT%."; echo " vol [amount] # Sets the volume to an amount between 0 and 100."; echo " vol # Shows the current Spotify volume."; - return 1 + return 1; fi osascript -e "tell application \"Spotify\" to set sound volume to $newvol"; @@ -468,10 +470,9 @@ while [ $# -gt 0 ]; do "help" ) showHelp; break ;; - * ) showHelp; - return 1 ;; + return 1; esac done From 38ef5192cb1c43159b516d15ab8fed96f847b36b Mon Sep 17 00:00:00 2001 From: Felipe Gallois Date: Mon, 11 Sep 2023 10:05:50 +0100 Subject: [PATCH 021/212] feat(oldgalois): add theme (#11880) Closes #11879 --- themes/oldgallois.zsh-theme | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 themes/oldgallois.zsh-theme diff --git a/themes/oldgallois.zsh-theme b/themes/oldgallois.zsh-theme new file mode 100644 index 0000000000000..bb97bfb1782cc --- /dev/null +++ b/themes/oldgallois.zsh-theme @@ -0,0 +1,24 @@ +# Depends on the git plugin for work_in_progress() +(( $+functions[work_in_progress] )) || work_in_progress() {} + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Customized git status, oh-my-zsh currently does not allow render dirty status before branch +git_custom_status() { + local branch=$(git_current_branch) + [[ -n "$branch" ]] || return 0 + echo "$(parse_git_dirty)\ +%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} + +# RVM component of prompt +ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" +ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" + +# Combine it all into a final right-side prompt +RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" +PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' From 01f55123118601a935f28ff6c49e625448bdd32d Mon Sep 17 00:00:00 2001 From: bretello Date: Tue, 12 Sep 2023 21:41:07 +0200 Subject: [PATCH 022/212] feat(systemd): add alias for --failed commands (#11847) --- plugins/systemd/README.md | 1 + plugins/systemd/systemd.plugin.zsh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md index ffa0567a853f6..755c649a12fd2 100644 --- a/plugins/systemd/README.md +++ b/plugins/systemd/README.md @@ -12,6 +12,7 @@ plugins=(... systemd) | Alias | Command | Description | |:-----------------------|:-----------------------------------|:-----------------------------------------------------------------| +| `sc-failed` | `systemctl --failed` | List failed systemd units | | `sc-list-units` | `systemctl list-units` | List all units systemd has in memory | | `sc-is-active` | `systemctl is-active` | Show whether a unit is active | | `sc-status` | `systemctl status` | Show terse runtime status information about one or more units | diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh index 1270bea0e376c..382a57b297e1d 100644 --- a/plugins/systemd/systemd.plugin.zsh +++ b/plugins/systemd/systemd.plugin.zsh @@ -93,6 +93,9 @@ alias scu-enable-now="scu-enable --now" alias scu-disable-now="scu-disable --now" alias scu-mask-now="scu-mask --now" +# --failed commands +alias scu-failed='systemctl --user --failed' +alias sc-failed='systemctl --failed' function systemd_prompt_info { local unit From 7e4c26860d74a01cd6d91fd10fcc28fccd740ddd Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 13 Sep 2023 10:48:16 +0200 Subject: [PATCH 023/212] feat(brew): add support for custom `BREW_LOCATION` Fixes #11888 Co-authored-by: Matt Cable --- plugins/brew/README.md | 20 +++++++++++--------- plugins/brew/brew.plugin.zsh | 7 ++++++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 4730194bc681f..299393b2862c8 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -10,10 +10,12 @@ plugins=(... brew) ## Shellenv -If `brew` is not found in the PATH, this plugin will attempt to find it in common -locations, and execute `brew shellenv` to set the environment appropriately. -This plugin will also export `HOMEBREW_PREFIX="$(brew --prefix)"` if not previously -defined for convenience. +If `brew` is not found in the PATH, this plugin will attempt to find it in common locations, and execute +`brew shellenv` to set the environment appropriately. This plugin will also export +`HOMEBREW_PREFIX="$(brew --prefix)"` if not previously defined for convenience. + +In case you installed `brew` in a non-common location, you can still set `BREW_LOCATION` variable pointing to +the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environment. ## Aliases @@ -33,9 +35,9 @@ defined for convenience. ## Completion -This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. +This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it +manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. -With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the -brew installation, so we no longer ship it with the brew plugin; now it only has brew -aliases. If you find that brew completion no longer works, make sure you have your Homebrew -installation fully up to date. +With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the brew installation, +so we no longer ship it with the brew plugin; now it only has brew aliases. If you find that brew completion +no longer works, make sure you have your Homebrew installation fully up to date. diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index b52664a3900ca..44703637612cf 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,5 +1,10 @@ if (( ! $+commands[brew] )); then - if [[ -x /opt/homebrew/bin/brew ]]; then + if [[ -n "$BREW_LOCATION" ]]; then + if [[ ! -x "$BREW_LOCATION" ]]; then + echo "[oh-my-zsh] $BREW_LOCATION is not executable" + return + fi + elif [[ -x /opt/homebrew/bin/brew ]]; then BREW_LOCATION="/opt/homebrew/bin/brew" elif [[ -x /usr/local/bin/brew ]]; then BREW_LOCATION="/usr/local/bin/brew" From 4167474f124bfc39d0e6cd612c95acf0a1ae9904 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 13 Sep 2023 16:31:24 +0200 Subject: [PATCH 024/212] feat(grc): add support for arm64 macos (#11890) --- plugins/grc/grc.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/grc/grc.plugin.zsh b/plugins/grc/grc.plugin.zsh index b709b9e0267cf..e036b8d8922e6 100644 --- a/plugins/grc/grc.plugin.zsh +++ b/plugins/grc/grc.plugin.zsh @@ -2,8 +2,9 @@ # common grc.zsh paths files=( - /etc/grc.zsh # default - /usr/local/etc/grc.zsh # homebrew + /etc/grc.zsh # default + /usr/local/etc/grc.zsh # homebrew darwin-x64 + /opt/homebrew/etc/grc.zsh # homebrew darwin-arm64 ) # verify the file is readable and source it From bbda81fe4b338f00bbf7c7f33e6d1b12d067dc05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 13 Sep 2023 19:23:41 +0200 Subject: [PATCH 025/212] fix(changelog): fix regression for unstyled code in commit subjects --- tools/changelog.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 1af74e42d7408..6d768963e1a95 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -366,7 +366,7 @@ function display-release { # In text mode, highlight (#) and dim text between `backticks` text) if supports_hyperlinks; then - sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g' <<< "$subject" + sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" else sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" fi ;; From cdd7dab5db4c668b962f908b57e244aa1ff4b574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 17 Sep 2023 16:20:46 +0200 Subject: [PATCH 026/212] ci(installer): remove `vc link` which generates the wrong project `vc link` is not needed, as we already have `VERCEL_PROJECT_ID` defined as an env variable. Currently the `vc link` only creates a second empty project with the name `installer` as seen in logs: Linked to ohmyzsh/installer (created .vercel and added it to .gitignore) Vercel CLI 32.2.4 --- .github/workflows/installer.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index ac88d10b08da7..4a25c8079ef36 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -51,5 +51,4 @@ jobs: run: | cp tools/install.sh .github/workflows/installer/install.sh cd .github/workflows/installer - vc link --yes -t ${{ secrets.VERCEL_TOKEN }} vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }} From 91cd5341b9e682bf1c1be4a4051249cffdab7943 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Godde Date: Wed, 20 Sep 2023 12:09:46 +0200 Subject: [PATCH 027/212] fix(gcloud): source `path.zsh.inc` always (#11901) --- plugins/gcloud/gcloud.plugin.zsh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 5c57302d36d9f..9a4213aaf14d5 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -29,11 +29,9 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then fi if (( ${+CLOUDSDK_HOME} )); then - # Only source this if gcloud isn't already on the path - if (( ! $+commands[gcloud] )); then - if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then - source "${CLOUDSDK_HOME}/path.zsh.inc" - fi + # Source path file + if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then + source "${CLOUDSDK_HOME}/path.zsh.inc" fi # Look for completion file in different paths From 350427dea2293a3e23f9823b5dc2574c1b1ae2a2 Mon Sep 17 00:00:00 2001 From: Trick van Staveren Date: Wed, 20 Sep 2023 09:09:26 -0500 Subject: [PATCH 028/212] feat(hitchhiker): clean up refs to magic string (#11900) --- plugins/hitchhiker/fortunes/hitchhiker | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/hitchhiker/fortunes/hitchhiker b/plugins/hitchhiker/fortunes/hitchhiker index 825b86cd60be4..b0448b21edcdb 100644 --- a/plugins/hitchhiker/fortunes/hitchhiker +++ b/plugins/hitchhiker/fortunes/hitchhiker @@ -194,31 +194,31 @@ ARTHUR It probably seems a terrible thing to say, but you know what I sometimes - One of the more preferable pieces of advice contained in the Guide. % -"His eyes seemed to be popping out of his head. He wasn't certain if this was because they were trying to see more clearly, or if they simply wanted to leave at this point."QUOTEHERESTRINGMAGIC1234- Arthur trying to see who had diverted him from going to a party. +"His eyes seemed to be popping out of his head. He wasn't certain if this was because they were trying to see more clearly, or if they simply wanted to leave at this point." - Arthur trying to see who had diverted him from going to a party. % -"Arthur yawed wildly as his skin tried to jump one way and his skeleton the other, whilst his brain tried to work out which of his ears it most wanted to crawl out of. `Bet you weren't expecting to see me again,' said the monster, which Arthur couldn't help thinking was a strange remark for it to make, seeing as he had never met the creature before. He could tell that he hadn't met the creature before from the simple fact that he was able to sleep at nights."QUOTEHERESTRINGMAGIC1234- Arthur discovering who had diverted him from going to a party. +"Arthur yawed wildly as his skin tried to jump one way and his skeleton the other, whilst his brain tried to work out which of his ears it most wanted to crawl out of. `Bet you weren't expecting to see me again,' said the monster, which Arthur couldn't help thinking was a strange remark for it to make, seeing as he had never met the creature before. He could tell that he hadn't met the creature before from the simple fact that he was able to sleep at nights." - Arthur discovering who had diverted him from going to a party. % -"`That young girl is one of the least benightedly unintelligent organic life forms it has been my profound lack of pleasure not to be able to avoid meeting.'"QUOTEHERESTRINGMAGIC1234- Marvin's first ever compliment about anybody. +"`That young girl is one of the least benightedly unintelligent organic life forms it has been my profound lack of pleasure not to be able to avoid meeting.'" - Marvin's first ever compliment about anybody. % -"Arthur hoped and prayed that there wasn't an afterlife. Then he realised there was a contradiction there and merely hoped that there wasn't an afterlife."QUOTEHERESTRINGMAGIC1234- Arthur realising that he's in a certain death situation with a supernova bomb that is shaped like a cricket ball. +"Arthur hoped and prayed that there wasn't an afterlife. Then he realised there was a contradiction there and merely hoped that there wasn't an afterlife." - Arthur realising that he's in a certain death situation with a supernova bomb that is shaped like a cricket ball. % -"`Credit?' he said. `Aaaargggh...' These two words are usually coupled together in the Old Pink Dog Bar."QUOTEHERESTRINGMAGIC1234- Ford in a spot of bother. +"`Credit?' he said. `Aaaargggh...' These two words are usually coupled together in the Old Pink Dog Bar." - Ford in a spot of bother. % -"`...we might as well start with where your hand is now.' Arthur said, `So which way do I go?' `Down,' said Fenchurch, `on this occasion.' He moved his hand. `Down,' she said, `is in fact the other way.' `Oh yes.'"QUOTEHERESTRINGMAGIC1234- Arthur trying to discover which part of Fenchurch is wrong. +"`...we might as well start with where your hand is now.' Arthur said, `So which way do I go?' `Down,' said Fenchurch, `on this occasion.' He moved his hand. `Down,' she said, `is in fact the other way.' `Oh yes.'" - Arthur trying to discover which part of Fenchurch is wrong. % -"There was a point to this story, but it has temporarily escaped the chronicler's mind."QUOTEHERESTRINGMAGIC1234- This line perhaps best sums up the whole book. +"There was a point to this story, but it has temporarily escaped the chronicler's mind." - This line perhaps best sums up the whole book. % -"The last time anybody made a list of the top hundred character attributes of New Yorkers, common sense snuck in at number 79. .... When it's fall in New York, the air smells as if someone's been frying goats in it, and if you are keen to breathe the best plan is to open a window and stick your head in a building."QUOTEHERESTRINGMAGIC1234- Nuff said?? +"The last time anybody made a list of the top hundred character attributes of New Yorkers, common sense snuck in at number 79. .... When it's fall in New York, the air smells as if someone's been frying goats in it, and if you are keen to breathe the best plan is to open a window and stick your head in a building." - Nuff said?? % -"`What's been happening here?' he demanded. `Oh just the nicest things, sir, just the nicest things. can I sit on your lap please?'" "`Colin, I am going to abandon you to your fate.' `I'm so happy.'" "`It will be very, very nasty for you, and that's just too bad. Got it?' `I gurgle with pleasure.'"QUOTEHERESTRINGMAGIC1234- Ford and Colin the robot. +"`What's been happening here?' he demanded. `Oh just the nicest things, sir, just the nicest things. can I sit on your lap please?'" "`Colin, I am going to abandon you to your fate.' `I'm so happy.'" "`It will be very, very nasty for you, and that's just too bad. Got it?' `I gurgle with pleasure.'" - Ford and Colin the robot. % -"What the hell, he thought, you're only young once, and threw himself out of the window. That would at least keep the element of surprise on his side."QUOTEHERESTRINGMAGIC1234- Ford outwitting a Vogon with a rocket launcher by going into another certain death situation. +"What the hell, he thought, you're only young once, and threw himself out of the window. That would at least keep the element of surprise on his side." - Ford outwitting a Vogon with a rocket launcher by going into another certain death situation. % -"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair."QUOTEHERESTRINGMAGIC1234- One of the laws of computers and programming revealed. +"The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair." - One of the laws of computers and programming revealed. % -"`You know they've reintroduced the death penalty for insurance company directors?' `Really?' said Arthur. `No I didn't. For what offence?' Trillian frowned. `What do you mean, offence?' `I see.'"QUOTEHERESTRINGMAGIC1234- Evidence that there will be some justice in the Universe eventually. +"`You know they've reintroduced the death penalty for insurance company directors?' `Really?' said Arthur. `No I didn't. For what offence?' Trillian frowned. `What do you mean, offence?' `I see.'" - Evidence that there will be some justice in the Universe eventually. % -"`She hit me on the head with the rock again.' `I think I can confirm that that was my daughter.' `Sweet kid.' `You have to get to know her,' said Arthur. `She eases up does she?' `No,' said Arthur, `but you get a better sense of when to duck.'"QUOTEHERESTRINGMAGIC1234- Ford and Arthur on Random. +"`She hit me on the head with the rock again.' `I think I can confirm that that was my daughter.' `Sweet kid.' `You have to get to know her,' said Arthur. `She eases up does she?' `No,' said Arthur, `but you get a better sense of when to duck.'" - Ford and Arthur on Random. % "Far out in the uncharted backwaters of the unfashionable end of the western spiral arm of the Galaxy lies a small unregarded yellow sun. " % From 1cc32be5f632ff933b3e3f1c7bd9e612a274c095 Mon Sep 17 00:00:00 2001 From: ajatkj Date: Wed, 20 Sep 2023 20:21:27 +0530 Subject: [PATCH 029/212] feat(poetry-env): create plugin (#11069) --- plugins/poetry-env/README.md | 10 +++++++++ plugins/poetry-env/poetry-env.plugin.zsh | 27 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 plugins/poetry-env/README.md create mode 100644 plugins/poetry-env/poetry-env.plugin.zsh diff --git a/plugins/poetry-env/README.md b/plugins/poetry-env/README.md new file mode 100644 index 0000000000000..a7d16563ed692 --- /dev/null +++ b/plugins/poetry-env/README.md @@ -0,0 +1,10 @@ +# Poetry Environment Plugin + +This plugin automatically changes poetry environment when you cd into or out of the project directory. +Note: Script looks for pyproject.toml file to determine poetry if its a poetry environment + +To use it, add `poetry-env` to the plugins array in your zshrc file: + +```zsh +plugins=(... poetry-env) +``` diff --git a/plugins/poetry-env/poetry-env.plugin.zsh b/plugins/poetry-env/poetry-env.plugin.zsh new file mode 100644 index 0000000000000..86e5fad4ec25c --- /dev/null +++ b/plugins/poetry-env/poetry-env.plugin.zsh @@ -0,0 +1,27 @@ +# Automatic poetry environment activation/deactivation +_togglePoetryShell() { + # deactivate environment if pyproject.toml doesn't exist and not in a subdir + if [[ ! -f "$PWD/pyproject.toml" ]] ; then + if [[ "$poetry_active" == 1 ]]; then + if [[ "$PWD" != "$poetry_dir"* ]]; then + export poetry_active=0 + deactivate + return + fi + fi + fi + + # activate the environment if pyproject.toml exists + if [[ "$poetry_active" != 1 ]]; then + if [[ -f "$PWD/pyproject.toml" ]]; then + if grep -q 'tool.poetry' "$PWD/pyproject.toml"; then + export poetry_active=1 + export poetry_dir="$PWD" + source "$(poetry env info --path)/bin/activate" + fi + fi + fi +} +autoload -U add-zsh-hook +add-zsh-hook chpwd _togglePoetryShell +_togglePoetryShell From 1c55a0fe5246487ec9f18e03b7f28862b76cb7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Thu, 21 Sep 2023 12:43:00 +0200 Subject: [PATCH 030/212] feat(dnf): use `dnf5` if available (#11904) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marcus Müller --- plugins/dnf/README.md | 3 +++ plugins/dnf/dnf.plugin.zsh | 28 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/plugins/dnf/README.md b/plugins/dnf/README.md index dc0d1e0a08b0e..f45c8778c8b49 100644 --- a/plugins/dnf/README.md +++ b/plugins/dnf/README.md @@ -10,6 +10,9 @@ To use it, add `dnf` to the plugins array in your zshrc file: plugins=(... dnf) ``` +Classic `dnf` is getting superseded by `dnf5`; this plugin detects the presence +of `dnf5` and uses it as drop-in alternative to the slower `dnf`. + ## Aliases | Alias | Command | Description | diff --git a/plugins/dnf/dnf.plugin.zsh b/plugins/dnf/dnf.plugin.zsh index 653ce7dda0446..642422fe1e3d9 100644 --- a/plugins/dnf/dnf.plugin.zsh +++ b/plugins/dnf/dnf.plugin.zsh @@ -1,15 +1,19 @@ ## Aliases +local dnfprog="dnf" -alias dnfl="dnf list" # List packages -alias dnfli="dnf list installed" # List installed packages -alias dnfgl="dnf grouplist" # List package groups -alias dnfmc="dnf makecache" # Generate metadata cache -alias dnfp="dnf info" # Show package information -alias dnfs="dnf search" # Search package +# Prefer dnf5 if installed +command -v dnf5 > /dev/null && dnfprog=dnf5 -alias dnfu="sudo dnf upgrade" # Upgrade package -alias dnfi="sudo dnf install" # Install package -alias dnfgi="sudo dnf groupinstall" # Install package group -alias dnfr="sudo dnf remove" # Remove package -alias dnfgr="sudo dnf groupremove" # Remove package group -alias dnfc="sudo dnf clean all" # Clean cache +alias dnfl="${dnfprog} list" # List packages +alias dnfli="${dnfprog} list installed" # List installed packages +alias dnfgl="${dnfprog} grouplist" # List package groups +alias dnfmc="${dnfprog} makecache" # Generate metadata cache +alias dnfp="${dnfprog} info" # Show package information +alias dnfs="${dnfprog} search" # Search package + +alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package +alias dnfi="sudo ${dnfprog} install" # Install package +alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group +alias dnfr="sudo ${dnfprog} remove" # Remove package +alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group +alias dnfc="sudo ${dnfprog} clean all" # Clean cache From c91684bb1b723833a96415c2c724332a6e2e620f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 25 Sep 2023 08:20:20 +0100 Subject: [PATCH 031/212] docs(web-search): add `youtube` entry --- plugins/web-search/README.md | 62 ++++++++++++------------ plugins/web-search/web-search.plugin.zsh | 1 - 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index 0bf9f26ad3547..6e4b4d7b8a921 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -12,8 +12,8 @@ plugins=( ... web-search) You can use the `web-search` plugin in these two forms: -* `web_search [more terms if you want]` -* ` [more terms if you want]` +- `web_search [more terms if you want]` +- ` [more terms if you want]` For example, these two are equivalent: @@ -24,43 +24,42 @@ $ google oh-my-zsh Available search contexts are: -| Context | URL | -| --------------------- | ---------------------------------------- | -| `bing` | `https://www.bing.com/search?q=` | -| `google` | `https://www.google.com/search?q=` | -| `brs` or `brave` | `https://search.brave.com/search?q=` | -| `yahoo` | `https://search.yahoo.com/search?p=` | -| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | -| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | -| `yandex` | `https://yandex.ru/yandsearch?text=` | -| `github` | `https://github.com/search?q=` | -| `baidu` | `https://www.baidu.com/s?wd=` | -| `ecosia` | `https://www.ecosia.org/search?q=` | -| `goodreads` | `https://www.goodreads.com/search?q=` | -| `qwant` | `https://www.qwant.com/?q=` | -| `givero` | `https://www.givero.com/search?q=` | -| `stackoverflow` | `https://stackoverflow.com/search?q=` | -| `wolframalpha` | `https://wolframalpha.com/input?i=` | -| `archive` | `https://web.archive.org/web/*/` | -| `scholar` | `https://scholar.google.com/scholar?q=` | -| `ask` | `https://www.ask.com/web?q=` | +| Context | URL | +| --------------------- | ----------------------------------------------- | +| `bing` | `https://www.bing.com/search?q=` | +| `google` | `https://www.google.com/search?q=` | +| `brs` or `brave` | `https://search.brave.com/search?q=` | +| `yahoo` | `https://search.yahoo.com/search?p=` | +| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | +| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | +| `yandex` | `https://yandex.ru/yandsearch?text=` | +| `github` | `https://github.com/search?q=` | +| `baidu` | `https://www.baidu.com/s?wd=` | +| `ecosia` | `https://www.ecosia.org/search?q=` | +| `goodreads` | `https://www.goodreads.com/search?q=` | +| `qwant` | `https://www.qwant.com/?q=` | +| `givero` | `https://www.givero.com/search?q=` | +| `stackoverflow` | `https://stackoverflow.com/search?q=` | +| `wolframalpha` | `https://wolframalpha.com/input?i=` | +| `archive` | `https://web.archive.org/web/*/` | +| `scholar` | `https://scholar.google.com/scholar?q=` | +| `ask` | `https://www.ask.com/web?q=` | +| `youtube` | `https://www.youtube.com/results?search_query=` | Also there are aliases for bang-searching DuckDuckGo: | Context | Bang | -|-----------|-------| +| --------- | ----- | | `wiki` | `!w` | | `news` | `!n` | -| `youtube` | `!yt` | | `map` | `!m` | | `image` | `!i` | | `ducky` | `!` | ### Custom search engines -If you want to add other search contexts to the plugin, you can use the -`$ZSH_WEB_SEARCH_ENGINES` variable. Set it before Oh My Zsh is sourced, -with the following format: +If you want to add other search contexts to the plugin, you can use the `$ZSH_WEB_SEARCH_ENGINES` variable. +Set it before Oh My Zsh is sourced, with the following format: ```zsh ZSH_WEB_SEARCH_ENGINES=( @@ -69,13 +68,12 @@ ZSH_WEB_SEARCH_ENGINES=( ) ``` -where `` is the name of the search context, and `` a URL of -the same type as the search contexts above. For example, to add `reddit`, -you'd do: +where `` is the name of the search context, and `` a URL of the same type as the search contexts +above. For example, to add `reddit`, you'd do: ```zsh ZSH_WEB_SEARCH_ENGINES=(reddit "https://www.reddit.com/search/?q=") ``` -These custom search engines will also be turned to aliases, so you can -both do `web_search reddit ` or `reddit `. +These custom search engines will also be turned to aliases, so you can both do `web_search reddit ` or +`reddit `. diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index fc87a34955f79..a8848fd952c10 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -72,7 +72,6 @@ alias youtube='web_search youtube' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' -#alias youtube='web_search duckduckgo \!yt' alias map='web_search duckduckgo \!m' alias image='web_search duckduckgo \!i' alias ducky='web_search duckduckgo \!' From a17789eedea4f6b9b5a9c970174d6d5dc0ef64ee Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 25 Sep 2023 09:49:22 +0100 Subject: [PATCH 032/212] docs(git): improve tables and language (#11895) --- plugins/git/README.md | 463 +++++++++++++++++++++--------------------- 1 file changed, 231 insertions(+), 232 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 6eb63ea40742c..9621a312e05b6 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,204 +10,204 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| grt | cd "$(git rev-parse --show-toplevel || echo .)" | -| ggpnp | ggl && ggp | -| ggpur | ggu | -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | -| gam | git am | -| gama | git am --abort | -| gamc | git am --continue | -| gamscp | git am --show-current-patch | -| gams | git am --skip | -| gap | git apply | -| gapt | git apply --3way | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsn | git bisect new | -| gbso | git bisect old | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gbl | git blame -w | -| gb | git branch | -| gba | git branch --all | -| gbd | git branch --delete | -| gbD | git branch --delete --force | -| gbda | git branch --no-color --merged | grep -vE "^([+]|\s($(git_main_branch)|$(git_develop_branch))\s\*$)" | xargs git branch --delete 2>/dev/null | -| gbgd | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d | -| gbgD | LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| gbg | LANG=C git branch -vv | grep ": gone\]" | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcb | git checkout -b | -| gcd | git checkout $(git_develop_branch) | -| gcm | git checkout $(git_main_branch) | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gclean | git clean --interactive -d | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | -| gcam | git commit --all --message | -| gcas | git commit --all --signoff | -| gcasm | git commit --all --signoff --message | -| gcmsg | git commit --message | -| gcsm | git commit --signoff --message | -| gc | git commit --verbose | -| gca | git commit --verbose --all | -| gca! | git commit --verbose --all --amend | -| gcan! | git commit --verbose --all --no-edit --amend | -| gcans! | git commit --verbose --all --signoff --no-edit --amend | -| gc! | git commit --verbose --amend | -| gcn! | git commit --verbose --no-edit --amend | -| gcs | git commit -S | -| gcss | git commit -S -s | -| gcssm | git commit -S -s -m | -| gcf | git config --list | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gds | git diff --staged | -| gdw | git diff --word-diff | -| gdv | git diff -w $@ | view - | -| gdup | git diff @{upstream} | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ghh | git help | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glo | git log --oneline --decorate | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| glg | git log --stat | -| glgp | git log --stat --patch | -| gignored | git ls-files -v | grep "^[[:lower:]]" | -| gfg | git ls-files | grep | -| gm | git merge | -| gma | git merge --abort | -| gms | git merge --squash | -| gmom | git merge origin/$(git_main_branch) | -| gmum | git merge upstream/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gl | git pull | -| gpr | git pull --rebase | -| gup | git pull --rebase | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash --verbose | -| gupv | git pull --rebase --verbose | -| ggu | git pull --rebase origin $(current_branch) | -| gupom | git pull --rebase origin $(git_main_branch) | -| gupomi | git pull --rebase=interactive origin $(git_main_branch) | -| ggpull | git pull origin "$(git_current_branch)" | -| ggl | git pull origin $(current_branch) | -| gluc | git pull upstream $(git_current_branch) | -| glum | git pull upstream $(git_main_branch) | -| gp | git push | -| gpd | git push --dry-run | -| gpf! | git push --force | -| ggf | git push --force origin $(current_branch) | -| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | -| gpf | git push --force-with-lease (git version < 2.30) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | -| gpv | git push --verbose | -| gpoat | git push origin --all && git push origin --tags | -| gpod | git push origin --delete | -| ggpush | git push origin "$(git_current_branch)" | -| ggp | git push origin $(current_branch) | -| gpu | git push upstream | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| grbi | git rebase --interactive | -| grbo | git rebase --onto | -| grbs | git rebase --skip | -| grbd | git rebase $(git_develop_branch) | -| grbm | git rebase $(git_main_branch) | -| grbom | git rebase origin/$(git_main_branch) | -| gr | git remote | -| grv | git remote --verbose | -| gra | git remote add | -| grrm | git remote remove | -| grmv | git remote rename | -| grset | git remote set-url | -| grup | git remote update | -| grh | git reset | -| gru | git reset -- | -| grhh | git reset --hard | -| gpristine | git reset --hard && git clean -dffx | -| groh | git reset origin/$(git_current_branch) --hard | -| grs | git restore | -| grss | git restore --source | -| grst | git restore --staged | -| gunwip | git rev-list --max-count=1 --format="%s" HEAD | grep -q "--wip--" && git reset HEAD~1 | -| grev | git revert | -| grm | git rm | -| grmc | git rm --cached | -| gcount | git shortlog --summary -n | -| gsh | git show | -| gsps | git show --pretty=short --show-signature | -| gstall | git stash --all | -| gstu | git stash --include-untracked | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsta | git stash push (git version >= 2.13) | -| gsta | git stash save (git version < 2.13) | -| gsts | git stash show --text | -| gst | git status | -| gss | git status --short | -| gsb | git status --short -b | -| gsi | git submodule init | -| gsu | git submodule update | -| gsd | git svn dcommit | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gsr | git svn rebase | -| gsw | git switch | -| gswc | git switch -c | -| gswd | git switch $(git_develop_branch) | -| gswm | git switch $(git_main_branch) | -| gts | git tag -s | -| gtv | git tag | sort -V | -| gignore | git update-index --assume-unchanged | -| gunignore | git update-index --no-assume-unchanged | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwt | git worktree | -| gwtls | git worktree list | -| gwtmv | git worktree move | -| gwtrm | git worktree remove | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | -| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | +| Alias | Command | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | +| `ggpnp` | `ggl && ggp` | +| `ggpur` | `ggu` | +| `g` | `git` | +| `ga` | `git add` | +| `gaa` | `git add --all` | +| `gapa` | `git add --patch` | +| `gau` | `git add --update` | +| `gav` | `git add --verbose` | +| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | +| `gam` | `git am` | +| `gama` | `git am --abort` | +| `gamc` | `git am --continue` | +| `gamscp` | `git am --show-current-patch` | +| `gams` | `git am --skip` | +| `gap` | `git apply` | +| `gapt` | `git apply --3way` | +| `gbs` | `git bisect` | +| `gbsb` | `git bisect bad` | +| `gbsg` | `git bisect good` | +| `gbsn` | `git bisect new` | +| `gbso` | `git bisect old` | +| `gbsr` | `git bisect reset` | +| `gbss` | `git bisect start` | +| `gbl` | `git blame -w` | +| `gb` | `git branch` | +| `gba` | `git branch --all` | +| `gbd` | `git branch --delete` | +| `gbD` | `git branch --delete --force` | +| `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | +| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | +| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbnm` | `git branch --no-merged` | +| `gbr` | `git branch --remote` | +| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | +| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | +| `gco` | `git checkout` | +| `gcor` | `git checkout --recurse-submodules` | +| `gcb` | `git checkout -b` | +| `gcd` | `git checkout $(git_develop_branch)` | +| `gcm` | `git checkout $(git_main_branch)` | +| `gcp` | `git cherry-pick` | +| `gcpa` | `git cherry-pick --abort` | +| `gcpc` | `git cherry-pick --continue` | +| `gclean` | `git clean --interactive -d` | +| `gcl` | `git clone --recurse-submodules` | +| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | +| `gcam` | `git commit --all --message` | +| `gcas` | `git commit --all --signoff` | +| `gcasm` | `git commit --all --signoff --message` | +| `gcmsg` | `git commit --message` | +| `gcsm` | `git commit --signoff --message` | +| `gc` | `git commit --verbose` | +| `gca` | `git commit --verbose --all` | +| `gca!` | `git commit --verbose --all --amend` | +| `gcan!` | `git commit --verbose --all --no-edit --amend` | +| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gc!` | `git commit --verbose --amend` | +| `gcn!` | `git commit --verbose --no-edit --amend` | +| `gcs` | `git commit -S` | +| `gcss` | `git commit -S -s` | +| `gcssm` | `git commit -S -s -m` | +| `gcf` | `git config --list` | +| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | +| `gd` | `git diff` | +| `gdca` | `git diff --cached` | +| `gdcw` | `git diff --cached --word-diff` | +| `gds` | `git diff --staged` | +| `gdw` | `git diff --word-diff` | +| `gdv` | `git diff -w "$@" \| view -` | +| `gdup` | `git diff @{upstream}` | +| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | +| `gdt` | `git diff-tree --no-commit-id --name-only -r` | +| `gf` | `git fetch` | +| `gfa` | `git fetch --all --prune` | +| `gfo` | `git fetch origin` | +| `gg` | `git gui citool` | +| `gga` | `git gui citool --amend` | +| `ghh` | `git help` | +| `glgg` | `git log --graph` | +| `glgga` | `git log --graph --decorate --all` | +| `glgm` | `git log --graph --max-count=10` | +| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | +| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | +| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | +| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | +| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | +| `glo` | `git log --oneline --decorate` | +| `glog` | `git log --oneline --decorate --graph` | +| `gloga` | `git log --oneline --decorate --graph --all` | +| `glp` | `git log --pretty=` | +| `glg` | `git log --stat` | +| `glgp` | `git log --stat --patch` | +| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | +| `gfg` | `git ls-files \| grep` | +| `gm` | `git merge` | +| `gma` | `git merge --abort` | +| `gms` | `git merge --squash` | +| `gmom` | `git merge origin/$(git_main_branch)` | +| `gmum` | `git merge upstream/$(git_main_branch)` | +| `gmtl` | `git mergetool --no-prompt` | +| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | +| `gl` | `git pull` | +| `gpr` | `git pull --rebase` | +| `gup` | `git pull --rebase` | +| `gupa` | `git pull --rebase --autostash` | +| `gupav` | `git pull --rebase --autostash --verbose` | +| `gupv` | `git pull --rebase --verbose` | +| `ggu` | `git pull --rebase origin $(current_branch)` | +| `gupom` | `git pull --rebase origin $(git_main_branch)` | +| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | +| `ggpull` | `git pull origin "$(git_current_branch)"` | +| `ggl` | `git pull origin $(current_branch)` | +| `gluc` | `git pull upstream $(git_current_branch)` | +| `glum` | `git pull upstream $(git_main_branch)` | +| `gp` | `git push` | +| `gpd` | `git push --dry-run` | +| `gpf!` | `git push --force` | +| `ggf` | `git push --force origin $(current_branch)` | +| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | +| `gpf` | On Git < 2.30: `git push --force-with-lease` | +| `ggfl` | `git push --force-with-lease origin $(current_branch)` | +| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | +| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | +| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | +| `gpv` | `git push --verbose` | +| `gpoat` | `git push origin --all && git push origin --tags` | +| `gpod` | `git push origin --delete` | +| `ggpush` | `git push origin "$(git_current_branch)"` | +| `ggp` | `git push origin $(current_branch)` | +| `gpu` | `git push upstream` | +| `grb` | `git rebase` | +| `grba` | `git rebase --abort` | +| `grbc` | `git rebase --continue` | +| `grbi` | `git rebase --interactive` | +| `grbo` | `git rebase --onto` | +| `grbs` | `git rebase --skip` | +| `grbd` | `git rebase $(git_develop_branch)` | +| `grbm` | `git rebase $(git_main_branch)` | +| `grbom` | `git rebase origin/$(git_main_branch)` | +| `gr` | `git remote` | +| `grv` | `git remote --verbose` | +| `gra` | `git remote add` | +| `grrm` | `git remote remove` | +| `grmv` | `git remote rename` | +| `grset` | `git remote set-url` | +| `grup` | `git remote update` | +| `grh` | `git reset` | +| `gru` | `git reset --` | +| `grhh` | `git reset --hard` | +| `gpristine` | `git reset --hard && git clean -dffx` | +| `groh` | `git reset origin/$(git_current_branch) --hard` | +| `grs` | `git restore` | +| `grss` | `git restore --source` | +| `grst` | `git restore --staged` | +| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | +| `grev` | `git revert` | +| `grm` | `git rm` | +| `grmc` | `git rm --cached` | +| `gcount` | `git shortlog --summary -n` | +| `gsh` | `git show` | +| `gsps` | `git show --pretty=short --show-signature` | +| `gstall` | `git stash --all` | +| `gstu` | `git stash --include-untracked` | +| `gstaa` | `git stash apply` | +| `gstc` | `git stash clear` | +| `gstd` | `git stash drop` | +| `gstl` | `git stash list` | +| `gstp` | `git stash pop` | +| `gsta` | On Git >= 2.13: `git stash push` | +| `gsta` | On Git < 2.13: `git stash save` | +| `gsts` | `git stash show --text` | +| `gst` | `git status` | +| `gss` | `git status --short` | +| `gsb` | `git status --short -b` | +| `gsi` | `git submodule init` | +| `gsu` | `git submodule update` | +| `gsd` | `git svn dcommit` | +| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | +| `gsr` | `git svn rebase` | +| `gsw` | `git switch` | +| `gswc` | `git switch -c` | +| `gswd` | `git switch $(git_develop_branch)` | +| `gswm` | `git switch $(git_main_branch)` | +| `gts` | `git tag -s` | +| `gtv` | `git tag \| sort -V` | +| `gignore` | `git update-index --assume-unchanged` | +| `gunignore` | `git update-index --no-assume-unchanged` | +| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | +| `gwt` | `git worktree` | +| `gwtls` | `git worktree list` | +| `gwtmv` | `git worktree move` | +| `gwtrm` | `git worktree remove` | +| `gk` | `gitk --all --branches &!` | +| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | +| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | ### Main branch preference @@ -221,50 +221,49 @@ branch exists. We do this via the function `git_main_branch`. These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. -| Alias | Command | Modification | -| :----- | :----------------------------------------------------- | :----------------------------------------------------- | -| gap | `git add --patch` | new alias `gapa` | -| gcl | `git config --list` | new alias `gcf` | -| gdc | `git diff --cached` | new alias `gdca` | -| gdt | `git difftool` | no replacement | -| ggpull | `git pull origin $(current_branch)` | new alias `ggl` (`ggpull` still exists for now though) | -| ggpur | `git pull --rebase origin $(current_branch)` | new alias `ggu` (`ggpur` still exists for now though) | -| ggpush | `git push origin $(current_branch)` | new alias `ggp` (`ggpush` still exists for now though) | -| gk | `gitk --all --branches` | now aliased to `gitk --all --branches` | -| glg | `git log --stat --max-count = 10` | now aliased to `git log --stat --color` | -| glgg | `git log --graph --max-count = 10` | now aliased to `git log --graph --color` | -| gwc | `git whatchanged -p --abbrev-commit --pretty = medium` | new alias `gwch` | +| Alias | Command | Modification | +| :------- | :----------------------------------------------------- | :-------------------------------------------------------- | +| `gap` | `git add --patch` | New alias: `gapa`. | +| `gcl` | `git config --list` | New alias: `gcf`. | +| `gdc` | `git diff --cached` | New alias: `gdca`. | +| `gdt` | `git difftool` | No replacement. | +| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | +| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | +| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | +| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | +| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | +| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | +| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | ## Functions ### Current -| Command | Description | -| :--------------------- | :------------------------------------------------------------------------------------------------------- | -| current_branch | Return the name of the current branch | -| git_current_user_email | Returns the `user.email` config value (lives in lib/git.zsh) | -| git_current_user_name | Returns the `user.name` config value (lives in lib/git.zsh) | -| git_develop_branch | Returns the name of the develop branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | -| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | -| grename \ \ | Rename `old` branch to `new`, including in origin remote | +| Command | Description | +| :----------------------- | :-------------------------------------------------------------------------------------------------------------- | +| `current_branch` | Returns the name of the current branch. | +| `git_current_user_email` | Returns the `user.email` config value. (Lives in `lib/git.zsh`.) | +| `git_current_user_name` | Returns the `user.name` config value. (Lives in `lib/git.zsh`.) | +| `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | +| `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | +| `grename ` | Renames branch `` to ``, including on the origin remote. | ### Work in Progress (WIP) -These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). -When you want to go back to work, just unwip it. +These features allow you to pause developing one branch and switch to another one (_"Work in Progress"_, or +“wip”). When you want to go back to work, just “unwip” it. -| Command | Description | -| :--------------- | :---------------------------------------------- | -| gwip | Commit wip branch | -| gunwip | Uncommit wip branch | -| gunwipall | Uncommit all recent `--wip--` commits | -| work_in_progress | Echoes a warning if the current branch is a wip | +| Command | Description | +| :----------------- | :---------------------------------------------- | +| `gwip` | Commit wip branch | +| `gunwip` | Uncommit wip branch | +| `gunwipall` | Uncommit all recent `--wip--` commits | +| `work_in_progress` | Echoes a warning if the current branch is a wip | -Note that `gwip` and `gunwip` are effectivly alias, but are also documented here to group all related WIP -features. +Note that `gwip` and `gunwip` are aliases, but are also documented here to group all related WIP features. ### Deprecated functions -| Command | Description | Reason | -| :----------------- | :-------------------------------------- | :-------------------------------------------------------------- | -| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | +| Command | Description | Reason | +| :------------------- | :-------------------------------------- | :--------------------------------------------------------------- | +| `current_repository` | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias). | From aaa74964a8f5908716f5bc8658116db096467702 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:18:54 +0100 Subject: [PATCH 033/212] fix(git): remove `--text` from `gsts` (#11897) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 9621a312e05b6..390f520018ae4 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -183,7 +183,7 @@ plugins=(... git) | `gstp` | `git stash pop` | | `gsta` | On Git >= 2.13: `git stash push` | | `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show --text` | +| `gsts` | `git stash show` | | `gst` | `git status` | | `gss` | `git status --short` | | `gsb` | `git status --short -b` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 4afe34e992fe1..426f51979b929 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -331,7 +331,7 @@ alias gstp='git stash pop' is-at-least 2.13 "$git_version" \ && alias gsta='git stash push' \ || alias gsta='git stash save' -alias gsts='git stash show --text' +alias gsts='git stash show' alias gst='git status' alias gss='git status --short' alias gsb='git status --short --branch' From bca62f78e23247afdc44882111a27a7333e5acb0 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:22:32 +0100 Subject: [PATCH 034/212] feat(git): add branch rename alias `gbm` (#11909) Co-authored-by: Gabriel Akinyosoye --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 390f520018ae4..e7c32e97f7f9e 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -44,6 +44,7 @@ plugins=(... git) | `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | | `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | | `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbm` | `git branch --move` | | `gbnm` | `git branch --no-merged` | | `gbr` | `git branch --remote` | | `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 426f51979b929..01eab682edf0e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -125,6 +125,7 @@ alias gbD='git branch --delete --force' alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' +alias gbm='git branch --move' alias gbnm='git branch --no-merged' alias gbr='git branch --remote' alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' From e2b855341bfd587590734da860d75ead7788810f Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:27:48 +0100 Subject: [PATCH 035/212] feat(git): add tag aliases `gt` and `gta` (#11910) Co-authored-by: hasecilu Co-authored-by: Rik Co-authored-by: Carlo Sala --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index e7c32e97f7f9e..5a732ed63ea48 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -197,6 +197,8 @@ plugins=(... git) | `gswc` | `git switch -c` | | `gswd` | `git switch $(git_develop_branch)` | | `gswm` | `git switch $(git_main_branch)` | +| `gt` | `git tag` | +| `gta` | `git tag --annotate` | | `gts` | `git tag -s` | | `gtv` | `git tag \| sort -V` | | `gignore` | `git update-index --assume-unchanged` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 01eab682edf0e..527093c281adb 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -345,6 +345,8 @@ alias gsw='git switch' alias gswc='git switch --create' alias gswd='git switch $(git_develop_branch)' alias gswm='git switch $(git_main_branch)' +alias gt='git tag' +alias gta='git tag --annotate' alias gts='git tag --sign' alias gtv='git tag | sort -V' alias gignore='git update-index --assume-unchanged' From 4fb5d02db94fa87d22afea9825bd5f866e0cd1ac Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 26 Sep 2023 08:31:32 +0100 Subject: [PATCH 036/212] feat(git): add reset aliases `grhk` and `grhs` (#11896) --- plugins/git/README.md | 2 ++ plugins/git/git.plugin.zsh | 2 ++ 2 files changed, 4 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 5a732ed63ea48..5b2db55fa0de6 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -163,6 +163,8 @@ plugins=(... git) | `grh` | `git reset` | | `gru` | `git reset --` | | `grhh` | `git reset --hard` | +| `grhk` | `git reset --keep` | +| `grhs` | `git reset --soft` | | `gpristine` | `git reset --hard && git clean -dffx` | | `groh` | `git reset origin/$(git_current_branch) --hard` | | `grs` | `git restore` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 527093c281adb..ba90c936ee693 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -310,6 +310,8 @@ alias grup='git remote update' alias grh='git reset' alias gru='git reset --' alias grhh='git reset --hard' +alias grhk='git reset --keep' +alias grhs='git reset --soft' alias gpristine='git reset --hard && git clean --force -dfx' alias groh='git reset origin/$(git_current_branch) --hard' alias grs='git restore' From 0e1e877ea9182f87b3ab34cbc2ea944b34f5345e Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 27 Sep 2023 08:19:57 +0200 Subject: [PATCH 037/212] fix(git)!: remove `gt` alias BREAKING CHANGE: `gt` alias clashes with Graphite CLI (https://graphite.dev). See https://github.com/ohmyzsh/ohmyzsh/pull/11910#issuecomment-1736340910 --- plugins/git/README.md | 1 - plugins/git/git.plugin.zsh | 1 - 2 files changed, 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 5b2db55fa0de6..9c16cb6e761b6 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -199,7 +199,6 @@ plugins=(... git) | `gswc` | `git switch -c` | | `gswd` | `git switch $(git_develop_branch)` | | `gswm` | `git switch $(git_main_branch)` | -| `gt` | `git tag` | | `gta` | `git tag --annotate` | | `gts` | `git tag -s` | | `gtv` | `git tag \| sort -V` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ba90c936ee693..cb848b40772f5 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -347,7 +347,6 @@ alias gsw='git switch' alias gswc='git switch --create' alias gswd='git switch $(git_develop_branch)' alias gswm='git switch $(git_main_branch)' -alias gt='git tag' alias gta='git tag --annotate' alias gts='git tag --sign' alias gtv='git tag | sort -V' From d3b6f1fd5e42deafb3a6458213762a492e484073 Mon Sep 17 00:00:00 2001 From: Piotr Minkina Date: Thu, 28 Sep 2023 23:43:06 +0200 Subject: [PATCH 038/212] fix(gradle): remove look for settings.gradle files (#11917) --- plugins/gradle/gradle.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh index 5bca364d19c19..dacc46478e2e4 100644 --- a/plugins/gradle/gradle.plugin.zsh +++ b/plugins/gradle/gradle.plugin.zsh @@ -6,7 +6,7 @@ function gradle-or-gradlew() { # taken from https://github.com/gradle/gradle-completion local dir="$PWD" project_root="$PWD" while [[ "$dir" != / ]]; do - if [[ -f "$dir/settings.gradle" || -f "$dir/settings.gradle.kts" || -f "$dir/gradlew" ]]; then + if [[ -x "$dir/gradlew" ]]; then project_root="$dir" break fi From 27402e2603b9354f419af3695bad8ff17ed33bac Mon Sep 17 00:00:00 2001 From: Jake Conway Date: Fri, 29 Sep 2023 05:24:40 -0500 Subject: [PATCH 039/212] docs(gas): update plugin url (#11918) --- plugins/gas/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gas/README.md b/plugins/gas/README.md index 47b3fb9df9ce6..a0a7a568fb75d 100644 --- a/plugins/gas/README.md +++ b/plugins/gas/README.md @@ -1,6 +1,6 @@ # Gas plugin -This plugin adds autocompletion for the [gas](http://walle.github.com/gas) command, +This plugin adds autocompletion for the [gas](http://ramblingsby.me/gas/) command, a utility to manage Git authors. To use it, add `gas` to the plugins array of your zshrc file: From 278bcfc93bed91d1095a9ea7981c4a1109da7abd Mon Sep 17 00:00:00 2001 From: Thomas Faugier Date: Mon, 2 Oct 2023 20:25:17 +0200 Subject: [PATCH 040/212] feat(asdf): load zsh completions instead of bash ones Closes #11143 Closes #8779 Co-authored-by: Carlo Sala --- plugins/asdf/asdf.plugin.zsh | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh index 3016282c68a7d..7635d20c3c55f 100644 --- a/plugins/asdf/asdf.plugin.zsh +++ b/plugins/asdf/asdf.plugin.zsh @@ -2,26 +2,29 @@ ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" ASDF_COMPLETIONS="$ASDF_DIR/completions" -# If not found, check for archlinux/AUR package (/opt/asdf-vm/) -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && [[ -f "/opt/asdf-vm/asdf.sh" ]]; then - ASDF_DIR="/opt/asdf-vm" - ASDF_COMPLETIONS="$ASDF_DIR" -fi - -# If not found, check for Homebrew package -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - brew_prefix="$(brew --prefix asdf)" - ASDF_DIR="${brew_prefix}/libexec" - ASDF_COMPLETIONS="${brew_prefix}/etc/bash_completion.d" - unset brew_prefix +if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/_asdf" ]]; then + # If not found, check for archlinux/AUR package (/opt/asdf-vm/) + if [[ -f "/opt/asdf-vm/asdf.sh" ]]; then + ASDF_DIR="/opt/asdf-vm" + ASDF_COMPLETIONS="$ASDF_DIR" + # If not found, check for Homebrew package + elif (( $+commands[brew] )); then + _ASDF_PREFIX="$(brew --prefix asdf)" + ASDF_DIR="${_ASDF_PREFIX}/libexec" + ASDF_COMPLETIONS="${_ASDF_PREFIX}/share/zsh/site-functions" + unset _ASDF_PREFIX + else + return + fi fi # Load command if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" - + source "$ASDF_DIR/asdf.sh" # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" + if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then + fpath+=("$ASDF_COMPLETIONS") + autoload -Uz _asdf + compdef _asdf asdf # compdef is already loaded before loading plugins fi fi From fea4584cebf98fc58334b7cca841ab1ef224a35e Mon Sep 17 00:00:00 2001 From: HeroCC Date: Mon, 2 Oct 2023 14:34:57 -0400 Subject: [PATCH 041/212] fix(tmux): don't autostart inside background intelliJ (#11927) --- plugins/tmux/tmux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 680f72598b723..6ed91c44791d7 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -109,7 +109,7 @@ compdef _tmux _zsh_tmux_plugin_run alias tmux=_zsh_tmux_plugin_run # Autostart if not already in tmux and enabled. -if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" ]]; then +if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then # Actually don't autostart if we already did and multiple autostarts are disabled. if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]; then export ZSH_TMUX_AUTOSTARTED=true From df80a2da5475fc3c068bc5f700fa176a47f7adbe Mon Sep 17 00:00:00 2001 From: bretello Date: Mon, 2 Oct 2023 20:41:01 +0200 Subject: [PATCH 042/212] feat(vi-mode): copy to clipboard when using `vi-change*` and `vi-yank*` widgets (#11861) --- plugins/vi-mode/README.md | 6 ++++++ plugins/vi-mode/vi-mode.plugin.zsh | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 0cb516751fe4c..821c12adbc5b6 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -144,11 +144,17 @@ NOTE: this used to be bound to `v`. That is now the default (`visual-mode`). - `c{motion}` : Delete {motion} text and start insert - `cc` : Delete line and start insert - `C` : Delete to the end of the line and start insert +- `P` : Insert the contents of the clipboard before the cursor +- `p` : Insert the contents of the clipboard after the cursor - `r{char}` : Replace the character under the cursor with {char} - `R` : Enter replace mode: Each character replaces existing one - `x` : Delete `count` characters under and after the cursor - `X` : Delete `count` characters before the cursor +NOTE: delete/kill commands (`dd`, `D`, `c{motion}`, `C`, `x`,`X`) and yank commands +(`y`, `Y`) will copy to the clipboard. Contents can then be put back using paste commands +(`P`, `p`). + ## Known issues ### Low `$KEYTIMEOUT` diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index cc9817a7455ce..d1493e02f984b 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -147,8 +147,15 @@ function wrap_clipboard_widgets() { done } -wrap_clipboard_widgets copy vi-yank vi-yank-eol vi-backward-kill-word vi-change-whole-line vi-delete vi-delete-char -wrap_clipboard_widgets paste vi-put-{before,after} +wrap_clipboard_widgets copy \ + vi-yank vi-yank-eol vi-yank-whole-line \ + vi-change vi-change-eol vi-change-whole-line \ + vi-kill-line vi-kill-eol vi-backward-kill-word \ + vi-delete vi-delete-char vi-backward-delete-char + +wrap_clipboard_widgets paste \ + vi-put-{before,after} + unfunction wrap_clipboard_widgets # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default From 7400d469b67e2e72a6405df39c5f28cba646e1a8 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 3 Oct 2023 02:41:18 +0800 Subject: [PATCH 043/212] fix(ruby): add missing `-run` in `rserver` alias (#11913) --- plugins/ruby/ruby.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 4085121104677..e09b22c755fd6 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/plugins/ruby/ruby.plugin.zsh @@ -23,4 +23,4 @@ alias gel="gem lock" alias geo="gem open" alias geoe="gem open -e" alias rrun="ruby -e" -alias rserver="ruby -e httpd . -p 8080" # requires webrick +alias rserver="ruby -run -e httpd . -p 8080" # requires webrick From f36c6db0eac17b022eee87411e6996a5f5fc8457 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Tue, 3 Oct 2023 00:28:42 +0530 Subject: [PATCH 044/212] feat(shell-proxy): allow excluding endpoints with `NO_PROXY` (#11924) --- plugins/shell-proxy/README.md | 5 +++++ plugins/shell-proxy/proxy.py | 23 +++++++++++++++++----- plugins/shell-proxy/shell-proxy.plugin.zsh | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/plugins/shell-proxy/README.md b/plugins/shell-proxy/README.md index b19888c565289..102e46b6b8077 100644 --- a/plugins/shell-proxy/README.md +++ b/plugins/shell-proxy/README.md @@ -23,6 +23,7 @@ Set `SHELLPROXY_URL` environment variable to the URL of the proxy server: ```sh SHELLPROXY_URL="http://127.0.0.1:8123" +SHELLPROXY_NO_PROXY="localhost,127.0.0.1" proxy enable ``` @@ -36,11 +37,15 @@ Example: ```sh #!/bin/bash +# HTTP Proxy if [[ "$(uname)" = Darwin ]]; then echo "http://127.0.0.1:6152" # Surge Mac else echo "http://127.0.0.1:8123" # polipo fi + +# No Proxy +echo "localhost,127.0.0.1" ``` ### Method 3 diff --git a/plugins/shell-proxy/proxy.py b/plugins/shell-proxy/proxy.py index 14f2944cc9707..8c2aaf9f3ccef 100755 --- a/plugins/shell-proxy/proxy.py +++ b/plugins/shell-proxy/proxy.py @@ -6,6 +6,7 @@ cwd = os.path.dirname(__file__) ssh_agent = os.path.join(cwd, "ssh-agent.py") proxy_env = "SHELLPROXY_URL" +no_proxy_env = "SHELLPROXY_NO_PROXY" proxy_config = os.environ.get("SHELLPROXY_CONFIG") or os.path.expandvars("$HOME/.config/proxy") usage="""shell-proxy: no proxy configuration found. @@ -15,18 +16,30 @@ def get_http_proxy(): default_proxy = os.environ.get(proxy_env) - if default_proxy: - return default_proxy + no_proxy = os.environ.get(no_proxy_env) + if default_proxy and no_proxy: + return default_proxy, no_proxy + if os.path.isfile(proxy_config): - return check_output(proxy_config).decode("utf-8").strip() + proxy_configdata = [line.strip() for line in check_output(proxy_config).decode("utf-8").splitlines()] + if len(proxy_configdata) >= 1: + if not default_proxy: + default_proxy = proxy_configdata[0] + if len(proxy_configdata) == 2 and not no_proxy: + no_proxy = proxy_configdata[1] + + if default_proxy: + return default_proxy, no_proxy print(usage, file=sys.stderr) sys.exit(1) -def make_proxies(url: str): +def make_proxies(url: str, no_proxy: str): proxies = {"%s_PROXY" % _: url for _ in ("HTTP", "HTTPS", "FTP", "RSYNC", "ALL")} proxies.update({name.lower(): value for (name, value) in proxies.items()}) proxies["GIT_SSH"] = ssh_agent + if no_proxy: + proxies.update({"NO_PROXY": no_proxy, "no_proxy": no_proxy}) return proxies @@ -35,7 +48,7 @@ def merge(mapping: dict): class CommandSet: - proxies = make_proxies(get_http_proxy()) + proxies = make_proxies(*get_http_proxy()) aliases = { _: "env __SSH_PROGRAM_NAME__=%s %s" % (_, ssh_agent) for _ in ("ssh", "sftp", "scp", "slogin", "ssh-copy-id") diff --git a/plugins/shell-proxy/shell-proxy.plugin.zsh b/plugins/shell-proxy/shell-proxy.plugin.zsh index 4fdbe9322025d..f6c31da450e14 100644 --- a/plugins/shell-proxy/shell-proxy.plugin.zsh +++ b/plugins/shell-proxy/shell-proxy.plugin.zsh @@ -27,7 +27,7 @@ eval ' # capture the output of the proxy script and bail out if it fails local output - output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || + output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_NO_PROXY="$SHELLPROXY_NO_PROXY" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || return $? # evaluate the output generated by the proxy script From 974055f638dac907cfb10281bce9cf998641febd Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 8 Oct 2023 13:47:16 +0200 Subject: [PATCH 045/212] Adding Mastadon and updating X badge --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a305955811072..d915bd720c700 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,8 @@ Finally, you'll begin to get the sort of attention that you have always felt you To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). [![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?style=flat) +![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?domain=https%3A%2F%2Fmstdn.social&style=flat) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) [![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) From ee857e3acf4beba9e3121bc8e776a048c46fa85f Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 8 Oct 2023 14:05:03 +0200 Subject: [PATCH 046/212] Adding operating system compatibility chart --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d915bd720c700..70c4faaf09daa 100644 --- a/README.md +++ b/README.md @@ -59,9 +59,21 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi ## Getting Started +### Operating System Compatibility + +| O/S | Status | +| :---------------- | :------: | +| Android | ✅ | +| FreeBSD | ✅ | +| LCARS | 🛸 | +| Linux | ✅ | +| MacOS | ✅ | +| OS/2 Warp | ❌ | +| Windows (WSL2) | ✅ | + + ### Prerequisites -- A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL2 is preferred, but cygwin or msys also mostly work. - [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent is fine but we prefer 5.0.8 and newer). If not pre-installed (run `zsh --version` to confirm), check the following wiki instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) - `curl` or `wget` should be installed - `git` should be installed (recommended v2.4.11 or higher) From 7105e37ef09ff890f7eca3e64d48b8b7ff94a494 Mon Sep 17 00:00:00 2001 From: DemonKiller <55846983+demonkillerr@users.noreply.github.com> Date: Sun, 8 Oct 2023 14:27:55 +0100 Subject: [PATCH 047/212] feat(rtx) Added new polyglot runtime manager (asdf rust clone) (#11932) * add readme.md for rtx * add rtx plugin * update install info * remove redundant slashes --- plugins/rtx/README.md | 30 ++++++++++++++++++++++++++++++ plugins/rtx/rtx.plugin.zsh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/rtx/README.md create mode 100644 plugins/rtx/rtx.plugin.zsh diff --git a/plugins/rtx/README.md b/plugins/rtx/README.md new file mode 100644 index 0000000000000..c6436d3a7fb0f --- /dev/null +++ b/plugins/rtx/README.md @@ -0,0 +1,30 @@ +## rtx + + +Adds integration with [rtx](https://github.com/jdx/rtx), a runtime executor compatible with npm, nodenv, pyenv, etc. rtx is written in rust and is very fast. 20x-200x faster than asdf. With that being said, rtx is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement. + +### Installation + +1. [Download & install rtx](https://github.com/jdx/rtx#installation) by running the following: + + ``` + curl https://rtx.pub/install.sh | sh + ``` + + +2. [Enable rtx](https://github.com/jdx/rtx#quickstart) by adding it to your `plugins` definition in `~/.zshrc`. + + ``` + plugins=(rtx) + ``` + +### Usage + +See the [rtx readme](https://github.com/jdx/rtx#table-of-contents) for information on how to use rtx. Here are a few examples: + +``` +rtx install node Install the current version specified in .tool-versions/.rtx.toml +rtx use -g node@system Use system node as global default +rtx install node@20.0.0 Install a specific version number +rtx use -g node@20 Use node-20.x as global default +``` diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh new file mode 100644 index 0000000000000..aaccaf01532f5 --- /dev/null +++ b/plugins/rtx/rtx.plugin.zsh @@ -0,0 +1,30 @@ +# Find where rtx should be installed +RTX_DIR="${RTX_DIR:-$HOME/.rtx}" +RTX_COMPLETIONS="$RTX_DIR/completions" + +if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then + # If not found, check for archlinux/AUR package (/opt/rtx-vm/) + if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then + RTX_DIR="/opt/rtx-vm" + RTX_COMPLETIONS="$RTX_DIR" + # If not found, check for Homebrew package + elif (( $+commands[brew] )); then + _RTX_PREFIX="$(brew --prefix rtx)" + RTX_DIR="${_RTX_PREFIX}/libexec" + RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions" + unset _RTX_PREFIX + else + return + fi +fi + +# Load command +if [[ -f "$RTX_DIR/rtx.sh" ]]; then + source "$RTX_DIR/rtx.sh" + # Load completions + if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then + fpath+=("$RTX_COMPLETIONS") + autoload -Uz _rtx + compdef _rtx rtx # compdef is already loaded before loading plugins + fi +fi From b75b01a3092e59cd10ff01084d4a5e3ac0be3e3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sun, 8 Oct 2023 20:01:46 +0200 Subject: [PATCH 048/212] chore: update README badges --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 70c4faaf09daa..c83e162180ac1 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ Finally, you'll begin to get the sort of attention that you have always felt you To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). [![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?style=flat) -![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?domain=https%3A%2F%2Fmstdn.social&style=flat) +[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?label=%40ohmyzsh&logo=x&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +[![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?label=%40ohmyzsh&domain=https%3A%2F%2Fmstdn.social&logo=mastodon&style=flat)](https://mstdn.social/@ohmyzsh) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) [![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) From 30a8a5d3e2f36e395c439c3346ef96e40e7bd277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Oct 2023 17:53:00 +0200 Subject: [PATCH 049/212] fix(rtx): fix `rtx` init procedure (#11949) --- plugins/rtx/rtx.plugin.zsh | 42 ++++++++++++++------------------------ 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh index aaccaf01532f5..a01828afd48eb 100644 --- a/plugins/rtx/rtx.plugin.zsh +++ b/plugins/rtx/rtx.plugin.zsh @@ -1,30 +1,18 @@ -# Find where rtx should be installed -RTX_DIR="${RTX_DIR:-$HOME/.rtx}" -RTX_COMPLETIONS="$RTX_DIR/completions" - -if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then - # If not found, check for archlinux/AUR package (/opt/rtx-vm/) - if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then - RTX_DIR="/opt/rtx-vm" - RTX_COMPLETIONS="$RTX_DIR" - # If not found, check for Homebrew package - elif (( $+commands[brew] )); then - _RTX_PREFIX="$(brew --prefix rtx)" - RTX_DIR="${_RTX_PREFIX}/libexec" - RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions" - unset _RTX_PREFIX - else - return - fi +# rtx needs to be in $PATH +if (( ! ${+commands[rtx]} )); then + return fi -# Load command -if [[ -f "$RTX_DIR/rtx.sh" ]]; then - source "$RTX_DIR/rtx.sh" - # Load completions - if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then - fpath+=("$RTX_COMPLETIONS") - autoload -Uz _rtx - compdef _rtx rtx # compdef is already loaded before loading plugins - fi +# Load rtx hooks +eval "$(rtx activate zsh)" + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `rtx`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_rtx" ]]; then + typeset -g -A _comps + autoload -Uz _rtx + _comps[rtx]=_rtx fi + +# Generate and load rtx completion +rtx completion zsh >! "$ZSH_CACHE_DIR/completions/_rtx" &| From 29b99c2c7b16f22f3ca2bdf9478ba700ac6c48b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 9 Oct 2023 18:00:17 +0200 Subject: [PATCH 050/212] feat(updater): add `background-alpha` update mode (preview) (#11928) NOTE: this feature is in alpha / preview mode, it is not guaranteed to work 100% of the time in all cases. If you experience any issues, open an issue or search for an open one describing your same situation. To use this, use the zstyle update mode settings [1] with the value `background-alpha`: zstyle ':omz:update' mode background-alpha [1] https://github.com/ohmyzsh/ohmyzsh#getting-updates --- tools/check_for_upgrade.sh | 230 +++++++++++++++++++++++++------------ 1 file changed, 156 insertions(+), 74 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 3210e437531a0..1cc193bde045b 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -9,6 +9,7 @@ fi # - prompt (default): the user is asked before updating when it's time to update # - auto: the update is performed automatically when it's time # - reminder: a reminder is shown to the user when it's time to update +# - background-alpha: an experimental update-on-the-background option # - disabled: automatic update is turned off zstyle -s ':omz:update' mode update_mode || { update_mode=prompt @@ -91,13 +92,37 @@ function is_update_available() { } function update_last_updated_file() { - echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + local exit_status="$1" error="$2" + + if [[ -z "${1}${2}" ]]; then + echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + return + fi + + cat >! "${ZSH_CACHE_DIR}/.zsh-update" <&1); then + update_last_updated_file 0 "Update successful" + else + exit_status=$? + update_last_updated_file $exit_status "$error" + return $exit_status fi } @@ -126,88 +151,145 @@ function has_typed_input() { } } -() { - emulate -L zsh +function handle_update() { + () { + emulate -L zsh - local epoch_target mtime option LAST_EPOCH + local epoch_target mtime option LAST_EPOCH - # Remove lock directory if older than a day - zmodload zsh/datetime - zmodload -F zsh/stat b:zstat - if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then - if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then - command rm -rf "$ZSH/log/update.lock" + # Remove lock directory if older than a day + zmodload zsh/datetime + zmodload -F zsh/stat b:zstat + if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then + if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then + command rm -rf "$ZSH/log/update.lock" + fi fi - fi - # Check for lock directory - if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then - return - fi + # Check for lock directory + if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then + return + fi - # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: - # The return status from the function is handled specially. If it is zero, the signal is - # assumed to have been handled, and execution continues normally. Otherwise, the shell - # will behave as interrupted except that the return status of the trap is retained. - # This means that for a CTRL+C, the trap needs to return the same exit status so that - # the shell actually exits what it's running. - trap " - ret=\$? - unset update_mode - unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh 2>/dev/null - command rm -rf '$ZSH/log/update.lock' - return \$ret - " EXIT INT QUIT - - # Create or update .zsh-update file if missing or malformed - if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then - update_last_updated_file - return - fi + # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: + # The return status from the function is handled specially. If it is zero, the signal is + # assumed to have been handled, and execution continues normally. Otherwise, the shell + # will behave as interrupted except that the return status of the trap is retained. + # This means that for a CTRL+C, the trap needs to return the same exit status so that + # the shell actually exits what it's running. + trap " + ret=\$? + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update 2>/dev/null + command rm -rf '$ZSH/log/update.lock' + return \$ret + " EXIT INT QUIT - # Number of days before trying to update again - zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} - # Test if enough time has passed until the next update - if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then - return - fi + # Create or update .zsh-update file if missing or malformed + if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then + update_last_updated_file + return + fi - # Test if Oh My Zsh directory is a git repository - if ! (builtin cd -q "$ZSH" && LANG= git rev-parse &>/dev/null); then - echo >&2 "[oh-my-zsh] Can't update: not a git repository." - return - fi + # Number of days before trying to update again + zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} + # Test if enough time has passed until the next update + if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then + return + fi - # Check if there are updates available before proceeding - if ! is_update_available; then - update_last_updated_file - return - fi + # Test if Oh My Zsh directory is a git repository + if ! (builtin cd -q "$ZSH" && LANG= git rev-parse &>/dev/null); then + echo >&2 "[oh-my-zsh] Can't update: not a git repository." + return + fi - # If in reminder mode or user has typed input, show reminder and exit - if [[ "$update_mode" = reminder ]] || has_typed_input; then - printf '\r\e[0K' # move cursor to first column and clear whole line - echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" - return 0 - fi + # Check if there are updates available before proceeding + if ! is_update_available; then + update_last_updated_file + return + fi - # Don't ask for confirmation before updating if in auto mode - if [[ "$update_mode" = auto ]]; then - update_ohmyzsh - return $? - fi + # If in reminder mode or user has typed input, show reminder and exit + if [[ "$update_mode" = reminder ]] || { [[ "$update_mode" != background-alpha ]] && has_typed_input }; then + printf '\r\e[0K' # move cursor to first column and clear whole line + echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" + return 0 + fi - # Ask for confirmation and only update on 'y', 'Y' or Enter - # Otherwise just show a reminder for how to update - echo -n "[oh-my-zsh] Would you like to update? [Y/n] " - read -r -k 1 option - [[ "$option" = $'\n' ]] || echo - case "$option" in - [yY$'\n']) update_ohmyzsh ;; - [nN]) update_last_updated_file ;& - *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; - esac + # Don't ask for confirmation before updating if in auto mode + if [[ "$update_mode" = (auto|background-alpha) ]]; then + update_ohmyzsh + return $? + fi + + # Ask for confirmation and only update on 'y', 'Y' or Enter + # Otherwise just show a reminder for how to update + echo -n "[oh-my-zsh] Would you like to update? [Y/n] " + read -r -k 1 option + [[ "$option" = $'\n' ]] || echo + case "$option" in + [yY$'\n']) update_ohmyzsh ;; + [nN]) update_last_updated_file ;& + *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; + esac + } + + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update } -unset update_mode -unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh +case "$update_mode" in + background-alpha) + autoload -Uz add-zsh-hook + + _omz_bg_update() { + # do the update in a subshell + (handle_update) &| + + # register update results function + add-zsh-hook precmd _omz_bg_update_status + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update + unset -f _omz_bg_update + } + + _omz_bg_update_status() { + { + local LAST_EPOCH EXIT_STATUS ERROR + if [[ ! -f "$ZSH_CACHE_DIR"/.zsh-update ]]; then + return 1 + fi + + # check update results until timeout is reached + . "$ZSH_CACHE_DIR/.zsh-update" + if [[ -z "$EXIT_STATUS" || -z "$ERROR" ]]; then + return 1 + fi + + if [[ "$EXIT_STATUS" -eq 0 ]]; then + print -P "\n%F{green}[oh-my-zsh] Update successful.%f" + return 0 + elif [[ "$EXIT_STATUS" -ne 0 ]]; then + print -P "\n%F{red}[oh-my-zsh] There was an error updating:%f" + printf "\n${fg[yellow]}%s${reset_color}" "$ERROR" + return 0 + fi + } always { + if (( TRY_BLOCK_ERROR == 0 )); then + # if last update results have been handled, remove them from the status file + update_last_updated_file + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update_status + unset -f _omz_bg_update_status + fi + } + } + + add-zsh-hook precmd _omz_bg_update + ;; + *) + handle_update ;; +esac From 24b2600558f999dd53f0d354ad61fc07cf7d6e2b Mon Sep 17 00:00:00 2001 From: tobi1805 <66414944+tobi1805@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:07:51 +0200 Subject: [PATCH 051/212] feat(git): delete squash-merged branches in `gbda` (#11948) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 9c16cb6e761b6..33c10ffd0d494 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -41,7 +41,6 @@ plugins=(... git) | `gba` | `git branch --all` | | `gbd` | `git branch --delete` | | `gbD` | `git branch --delete --force` | -| `gbda` | `git branch --no-color --merged \| command grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| command xargs git branch --delete 2>/dev/null` | | `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | | `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | | `gbm` | `git branch --move` | @@ -251,6 +250,7 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | +| `gbda` | Deletes all merged and squash-merged branches | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index cb848b40772f5..ceb2011f986ac 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -122,7 +122,22 @@ alias gb='git branch' alias gba='git branch --all' alias gbd='git branch --delete' alias gbD='git branch --delete --force' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' + +# Copied and modified from James Roeder (jmaroeder) under MIT License +# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish +function gbda() { + git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null + + local default_branch=$(git_main_branch) + git for-each-ref refs/heads/ "--format=%(refname:short)" | \ + while read branch; do + local merge_base=$(git merge-base $default_branch $branch) + if [[ '-*' == $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) ]]; then + git branch -D $branch + fi + done +} + alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' alias gbm='git branch --move' From 38db3e16ef3266800e1a9516c0615ff04ec97cb6 Mon Sep 17 00:00:00 2001 From: Adam Henley <71472057+ajh-sr@users.noreply.github.com> Date: Tue, 10 Oct 2023 07:28:09 +1300 Subject: [PATCH 052/212] feat(kind): add plugin for Kind k8s tool (#9827) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: jxlwqq Co-authored-by: Francesco Ilario Co-authored-by: Marc Cornellà --- plugins/kind/README.md | 22 ++++++++++++++++++++++ plugins/kind/kind.plugin.zsh | 23 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 plugins/kind/README.md create mode 100644 plugins/kind/kind.plugin.zsh diff --git a/plugins/kind/README.md b/plugins/kind/README.md new file mode 100644 index 0000000000000..49024648dbb7a --- /dev/null +++ b/plugins/kind/README.md @@ -0,0 +1,22 @@ +# Kind plugin + +This plugin adds completion for the [Kind](https://kind.sigs.k8s.io/) tool, as well +as a few aliases for easier use. + +To use it, add `kind` to the plugins array in your zshrc file: + +```zsh +plugins=(... kind) +``` + +## Aliases + +| Alias | Command | +| ------- | ---------------------------- | +| `kicc` | `kind create cluster` | +| `kiccn` | `kind create cluster --name` | +| `kigc` | `kind get clusters` | +| `kidc` | `kind delete cluster` | +| `kidcn` | `kind delete cluster --name` | +| `kidca` | `kind delete clusters -A` | +| `kigk` | `kind get kubeconfig` | diff --git a/plugins/kind/kind.plugin.zsh b/plugins/kind/kind.plugin.zsh new file mode 100644 index 0000000000000..183eb7bd6bd64 --- /dev/null +++ b/plugins/kind/kind.plugin.zsh @@ -0,0 +1,23 @@ +if (( ! $+commands[kind] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `kind`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_kind" ]]; then + typeset -g -A _comps + autoload -Uz _kind + _comps[kind]=_kind +fi + +# Generate and load kind completion +kind completion zsh >! "$ZSH_CACHE_DIR/completions/_kind" &| + +# Register aliases +alias kicc="kind create cluster" +alias kiccn="kind create cluster --name" +alias kigc="kind get clusters" +alias kidc="kind delete cluster" +alias kidcn="kind delete cluster --name" +alias kidca="kind delete clusters -A" +alias kigk="kind get kubeconfig" From b1821a24f0574488554de8e7f6d0735fb851de8b Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 10 Oct 2023 16:56:54 +0100 Subject: [PATCH 053/212] fix(git): restore showing patch in `gsts` (#11951) --- plugins/git/README.md | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 33c10ffd0d494..a4e9f4c4a42e9 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -185,7 +185,7 @@ plugins=(... git) | `gstp` | `git stash pop` | | `gsta` | On Git >= 2.13: `git stash push` | | `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show` | +| `gsts` | `git stash show --patch` | | `gst` | `git status` | | `gss` | `git status --short` | | `gsb` | `git status --short -b` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ceb2011f986ac..b0376308fd8b8 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -349,7 +349,7 @@ alias gstp='git stash pop' is-at-least 2.13 "$git_version" \ && alias gsta='git stash push' \ || alias gsta='git stash save' -alias gsts='git stash show' +alias gsts='git stash show --patch' alias gst='git status' alias gss='git status --short' alias gsb='git status --short --branch' From da3b8fcb6a6bcf4d440b9768d2deab27f787929a Mon Sep 17 00:00:00 2001 From: Lukas Elmer Date: Wed, 11 Oct 2023 18:06:22 +0200 Subject: [PATCH 054/212] fix(yarn): output completion entries in UTF-8 (#11955) --- plugins/yarn/_yarn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn index 1237ba672daae..f15756ff45922 100644 --- a/plugins/yarn/_yarn +++ b/plugins/yarn/_yarn @@ -144,7 +144,7 @@ _yarn_scripts() { fi if [[ -n $packageJson ]]; then - scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E '%r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") + scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E 'binmode(STDOUT, ":encoding(UTF-8)"); %r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") fi commands=('env' $scripts $binaries) From fedef5dbd5f8ffef16815cb3a2c611eb0f7f00b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 19:23:44 +0200 Subject: [PATCH 055/212] fix(xcode): open Xcode in current Desk if already open in another (#10384) Fixes #10384 --- plugins/xcode/xcode.plugin.zsh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 5d1f901a3ad30..f09434e6916c3 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -17,6 +17,13 @@ function xc { local active_path active_path=${"$(xcode-select -p)"%%/Contents/Developer*} echo "Found ${xcode_files[1]}. Opening with ${active_path}" + + # If Xcode is already opened in another Desk, we need this double call + # with -g to open the project window in the current Desk and focus it. + # See https://github.com/ohmyzsh/ohmyzsh/issues/10384 + if command pgrep -q "^Xcode"; then + open -g -a "$active_path" "${xcode_files[1]}" + fi open -a "$active_path" "${xcode_files[1]}" } From 53cb50acb5c2c70f6ba9d26d3d2ffb37c8a19e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 20:43:55 +0200 Subject: [PATCH 056/212] refactor(systemadmin): use `ss` instead of `netstat` when available (#11957) --- plugins/systemadmin/systemadmin.plugin.zsh | 116 ++++++++++++--------- 1 file changed, 67 insertions(+), 49 deletions(-) diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 7ce62bac134fa..03dd995b6e22a 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -13,11 +13,11 @@ # ------------------------------------------------------------------------------ function retlog() { - if [[ -z $1 ]];then - echo '/var/log/nginx/access.log' - else - echo $1 - fi + if [[ -z $1 ]];then + echo '/var/log/nginx/access.log' + else + echo $1 + fi } alias ping='ping -c 5' @@ -28,142 +28,160 @@ alias mkdir='mkdir -pv' alias psmem='ps -e -orss=,args= | sort -b -k1 -nr' alias psmem10='ps -e -orss=,args= | sort -b -k1 -nr | head -n 10' # get top process eating cpu if not work try execute : export LC_ALL='C' -alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr' -alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -n 10' +alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args | sort -k1,1n -nr' +alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args | sort -k1,1n -nr | head -n 10' # top10 of the history alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' function ip() { - if [ -t 1 ]; then - command ip -color "$@" - else - command ip "$@" - fi + if [ -t 1 ]; then + command ip -color "$@" + else + command ip "$@" + fi } # directory LS function dls() { - print -l *(/) + print -l *(/) } function psgrep() { - ps aux | grep "${1:-.}" | grep -v grep + ps aux | grep "${1:-.}" | grep -v grep } # Kills any process that matches a regexp passed to it function killit() { - ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill + ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill } # list contents of directories in a tree-like format if ! (( $+commands[tree] )); then - function tree() { - find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' - } + function tree() { + find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' + } fi # Sort connection state function sortcons() { - netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn + { + LANG= ss -nat | awk 'NR > 1 {print $1}' \ + || LANG= netstat -nat | awk 'NR > 2 {print $6}' + } | sort | uniq -c | sort -rn } # View all 80 Port Connections function con80() { - netstat -nat|grep -i ":80"|wc -l + { + LANG= ss -nat || LANG= netstat -nat + } | grep -E ":80[^0-9]" | wc -l } # On the connected IP sorted by the number of connections function sortconip() { - netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n + { + LANG= ss -ntu | awk 'NR > 1 {print $6}' \ + || LANG= netstat -ntu | awk 'NR > 2 {print $5}' + } | cut -d: -f1 | sort | uniq -c | sort -n } # top20 of Find the number of requests on 80 port function req20() { - netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 + { + LANG= ss -tn | awk '$4 ~ /:80$/ {print $5}' \ + || LANG= netstat -tn | awk '$4 ~ /:80$/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 20 } # top20 of Using tcpdump port 80 access to view function http20() { - sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -n 20 + sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head -n 20 } # top20 of Find time_wait connection function timewait20() { - netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20 + { + LANG= ss -nat | awk 'NR > 1 && /TIME-WAIT/ {print $5}' \ + || LANG= netstat -nat | awk 'NR > 2 && /TIME_WAIT/ {print $5}' + } | sort | uniq -c | sort -rn | head -n 20 } # top20 of Find SYN connection function syn20() { - netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr|head -n20 + { + LANG= ss -an | awk '/SYN/ {print $5}' \ + || LANG= netstat -an | awk '/SYN/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n20 } # Printing process according to the port number function port_pro() { - netstat -ntlp | grep "${1:-.}" | awk '{print $7}' | cut -d/ -f1 + LANG= ss -ntlp | awk "NR > 1 && /:${1:-}/ {print \$6}" | sed 's/.*pid=\([^,]*\).*/\1/' \ + || LANG= netstat -ntlp | awk "NR > 2 && /:${1:-}/ {print \$7}" | cut -d/ -f1 } # top10 of gain access to the ip address function accessip10() { - awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" + awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" } # top20 of Most Visited file or page function visitpage20() { - awk '{print $11}' "$(retlog)"|sort|uniq -c|sort -nr|head -n 20 + awk '{print $11}' "$(retlog)" | sort | uniq -c | sort -nr | head -n 20 } # top100 of Page lists the most time-consuming (more than 60 seconds) as well as the corresponding page number of occurrences function consume100() { - awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 - # if django website or other website make by no suffix language - # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 + awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 + # if django website or other website make by no suffix language + # awk '{print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 } # Website traffic statistics (G) function webtraffic() { - awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" + awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" } # Statistical connections 404 function c404() { - awk '($9 ~/404/)' "$(retlog)" | awk '{print $9,$7}' | sort + awk '($9 ~ /404/)' "$(retlog)" | awk '{print $9,$7}' | sort } # Statistical http status. function httpstatus() { - awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" + awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" } # Delete 0 byte file function d0() { - find "${1:-.}" -type f -size 0 -exec rm -rf {} \; + find "${1:-.}" -type f -size 0 -exec rm -rf {} \; } # gather external ip address function geteip() { - curl -s -S -4 https://icanhazip.com + curl -s -S -4 https://icanhazip.com - # handle case when there is no IPv6 external IP, which shows error - # curl: (7) Couldn't connect to server - curl -s -S -6 https://icanhazip.com 2>/dev/null - local ret=$? - (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" - return $ret + # handle case when there is no IPv6 external IP, which shows error + # curl: (7) Couldn't connect to server + curl -s -S -6 https://icanhazip.com 2>/dev/null + local ret=$? + (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" + return $ret } # determine local IP address(es) function getip() { - if (( ${+commands[ip]} )); then - ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - else - ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - fi + if (( ${+commands[ip]} )); then + ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + else + ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + fi } # Clear zombie processes function clrz() { - ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 + ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 } # Second concurrent function conssec() { - awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)"|sort -k 2 -nr|head -n10 + awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)" | sort -k 2 -nr | head -n10 } From 408330e131110c8b86ce60ab0492b35657cb4d57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 11 Oct 2023 20:44:46 +0200 Subject: [PATCH 057/212] ci: remove redundant macos runner for CI tests Currently the macOS runner is not needed, as we are only checking zsh syntax. We can reactivate it in the future if needed. --- .github/workflows/main.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 57403629c72d4..de7d982628739 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,16 +20,12 @@ permissions: jobs: tests: name: Run tests - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - strategy: - matrix: - os: [ubuntu-latest, macos-latest] steps: - name: Set up git repository uses: actions/checkout@v3 - name: Install zsh - if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh - name: Check syntax run: | From 6768906d07151140db901510b2c8b1ce2622f365 Mon Sep 17 00:00:00 2001 From: sattisumasri <73093486+sattisumasri@users.noreply.github.com> Date: Thu, 12 Oct 2023 00:27:01 +0530 Subject: [PATCH 058/212] chore: change headings in README to Title Case (#11956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Marc Cornellà --- README.md | 69 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index c83e162180ac1..308d117e109a5 100644 --- a/README.md +++ b/README.md @@ -23,32 +23,33 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi Table of Contents - [Getting Started](#getting-started) + - [Operating System Compatibility](#operating-system-compatibility) - [Prerequisites](#prerequisites) - [Basic Installation](#basic-installation) - - [Manual inspection](#manual-inspection) + - [Manual Inspection](#manual-inspection) - [Using Oh My Zsh](#using-oh-my-zsh) - [Plugins](#plugins) - [Enabling Plugins](#enabling-plugins) - [Using Plugins](#using-plugins) - [Themes](#themes) - - [Selecting a Theme](#selecting-a-theme) + - [Selecting A Theme](#selecting-a-theme) - [FAQ](#faq) - [Advanced Topics](#advanced-topics) - [Advanced Installation](#advanced-installation) - [Custom Directory](#custom-directory) - - [Unattended install](#unattended-install) - - [Installing from a forked repository](#installing-from-a-forked-repository) + - [Unattended Install](#unattended-install) + - [Installing From A Forked Repository](#installing-from-a-forked-repository) - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - - [Custom Plugins and Themes](#custom-plugins-and-themes) - - [Enable GNU ls in macOS and freeBSD systems](#enable-gnu-ls) - - [Skip aliases](#skip-aliases) + - [Custom Plugins And Themes](#custom-plugins-and-themes) + - [Enable GNU ls In macOS And freeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems) + - [Skip Aliases](#skip-aliases) - [Getting Updates](#getting-updates) - - [Updates verbosity](#updates-verbosity) + - [Updates Verbosity](#updates-verbosity) - [Manual Updates](#manual-updates) - [Uninstalling Oh My Zsh](#uninstalling-oh-my-zsh) -- [How do I contribute to Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) - - [Do NOT send us themes](#do-not-send-us-themes) +- [How Do I Contribute To Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) + - [Do Not Send Us Themes](#do-not-send-us-themes) - [Contributors](#contributors) - [Follow Us](#follow-us) - [Merchandise](#merchandise) @@ -61,15 +62,15 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi ### Operating System Compatibility -| O/S | Status | -| :---------------- | :------: | -| Android | ✅ | -| FreeBSD | ✅ | -| LCARS | 🛸 | -| Linux | ✅ | -| MacOS | ✅ | -| OS/2 Warp | ❌ | -| Windows (WSL2) | ✅ | +| O/S | Status | +| :------------- | :-----: | +| Android | ✅ | +| freeBSD | ✅ | +| LCARS | 🛸 | +| Linux | ✅ | +| macOS | ✅ | +| OS/2 Warp | ❌ | +| Windows (WSL2) | ✅ | ### Prerequisites @@ -90,7 +91,7 @@ Oh My Zsh is installed by running one of the following commands in your terminal _Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._ -#### Manual inspection +#### Manual Inspection It's a good idea to inspect the install script from projects you don't yet know. You can do that by downloading the install script first, looking through it so everything looks normal, @@ -139,7 +140,7 @@ Each built-in plugin includes a **README**, documenting it. This README should s We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred and fifty themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki (We are working on updating this!). Check them out! -#### Selecting a Theme +#### Selecting A Theme _Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._ @@ -210,7 +211,7 @@ like this: ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh ``` -#### Unattended install +#### Unattended Install If you're running the Oh My Zsh install script as part of an automated install, you can pass the `--unattended` flag to the `install.sh` script. This will have the effect of not trying to change @@ -220,7 +221,7 @@ the default shell, and it also won't run `zsh` when the installation has finishe sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ``` -#### Installing from a forked repository +#### Installing From A Forked Repository The install script also accepts these variables to allow installation of a different repository: @@ -245,19 +246,19 @@ REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh #### Manual Installation -##### 1. Clone the repository +##### 1. Clone The Repository ```sh git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh ``` -##### 2. _Optionally_, backup your existing `~/.zshrc` file +##### 2. _Optionally_, Backup Your Existing `~/.zshrc` File ```sh cp ~/.zshrc ~/.zshrc.orig ``` -##### 3. Create a new zsh configuration file +##### 3. Create A New Zsh Configuration File You can create a new zsh config file by copying the template that we have included for you. @@ -265,7 +266,7 @@ You can create a new zsh config file by copying the template that we have includ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc ``` -##### 4. Change your default shell +##### 4. Change Your Default Shell ```sh chsh -s $(which zsh) @@ -273,7 +274,7 @@ chsh -s $(which zsh) You must log out from your user session and log back in to see this change. -##### 5. Initialize your new zsh configuration +##### 5. Initialize Your New Zsh Configuration Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration. @@ -284,7 +285,7 @@ If you have any hiccups installing, here are a few common fixes. - You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`. - If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`. -### Custom Plugins and Themes +### Custom Plugins And Themes If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory. @@ -292,7 +293,7 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. -### Enable GNU ls in macOS and freeBSD systems +### Enable GNU ls In macOS And freeBSD Systems @@ -306,7 +307,7 @@ zstyle ':omz:lib:theme-and-appearance' gnu-ls yes _Note: this is not compatible with `DISABLE_LS_COLORS=true`_ -### Skip aliases +### Skip Aliases @@ -389,7 +390,7 @@ zstyle ':omz:update' frequency 7 zstyle ':omz:update' frequency 0 ``` -### Updates verbosity +### Updates Verbosity You can also limit the update verbosity with the following settings: @@ -417,7 +418,7 @@ Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy b If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration. -## How do I contribute to Oh My Zsh? +## How Do I Contribute To Oh My Zsh? Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md). @@ -427,7 +428,7 @@ We also need people to test out pull requests. So take a look through [the open See [Contributing](CONTRIBUTING.md) for more details. -### Do NOT send us themes +### Do Not Send Us Themes We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page. From 5743198e0ed5de137b4aa1b948cf4c82b02bdd8e Mon Sep 17 00:00:00 2001 From: Preston Button Date: Thu, 12 Oct 2023 04:32:48 -0400 Subject: [PATCH 059/212] docs(aliases): fix typo (#11958) --- plugins/aliases/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 53b68ea01d1a3..14f9c5c53765b 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -17,7 +17,7 @@ Requirements: Python needs to be installed. - `als`: show all aliases by group -- `als -h/--help`: print help mesage +- `als -h/--help`: print help message - `als `: filter and highlight aliases by `` From 7329b2fbb1787651d4900d5ef280b926c5696c01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 12 Oct 2023 11:46:49 +0200 Subject: [PATCH 060/212] docs(debian): clarify override behavior for `apt_pref` and `apt_upgr` Fixes #11959 --- plugins/debian/README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/debian/README.md b/plugins/debian/README.md index 1db534f136651..6835ad65cc945 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -13,7 +13,12 @@ plugins=(... debian) - `$apt_pref`: use aptitude or apt if installed, fallback is apt-get. - `$apt_upgr`: use upgrade or safe-upgrade (for aptitude). -Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior. +Set **both** `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior, e.g.: + +```sh +apt_pref='apt' +apt_upgr='full-upgrade' +``` ## Common Aliases From 772b41ea5a362206e1498453dd053e638752c5dc Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Thu, 12 Oct 2023 20:09:40 +0545 Subject: [PATCH 061/212] chore(zsh-navigation-tools): fix typo (#11960) --- plugins/zsh-navigation-tools/n-list | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/zsh-navigation-tools/n-list b/plugins/zsh-navigation-tools/n-list index f25db8f60fb61..a852b083af769 100644 --- a/plugins/zsh-navigation-tools/n-list +++ b/plugins/zsh-navigation-tools/n-list @@ -467,7 +467,7 @@ while (( 1 )); do elif [ -n "$keypad" ]; then final_key="$keypad" else - _nlist_status_msg "Inproper input detected" + _nlist_status_msg "Improper input detected" zcurses refresh main inner fi From 3efdbf9e1e6663adf9d8a2d113ec62855c621ef7 Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Fri, 13 Oct 2023 13:38:48 +0545 Subject: [PATCH 062/212] chore(hitchhiker): fix typos (#11961) --- plugins/hitchhiker/fortunes/hitchhiker | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/hitchhiker/fortunes/hitchhiker b/plugins/hitchhiker/fortunes/hitchhiker index b0448b21edcdb..94cc1c835849a 100644 --- a/plugins/hitchhiker/fortunes/hitchhiker +++ b/plugins/hitchhiker/fortunes/hitchhiker @@ -80,7 +80,7 @@ % "The fronting for the eighty-yard-long marble-topped bar had been made by stitching together nearly twenty thousand Antarean Mosaic Lizard skins, despite the fact that the twenty thousand lizards concerned had needed them to keep their insides in." -- The Book decribing Milliways' politically incorrect decor. +- The Book describing Milliways' politically incorrect decor. % "`...and the Universe,' continued the waiter, determined not to be deflected on his home stretch, `will explode later for your pleasure.' Ford's head swivelled slowly towards him. He spoke with feeling. `Wow,' he said, `What sort of drinks do you serve in this place?' The waiter laughed a polite little waiter's laugh. `Ah,' he said, `I think sir has perhaps misunderstood me.' `Oh, I hope not,' breathed Ford." @@ -104,7 +104,7 @@ % "`The first ten million years were the worst,' said Marvin, `and the second ten million, they were the worst too. The third ten million I didn't enjoy at all. After that I went into a bit of a decline.'" -- Marvin reflecting back on his 576,000,003,579 year career as Milliways' car park attendent. +- Marvin reflecting back on his 576,000,003,579 year career as Milliways' car park attendant. % "`Incidentally,' he said, `what does teleport mean?' Another moment passed. Slowly, the others turned to face him. `Probably the wrong moment to ask,' said Arthur, `It's just I remember you use the word a short while ago and I only bring it up because...' `Where,' said Ford quietly, `does it say teleport?' `Well, just over here in fact,' said Arthur, pointing at a dark control box in the rear of the cabin, `Just under the word "emergency", above the word "system" and beside the sign saying "out of order".'" @@ -122,7 +122,7 @@ - Ford "debating" what to do with fire with a marketing girl. % -"The story goes that I first had the idea for THHGTTG while lying drunk in a field in Innsbruck (or `Spain' as the BBC TV publicity department authoritatively has it, probably because it's easier to spell)." - Foreward by DNA. +"The story goes that I first had the idea for THHGTTG while lying drunk in a field in Innsbruck (or `Spain' as the BBC TV publicity department authoritatively has it, probably because it's easier to spell)." - Foreword by DNA. FORD Six pints of bitter. And quickly please, the world's about to end. BARMAN Oh yes, sir? Nice weather for it. % @@ -162,7 +162,7 @@ ARTHUR It probably seems a terrible thing to say, but you know what I sometimes - Arthur discovering a way of coping with life on Prehistoric Earth. % -"`... then I decided that I was a lemon for a couple of weeks. I kept myself amused all that time jumping in and out of a gin and tonic.' Arthur cleared his throat, and then did it again. `Where,' he said, `did you...?' `Find a gin and tonic?' said Ford brightly. `I found a small lake that thought it was a gin and tonic, and jumped in and out of that. At least, I think it thought it was a gin and tonic.' `I may,' he addded with a grin which would have sent sane men scampering into the trees, `have been imagining it.'" +"`... then I decided that I was a lemon for a couple of weeks. I kept myself amused all that time jumping in and out of a gin and tonic.' Arthur cleared his throat, and then did it again. `Where,' he said, `did you...?' `Find a gin and tonic?' said Ford brightly. `I found a small lake that thought it was a gin and tonic, and jumped in and out of that. At least, I think it thought it was a gin and tonic.' `I may,' he added with a grin which would have sent sane men scampering into the trees, `have been imagining it.'" - Ford updating Arthur about what he's been doing for the past four years. % From 8d9c9b6174466cc432a9946b0459c214586cb1b2 Mon Sep 17 00:00:00 2001 From: Sandesh Pyakurel <82999440+Sandesh-Pyakurel@users.noreply.github.com> Date: Fri, 13 Oct 2023 20:45:28 +0545 Subject: [PATCH 063/212] chore(postgres): fix typo (#11967) --- plugins/postgres/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/postgres/README.md b/plugins/postgres/README.md index 59445f31cf15e..3f59a8fe49d26 100644 --- a/plugins/postgres/README.md +++ b/plugins/postgres/README.md @@ -19,4 +19,4 @@ plugins=(... postgres) | stoppost | `pg_ctl -D /usr/local/var/postgres stop -s -m fast` | Stop postgres server | | restartpost | `stoppost && sleep 1 && startpost` | Restart (calls stop, then start) | | reloadpost | `pg_ctl reload -D /usr/local/var/postgres -s` | Reload postgres configuration (some setting require restart)| -| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check startus of postgres server (running, stopped) | +| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check status of postgres server (running, stopped) | From 48a62a9f713449a014d66b01afd99a4fcf1911fe Mon Sep 17 00:00:00 2001 From: Kapil Pau Date: Fri, 13 Oct 2023 23:11:47 +0100 Subject: [PATCH 064/212] feat(span): Introducing Snapcraft CLI plugin (#9357) --- plugins/snap/README.md | 18 ++++++++++++++++++ plugins/snap/snap.plugin.zsh | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 plugins/snap/README.md create mode 100644 plugins/snap/snap.plugin.zsh diff --git a/plugins/snap/README.md b/plugins/snap/README.md new file mode 100644 index 0000000000000..75c5ec19ab384 --- /dev/null +++ b/plugins/snap/README.md @@ -0,0 +1,18 @@ +# snap plugin + +This plugin sets up aliases for the common [snap](https://snapcraft.io/docs/getting-started) commands + +## Aliases + +| Alias | Full command | +| --- | ---| +| sv | snap version | +| sf | snap find | +| si | snap install | +| sin | snap info | +| sr | snap remove | +| sref | snap refresh | +| srev | snap revert | +| sl | snap list | +| sd | snap disable | +| se | snap enable | diff --git a/plugins/snap/snap.plugin.zsh b/plugins/snap/snap.plugin.zsh new file mode 100644 index 0000000000000..af23469782049 --- /dev/null +++ b/plugins/snap/snap.plugin.zsh @@ -0,0 +1,10 @@ +alias sv="snap version" +alias sf="snap find" +alias si="snap install" +alias sin="snap info" +alias sr="snap remove" +alias sref="snap refresh" +alias srev="snap revert" +alias sl="snap list" +alias sd="snap disable" +alias se="snap enable" From 2db53ff1da078b2207cb98736370f1f145e5c667 Mon Sep 17 00:00:00 2001 From: Steve Lessard Jr Date: Fri, 13 Oct 2023 18:26:16 -0400 Subject: [PATCH 065/212] fix(avit): RPROMPT Fix for #10307 (#11131) Co-authored-by: Steve Lessard --- themes/avit.zsh-theme | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme index 1279ea9195fc9..206274462825e 100644 --- a/themes/avit.zsh-theme +++ b/themes/avit.zsh-theme @@ -11,7 +11,12 @@ $(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info) PROMPT2='%{%(!.${fg[red]}.${fg[white]})%}◀%{$reset_color%} ' -RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +__RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +if [[ -z $RPROMPT ]]; then + RPROMPT=$__RPROMPT +else + RPROMPT="${RPROMPT} ${__RPROMPT}" +fi function _user_host() { local me From f7130bb529a2d15652f739c552688b34aac63315 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 13 Oct 2023 15:38:13 -0700 Subject: [PATCH 066/212] fix(gnzh): Don't show .local for local hostnames in theme Fixes #10871 --- themes/gnzh.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 1e6c4e93b63d7..ca62320e20e6b 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -21,7 +21,7 @@ fi if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then PR_HOST='%F{red}%M%f' # SSH else - PR_HOST='%F{green}%M%f' # no SSH + PR_HOST='%F{green}%m%f' # no SSH fi From f93976875133409297be864ce94d50f20a9bc18d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 14 Oct 2023 16:40:45 +0200 Subject: [PATCH 067/212] fix(git): fix fallback to develop branch if `master` not found (#11966) --- plugins/git/git.plugin.zsh | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index b0376308fd8b8..d053a7638fde7 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -20,26 +20,31 @@ function current_branch() { function git_develop_branch() { command git rev-parse --git-dir &>/dev/null || return local branch - for branch in dev devel development; do + for branch in dev devel develop development; do if command git show-ref -q --verify refs/heads/$branch; then echo $branch - return + return 0 fi done + echo develop + return 1 } # Check if main exists and use instead of master function git_main_branch() { command git rev-parse --git-dir &>/dev/null || return local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,master}; do if command git show-ref -q --verify $ref; then echo ${ref:t} - return + return 0 fi done + + # If no main branch was found, fall back to master but return error echo master + return 1 } function grename() { @@ -129,6 +134,8 @@ function gbda() { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null local default_branch=$(git_main_branch) + (( ! $? )) || default_branch=$(git_develop_branch) + git for-each-ref refs/heads/ "--format=%(refname:short)" | \ while read branch; do local merge_base=$(git merge-base $default_branch $branch) From 96c976637a4112e1e72a1a449ac51d78acc67597 Mon Sep 17 00:00:00 2001 From: nishanthps-cai <123212871+nishanthps-cai@users.noreply.github.com> Date: Tue, 17 Oct 2023 00:55:05 -0700 Subject: [PATCH 068/212] feat(bazel): use completion also for bazelisk (#11984) --- plugins/bazel/_bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bazel/_bazel b/plugins/bazel/_bazel index c34c572b0589b..ea1f4cace208d 100644 --- a/plugins/bazel/_bazel +++ b/plugins/bazel/_bazel @@ -1,4 +1,4 @@ -#compdef bazel +#compdef bazel bazelisk # Copyright 2015 The Bazel Authors. All rights reserved. # From d3112d67a3eb55fc39975f917467704ebb2c296b Mon Sep 17 00:00:00 2001 From: Vyacheslav Scherbinin Date: Wed, 18 Oct 2023 14:18:05 +0700 Subject: [PATCH 069/212] feat(vscode): allow arguments to `vsc` alias (#11903) Co-authored-by: Carlo Sala --- plugins/vscode/README.md | 3 ++- plugins/vscode/vscode.plugin.zsh | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md index e95ed5d4f8ca1..726b23d359f77 100644 --- a/plugins/vscode/README.md +++ b/plugins/vscode/README.md @@ -31,7 +31,7 @@ the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell ## Using multiple flavours -If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can +If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined executable. @@ -53,6 +53,7 @@ source $ZSH/oh-my-zsh.sh | Alias | Command | Description | | ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- | | vsc | code . | Open the current folder in VS code | +| vsc `dir` | code `dir` | Open passed folder in VS code | | vsca `dir` | code --add `dir` | Add folder(s) to the last active window | | vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. | | vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. | diff --git a/plugins/vscode/vscode.plugin.zsh b/plugins/vscode/vscode.plugin.zsh index 48d90437702d6..356c6236088da 100644 --- a/plugins/vscode/vscode.plugin.zsh +++ b/plugins/vscode/vscode.plugin.zsh @@ -23,7 +23,14 @@ if [[ -z "$VSCODE" ]]; then fi fi -alias vsc="$VSCODE ." +function vsc { + if (( $# )); then + $VSCODE $@ + else + $VSCODE . + fi +} + alias vsca="$VSCODE --add" alias vscd="$VSCODE --diff" alias vscg="$VSCODE --goto" From f10cd5281d805bb5679dd46b304d9b8997f98981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patryk=20Krawaczy=C5=84ski?= Date: Wed, 18 Oct 2023 13:59:28 +0200 Subject: [PATCH 070/212] feat(history): add `hl` alias (#11990) --- plugins/history/README.md | 1 + plugins/history/history.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/history/README.md b/plugins/history/README.md index a9d480f46b229..73d6a5052e6db 100644 --- a/plugins/history/README.md +++ b/plugins/history/README.md @@ -13,5 +13,6 @@ plugins=(... history) | Alias | Command | Description | |-------|----------------------|------------------------------------------------------------------| | `h` | `history` | Prints your command history | +| `hl` | `history \| less` | Pipe history output to less to search and navigate it easily | | `hs` | `history \| grep` | Use grep to search your command history | | `hsi` | `history \| grep -i` | Use grep to do a case-insensitive search of your command history | diff --git a/plugins/history/history.plugin.zsh b/plugins/history/history.plugin.zsh index 9cee48fe4b7c7..fb3e313893536 100644 --- a/plugins/history/history.plugin.zsh +++ b/plugins/history/history.plugin.zsh @@ -1,3 +1,4 @@ alias h='history' +alias hl='history | less' alias hs='history | grep' alias hsi='history | grep -i' From b696288337618ca749369a679bd77989bd4cd47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my?= Date: Wed, 18 Oct 2023 19:27:47 +0200 Subject: [PATCH 071/212] feat(kubectl): add `kgdsa` alias (#11863) --- plugins/kubectl/kubectl.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 315d3ce93d58d..0dd4e691a7ff2 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -162,6 +162,7 @@ alias kdelsa="kubectl delete sa" # DaemonSet management. alias kgds='kubectl get daemonset' +alias kgdsa='kubectl get daemonset --all-namespaces' alias kgdsw='kgds --watch' alias keds='kubectl edit daemonset' alias kdds='kubectl describe daemonset' From 8152dc673b14c89dc12e816583e24532ed77e8ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 18 Oct 2023 20:01:58 +0200 Subject: [PATCH 072/212] fix(git): move squash-merged branch deletion from `gbda` to `gbds` function (#11991) --- plugins/git/README.md | 3 ++- plugins/git/git.plugin.zsh | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index a4e9f4c4a42e9..724965302693e 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -250,7 +250,8 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | -| `gbda` | Deletes all merged and squash-merged branches | +| `gbda` | Deletes all merged branches | +| `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d053a7638fde7..48937cb83778c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -128,11 +128,13 @@ alias gba='git branch --all' alias gbd='git branch --delete' alias gbD='git branch --delete --force' -# Copied and modified from James Roeder (jmaroeder) under MIT License -# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish function gbda() { git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null +} +# Copied and modified from James Roeder (jmaroeder) under MIT License +# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish +function gbds() { local default_branch=$(git_main_branch) (( ! $? )) || default_branch=$(git_develop_branch) From 0da416986aadbaf89dc5596b01f9b42403f4d9fd Mon Sep 17 00:00:00 2001 From: Vishal Sharma <106011641+vishal-sharma-369@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:44:47 +0530 Subject: [PATCH 073/212] fix(ssh-agent): add error message if `~/.ssh` is not found (#11929) Closes #11829 Co-authored-by: Carlo Sala --- plugins/ssh-agent/ssh-agent.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 78ac46b13815a..49ad95a118965 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -13,6 +13,11 @@ function _start_agent() { fi fi + if [[ ! -d "$HOME/.ssh" ]]; then + echo "[oh-my-zsh] ssh-agent plugin requires ~/.ssh directory" + return 1 + fi + # Set a maximum lifetime for identities added to ssh-agent local lifetime zstyle -s :omz:plugins:ssh-agent lifetime lifetime From 104041a018dc9a3eb74f93815192dba4c9386e1a Mon Sep 17 00:00:00 2001 From: Peat Bakke Date: Thu, 19 Oct 2023 02:49:38 -0700 Subject: [PATCH 074/212] feat(tmux): add `tds` alias for directory sessions (#11987) --- plugins/tmux/README.md | 1 + plugins/tmux/tmux.plugin.zsh | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 0f8473daf45c6..b4516ef2657a4 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -25,6 +25,7 @@ The plugin also supports the following: | `tkss` | tmux kill-session -t | Terminate named running tmux session | | `tmux` | `_zsh_tmux_plugin_run` | Start a new tmux session | | `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor | +| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path | ## Configuration Variables diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 6ed91c44791d7..72cdd481830b7 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -108,6 +108,19 @@ compdef _tmux _zsh_tmux_plugin_run # Alias tmux to our wrapper function. alias tmux=_zsh_tmux_plugin_run +function _tmux_directory_session() { + # current directory without leading path + local dir=${PWD##*/} + # md5 hash for the full working directory path + local md5=$(printf '%s' "$PWD" | md5sum | cut -d ' ' -f 1) + # human friendly unique session name for this directory + local session_name="${dir}-${md5:0:6}" + # create or attach to the session + tmux new -As "$session_name" +} + +alias tds=_tmux_directory_session + # Autostart if not already in tmux and enabled. if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then # Actually don't autostart if we already did and multiple autostarts are disabled. From a8dee63ffe8839d3bcf1066f8359fa43caccf3f2 Mon Sep 17 00:00:00 2001 From: Ryan Tvenge Date: Thu, 19 Oct 2023 09:41:36 -0500 Subject: [PATCH 075/212] feat(lando): bypass `lando` if command is not available in container (#11993) Closes #11993 --- plugins/lando/lando.plugin.zsh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index af53e7e5a9f41..b5fa800926e01 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -11,15 +11,23 @@ function artisan \ php \ wp \ yarn { - if checkForLandoFile; then - lando "$0" "$@" + # If the lando task is available in `lando --help`, then it means: + # + # 1. `lando` is in a project with a `.lando.yml` file. + # 2. The lando task is available for lando, based on the .lando.yml config file. + # + # This has a penalty of about 250ms, so we still want to check if the lando file + # exists before, which is the fast path. If it exists, checking help output is + # still faster than running the command and failing. + if _lando_file_exists && lando --help 2>&1 | command grep -Eq "^ +lando $0 "; then + command lando "$0" "$@" else command "$0" "$@" fi } # Check for the file in the current and parent directories. -checkForLandoFile() { +_lando_file_exists() { # Only bother checking for lando within the Sites directory. if [[ "$PWD/" != "$LANDO_ZSH_SITES_DIRECTORY"/* ]]; then # Not within $LANDO_ZSH_SITES_DIRECTORY @@ -38,4 +46,4 @@ checkForLandoFile() { # Could not find $LANDO_ZSH_CONFIG_FILE in the current directory # or in any of its parents up to $LANDO_ZSH_SITES_DIRECTORY. return 1 -} \ No newline at end of file +} From d082d87580f05cca524c546d54eb8009cf8bb10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 20:35:01 +0200 Subject: [PATCH 076/212] refactor(lando): add `LANDO_ZSH_WRAPPED_COMMANDS` setting and refactor --- plugins/lando/README.md | 24 +++++++++++++++++++++--- plugins/lando/lando.plugin.zsh | 19 +++++++++++-------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/plugins/lando/README.md b/plugins/lando/README.md index 6daeae4e494de..2f881cf3dfdf8 100644 --- a/plugins/lando/README.md +++ b/plugins/lando/README.md @@ -8,7 +8,7 @@ To use it, add `lando` to the plugins array in your zshrc file: plugins=(... lando) ``` -## ALIASES: +## Wrapped Commands | Alias | Description | |:----------:|:----------------:| @@ -21,16 +21,34 @@ plugins=(... lando) | `wp` | `lando wp` | | `yarn` | `lando yarn` | +More or different commands can be wrapped by setting the `LANDO_ZSH_WRAPPED_COMMANDS` setting, see [Settings](#settings) below. + ## How It Works: This plugin removes the requirement to type `lando` before a command. It utilizes the lando version of supported commands run within directories with the following criteria: + - The `.lando.yml` file is found in the current directory or any parent directory within `$LANDO_ZSH_SITES_DIRECTORY`. - The current directory is within `$LANDO_ZSH_SITES_DIRECTORY` but is not `$LANDO_ZSH_SITES_DIRECTORY` itself. +- If the command is not a part of the commands available in the lando environment, it will run the command without `lando`. ## Settings: -- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory. -- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando. +> NOTE: these settings must be set *before* the plugin is loaded, and any changes require a restart of the shell to be applied. + +- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory: + ```sh + LANDO_ZSH_SITES_DIRECTORY="$HOME/Code" + ``` + +- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando: + ```sh + LANDO_ZSH_CONFIG_FILE=".lando.dev.yml" + ``` + +- `LANDO_ZSH_WRAPPED_COMMANDS`: The list of commands to wrap, as a string of commands separated by whitespace: + ```sh + LANDO_ZSH_WRAPPED_COMMANDS="mysql php composer test artisan" + ``` ## Author: diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index b5fa800926e01..ee796d2128bf4 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -1,16 +1,19 @@ # Settings : ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"} : ${LANDO_ZSH_CONFIG_FILE:=.lando.yml} +: ${LANDO_ZSH_WRAPPED_COMMANDS:=" + artisan + composer + drush + gulp + npm + php + wp + yarn +"} # Enable multiple commands with lando. -function artisan \ - composer \ - drush \ - gulp \ - npm \ - php \ - wp \ - yarn { +function ${=LANDO_ZSH_WRAPPED_COMMANDS} { # If the lando task is available in `lando --help`, then it means: # # 1. `lando` is in a project with a `.lando.yml` file. From 9f84ba085425800dee0b4e391d8cf377806dc75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 20:47:26 +0200 Subject: [PATCH 077/212] feat(command-not-found): add support for Homebrew on Linux Fixes #11151 --- plugins/command-not-found/command-not-found.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index cb8a8989c5360..c741e18a27376 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -3,9 +3,10 @@ for file ( # Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found /usr/share/doc/pkgfile/command-not-found.zsh - # macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found + # Homebrew: https://github.com/Homebrew/homebrew-command-not-found /opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh + /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh ); do if [[ -r "$file" ]]; then source "$file" From 207d29b716301c77392ae140b1482eeba44e9102 Mon Sep 17 00:00:00 2001 From: Zeeshan Date: Tue, 4 Oct 2022 18:51:24 +0530 Subject: [PATCH 078/212] fix(git)!: standardize `git pull --rebase` aliases (#11224) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BREAKING CHANGE: The alias `gup` for `git pull --rebase` and its derivatives are replaced by `gpr` for standardization. This means the previous aliases will no longer be available after a few months. Meanwhile, the original aliases are still working, with a deprecation notice. See https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/README.md#deprecated-aliases for the full list of deprecated aliases. Fixes #11104 Closes #11224 Co-authored-by: Marc Cornellà --- plugins/git/README.md | 434 +++++++++++++++++++------------------ plugins/git/git.plugin.zsh | 29 ++- 2 files changed, 242 insertions(+), 221 deletions(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index 724965302693e..93dc8ccea5096 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,207 +10,205 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | -| `ggpnp` | `ggl && ggp` | -| `ggpur` | `ggu` | -| `g` | `git` | -| `ga` | `git add` | -| `gaa` | `git add --all` | -| `gapa` | `git add --patch` | -| `gau` | `git add --update` | -| `gav` | `git add --verbose` | -| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | -| `gam` | `git am` | -| `gama` | `git am --abort` | -| `gamc` | `git am --continue` | -| `gamscp` | `git am --show-current-patch` | -| `gams` | `git am --skip` | -| `gap` | `git apply` | -| `gapt` | `git apply --3way` | -| `gbs` | `git bisect` | -| `gbsb` | `git bisect bad` | -| `gbsg` | `git bisect good` | -| `gbsn` | `git bisect new` | -| `gbso` | `git bisect old` | -| `gbsr` | `git bisect reset` | -| `gbss` | `git bisect start` | -| `gbl` | `git blame -w` | -| `gb` | `git branch` | -| `gba` | `git branch --all` | -| `gbd` | `git branch --delete` | -| `gbD` | `git branch --delete --force` | -| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | -| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | -| `gbm` | `git branch --move` | -| `gbnm` | `git branch --no-merged` | -| `gbr` | `git branch --remote` | -| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | -| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | -| `gco` | `git checkout` | -| `gcor` | `git checkout --recurse-submodules` | -| `gcb` | `git checkout -b` | -| `gcd` | `git checkout $(git_develop_branch)` | -| `gcm` | `git checkout $(git_main_branch)` | -| `gcp` | `git cherry-pick` | -| `gcpa` | `git cherry-pick --abort` | -| `gcpc` | `git cherry-pick --continue` | -| `gclean` | `git clean --interactive -d` | -| `gcl` | `git clone --recurse-submodules` | -| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | -| `gcam` | `git commit --all --message` | -| `gcas` | `git commit --all --signoff` | -| `gcasm` | `git commit --all --signoff --message` | -| `gcmsg` | `git commit --message` | -| `gcsm` | `git commit --signoff --message` | -| `gc` | `git commit --verbose` | -| `gca` | `git commit --verbose --all` | -| `gca!` | `git commit --verbose --all --amend` | -| `gcan!` | `git commit --verbose --all --no-edit --amend` | -| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | -| `gc!` | `git commit --verbose --amend` | -| `gcn!` | `git commit --verbose --no-edit --amend` | -| `gcs` | `git commit -S` | -| `gcss` | `git commit -S -s` | -| `gcssm` | `git commit -S -s -m` | -| `gcf` | `git config --list` | -| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | -| `gd` | `git diff` | -| `gdca` | `git diff --cached` | -| `gdcw` | `git diff --cached --word-diff` | -| `gds` | `git diff --staged` | -| `gdw` | `git diff --word-diff` | -| `gdv` | `git diff -w "$@" \| view -` | -| `gdup` | `git diff @{upstream}` | -| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | -| `gdt` | `git diff-tree --no-commit-id --name-only -r` | -| `gf` | `git fetch` | -| `gfa` | `git fetch --all --prune` | -| `gfo` | `git fetch origin` | -| `gg` | `git gui citool` | -| `gga` | `git gui citool --amend` | -| `ghh` | `git help` | -| `glgg` | `git log --graph` | -| `glgga` | `git log --graph --decorate --all` | -| `glgm` | `git log --graph --max-count=10` | -| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | -| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | -| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | -| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | -| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | -| `glo` | `git log --oneline --decorate` | -| `glog` | `git log --oneline --decorate --graph` | -| `gloga` | `git log --oneline --decorate --graph --all` | -| `glp` | `git log --pretty=` | -| `glg` | `git log --stat` | -| `glgp` | `git log --stat --patch` | -| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | -| `gfg` | `git ls-files \| grep` | -| `gm` | `git merge` | -| `gma` | `git merge --abort` | -| `gms` | `git merge --squash` | -| `gmom` | `git merge origin/$(git_main_branch)` | -| `gmum` | `git merge upstream/$(git_main_branch)` | -| `gmtl` | `git mergetool --no-prompt` | -| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | -| `gl` | `git pull` | -| `gpr` | `git pull --rebase` | -| `gup` | `git pull --rebase` | -| `gupa` | `git pull --rebase --autostash` | -| `gupav` | `git pull --rebase --autostash --verbose` | -| `gupv` | `git pull --rebase --verbose` | -| `ggu` | `git pull --rebase origin $(current_branch)` | -| `gupom` | `git pull --rebase origin $(git_main_branch)` | -| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | -| `ggpull` | `git pull origin "$(git_current_branch)"` | -| `ggl` | `git pull origin $(current_branch)` | -| `gluc` | `git pull upstream $(git_current_branch)` | -| `glum` | `git pull upstream $(git_main_branch)` | -| `gp` | `git push` | -| `gpd` | `git push --dry-run` | -| `gpf!` | `git push --force` | -| `ggf` | `git push --force origin $(current_branch)` | -| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | -| `gpf` | On Git < 2.30: `git push --force-with-lease` | -| `ggfl` | `git push --force-with-lease origin $(current_branch)` | -| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | -| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | -| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | -| `gpv` | `git push --verbose` | -| `gpoat` | `git push origin --all && git push origin --tags` | -| `gpod` | `git push origin --delete` | -| `ggpush` | `git push origin "$(git_current_branch)"` | -| `ggp` | `git push origin $(current_branch)` | -| `gpu` | `git push upstream` | -| `grb` | `git rebase` | -| `grba` | `git rebase --abort` | -| `grbc` | `git rebase --continue` | -| `grbi` | `git rebase --interactive` | -| `grbo` | `git rebase --onto` | -| `grbs` | `git rebase --skip` | -| `grbd` | `git rebase $(git_develop_branch)` | -| `grbm` | `git rebase $(git_main_branch)` | -| `grbom` | `git rebase origin/$(git_main_branch)` | -| `gr` | `git remote` | -| `grv` | `git remote --verbose` | -| `gra` | `git remote add` | -| `grrm` | `git remote remove` | -| `grmv` | `git remote rename` | -| `grset` | `git remote set-url` | -| `grup` | `git remote update` | -| `grh` | `git reset` | -| `gru` | `git reset --` | -| `grhh` | `git reset --hard` | -| `grhk` | `git reset --keep` | -| `grhs` | `git reset --soft` | -| `gpristine` | `git reset --hard && git clean -dffx` | -| `groh` | `git reset origin/$(git_current_branch) --hard` | -| `grs` | `git restore` | -| `grss` | `git restore --source` | -| `grst` | `git restore --staged` | -| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | -| `grev` | `git revert` | -| `grm` | `git rm` | -| `grmc` | `git rm --cached` | -| `gcount` | `git shortlog --summary -n` | -| `gsh` | `git show` | -| `gsps` | `git show --pretty=short --show-signature` | -| `gstall` | `git stash --all` | -| `gstu` | `git stash --include-untracked` | -| `gstaa` | `git stash apply` | -| `gstc` | `git stash clear` | -| `gstd` | `git stash drop` | -| `gstl` | `git stash list` | -| `gstp` | `git stash pop` | -| `gsta` | On Git >= 2.13: `git stash push` | -| `gsta` | On Git < 2.13: `git stash save` | -| `gsts` | `git stash show --patch` | -| `gst` | `git status` | -| `gss` | `git status --short` | -| `gsb` | `git status --short -b` | -| `gsi` | `git submodule init` | -| `gsu` | `git submodule update` | -| `gsd` | `git svn dcommit` | -| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | -| `gsr` | `git svn rebase` | -| `gsw` | `git switch` | -| `gswc` | `git switch -c` | -| `gswd` | `git switch $(git_develop_branch)` | -| `gswm` | `git switch $(git_main_branch)` | -| `gta` | `git tag --annotate` | -| `gts` | `git tag -s` | -| `gtv` | `git tag \| sort -V` | -| `gignore` | `git update-index --assume-unchanged` | -| `gunignore` | `git update-index --no-assume-unchanged` | -| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | -| `gwt` | `git worktree` | -| `gwtls` | `git worktree list` | -| `gwtmv` | `git worktree move` | -| `gwtrm` | `git worktree remove` | -| `gk` | `gitk --all --branches &!` | -| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | -| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | +| Alias | Command | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | +| `ggpnp` | `ggl && ggp` | +| `ggpur` | `ggu` | +| `g` | `git` | +| `ga` | `git add` | +| `gaa` | `git add --all` | +| `gapa` | `git add --patch` | +| `gau` | `git add --update` | +| `gav` | `git add --verbose` | +| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | +| `gam` | `git am` | +| `gama` | `git am --abort` | +| `gamc` | `git am --continue` | +| `gamscp` | `git am --show-current-patch` | +| `gams` | `git am --skip` | +| `gap` | `git apply` | +| `gapt` | `git apply --3way` | +| `gbs` | `git bisect` | +| `gbsb` | `git bisect bad` | +| `gbsg` | `git bisect good` | +| `gbsn` | `git bisect new` | +| `gbso` | `git bisect old` | +| `gbsr` | `git bisect reset` | +| `gbss` | `git bisect start` | +| `gbl` | `git blame -w` | +| `gb` | `git branch` | +| `gba` | `git branch --all` | +| `gbd` | `git branch --delete` | +| `gbD` | `git branch --delete --force` | +| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | +| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbm` | `git branch --move` | +| `gbnm` | `git branch --no-merged` | +| `gbr` | `git branch --remote` | +| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | +| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | +| `gco` | `git checkout` | +| `gcor` | `git checkout --recurse-submodules` | +| `gcb` | `git checkout -b` | +| `gcd` | `git checkout $(git_develop_branch)` | +| `gcm` | `git checkout $(git_main_branch)` | +| `gcp` | `git cherry-pick` | +| `gcpa` | `git cherry-pick --abort` | +| `gcpc` | `git cherry-pick --continue` | +| `gclean` | `git clean --interactive -d` | +| `gcl` | `git clone --recurse-submodules` | +| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | +| `gcam` | `git commit --all --message` | +| `gcas` | `git commit --all --signoff` | +| `gcasm` | `git commit --all --signoff --message` | +| `gcmsg` | `git commit --message` | +| `gcsm` | `git commit --signoff --message` | +| `gc` | `git commit --verbose` | +| `gca` | `git commit --verbose --all` | +| `gca!` | `git commit --verbose --all --amend` | +| `gcan!` | `git commit --verbose --all --no-edit --amend` | +| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gc!` | `git commit --verbose --amend` | +| `gcn!` | `git commit --verbose --no-edit --amend` | +| `gcs` | `git commit -S` | +| `gcss` | `git commit -S -s` | +| `gcssm` | `git commit -S -s -m` | +| `gcf` | `git config --list` | +| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | +| `gd` | `git diff` | +| `gdca` | `git diff --cached` | +| `gdcw` | `git diff --cached --word-diff` | +| `gds` | `git diff --staged` | +| `gdw` | `git diff --word-diff` | +| `gdv` | `git diff -w "$@" \| view -` | +| `gdup` | `git diff @{upstream}` | +| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | +| `gdt` | `git diff-tree --no-commit-id --name-only -r` | +| `gf` | `git fetch` | +| `gfa` | `git fetch --all --prune` | +| `gfo` | `git fetch origin` | +| `gg` | `git gui citool` | +| `gga` | `git gui citool --amend` | +| `ghh` | `git help` | +| `glgg` | `git log --graph` | +| `glgga` | `git log --graph --decorate --all` | +| `glgm` | `git log --graph --max-count=10` | +| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | +| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | +| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | +| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | +| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | +| `glo` | `git log --oneline --decorate` | +| `glog` | `git log --oneline --decorate --graph` | +| `gloga` | `git log --oneline --decorate --graph --all` | +| `glp` | `git log --pretty=` | +| `glg` | `git log --stat` | +| `glgp` | `git log --stat --patch` | +| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | +| `gfg` | `git ls-files \| grep` | +| `gm` | `git merge` | +| `gma` | `git merge --abort` | +| `gms` | `git merge --squash` | +| `gmom` | `git merge origin/$(git_main_branch)` | +| `gmum` | `git merge upstream/$(git_main_branch)` | +| `gmtl` | `git mergetool --no-prompt` | +| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | +| `gl` | `git pull` | +| `gpr` | `git pull --rebase` | +| `gprv` | `git pull --rebase -v` | +| `gpra` | `git pull --rebase --autostash` | +| `gprav` | `git pull --rebase --autostash -v` | +| `gprom` | `git pull --rebase origin $(git_main_branch)` | +| `gpromi` | `git pull --rebase=interactive origin $(git_main_branch)` | +| `ggpull` | `git pull origin "$(git_current_branch)"` | +| `ggl` | `git pull origin $(current_branch)` | +| `gluc` | `git pull upstream $(git_current_branch)` | +| `glum` | `git pull upstream $(git_main_branch)` | +| `gp` | `git push` | +| `gpd` | `git push --dry-run` | +| `gpf!` | `git push --force` | +| `ggf` | `git push --force origin $(current_branch)` | +| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | +| `gpf` | On Git < 2.30: `git push --force-with-lease` | +| `ggfl` | `git push --force-with-lease origin $(current_branch)` | +| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | +| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | +| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | +| `gpv` | `git push --verbose` | +| `gpoat` | `git push origin --all && git push origin --tags` | +| `gpod` | `git push origin --delete` | +| `ggpush` | `git push origin "$(git_current_branch)"` | +| `ggp` | `git push origin $(current_branch)` | +| `gpu` | `git push upstream` | +| `grb` | `git rebase` | +| `grba` | `git rebase --abort` | +| `grbc` | `git rebase --continue` | +| `grbi` | `git rebase --interactive` | +| `grbo` | `git rebase --onto` | +| `grbs` | `git rebase --skip` | +| `grbd` | `git rebase $(git_develop_branch)` | +| `grbm` | `git rebase $(git_main_branch)` | +| `grbom` | `git rebase origin/$(git_main_branch)` | +| `gr` | `git remote` | +| `grv` | `git remote --verbose` | +| `gra` | `git remote add` | +| `grrm` | `git remote remove` | +| `grmv` | `git remote rename` | +| `grset` | `git remote set-url` | +| `grup` | `git remote update` | +| `grh` | `git reset` | +| `gru` | `git reset --` | +| `grhh` | `git reset --hard` | +| `grhk` | `git reset --keep` | +| `grhs` | `git reset --soft` | +| `gpristine` | `git reset --hard && git clean -dffx` | +| `groh` | `git reset origin/$(git_current_branch) --hard` | +| `grs` | `git restore` | +| `grss` | `git restore --source` | +| `grst` | `git restore --staged` | +| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | +| `grev` | `git revert` | +| `grm` | `git rm` | +| `grmc` | `git rm --cached` | +| `gcount` | `git shortlog --summary -n` | +| `gsh` | `git show` | +| `gsps` | `git show --pretty=short --show-signature` | +| `gstall` | `git stash --all` | +| `gstu` | `git stash --include-untracked` | +| `gstaa` | `git stash apply` | +| `gstc` | `git stash clear` | +| `gstd` | `git stash drop` | +| `gstl` | `git stash list` | +| `gstp` | `git stash pop` | +| `gsta` | On Git >= 2.13: `git stash push` | +| `gsta` | On Git < 2.13: `git stash save` | +| `gsts` | `git stash show --patch` | +| `gst` | `git status` | +| `gss` | `git status --short` | +| `gsb` | `git status --short -b` | +| `gsi` | `git submodule init` | +| `gsu` | `git submodule update` | +| `gsd` | `git svn dcommit` | +| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | +| `gsr` | `git svn rebase` | +| `gsw` | `git switch` | +| `gswc` | `git switch -c` | +| `gswd` | `git switch $(git_develop_branch)` | +| `gswm` | `git switch $(git_main_branch)` | +| `gta` | `git tag --annotate` | +| `gts` | `git tag -s` | +| `gtv` | `git tag \| sort -V` | +| `gignore` | `git update-index --assume-unchanged` | +| `gunignore` | `git update-index --no-assume-unchanged` | +| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | +| `gwt` | `git worktree` | +| `gwtls` | `git worktree list` | +| `gwtmv` | `git worktree move` | +| `gwtrm` | `git worktree remove` | +| `gk` | `gitk --all --branches &!` | +| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | +| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | ### Main branch preference @@ -224,19 +222,25 @@ branch exists. We do this via the function `git_main_branch`. These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. -| Alias | Command | Modification | -| :------- | :----------------------------------------------------- | :-------------------------------------------------------- | -| `gap` | `git add --patch` | New alias: `gapa`. | -| `gcl` | `git config --list` | New alias: `gcf`. | -| `gdc` | `git diff --cached` | New alias: `gdca`. | -| `gdt` | `git difftool` | No replacement. | -| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | -| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | -| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | -| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | -| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | -| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | -| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | +| Alias | Command | Modification | +| :------- | :-------------------------------------------------------- | :-------------------------------------------------------- | +| `gap` | `git add --patch` | New alias: `gapa`. | +| `gcl` | `git config --list` | New alias: `gcf`. | +| `gdc` | `git diff --cached` | New alias: `gdca`. | +| `gdt` | `git difftool` | No replacement. | +| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | +| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | +| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | +| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | +| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | +| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | +| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | +| `gup` | `git pull --rebase` | now alias `gpr` | +| `gupv` | `git pull --rebase -v` | now alias `gprv` | +| `gupa` | `git pull --rebase --autostash` | now alias `gpra` | +| `gupav` | `git pull --rebase --autostash -v` | now alias `gprav` | +| `gupom` | `git pull --rebase origin $(git_main_branch)` | now alias `gprom` | +| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | now alias `gpromi` | ## Functions @@ -250,7 +254,7 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | | `grename ` | Renames branch `` to ``, including on the origin remote. | -| `gbda` | Deletes all merged branches | +| `gbda` | Deletes all merged branches | | `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | ### Work in Progress (WIP) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 48937cb83778c..5ec2bbe2bb590 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -246,12 +246,12 @@ alias gmom='git merge origin/$(git_main_branch)' alias gmum='git merge upstream/$(git_main_branch)' alias gmtl='git mergetool --no-prompt' alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' + alias gl='git pull' alias gpr='git pull --rebase' -alias gup='git pull --rebase' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash --verbose' -alias gupv='git pull --rebase --verbose' +alias gprv='git pull --rebase -v' +alias gpra='git pull --rebase --autostash' +alias gprav='git pull --rebase --autostash -v' function ggu() { [[ "$#" != 1 ]] && local b="$(git_current_branch)" @@ -259,8 +259,8 @@ function ggu() { } compdef _git ggu=git-checkout -alias gupom='git pull --rebase origin $(git_main_branch)' -alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' +alias gprom='git pull --rebase origin $(git_main_branch)' +alias gpromi='git pull --rebase=interactive origin $(git_main_branch)' alias ggpull='git pull origin "$(git_current_branch)"' function ggl() { @@ -388,3 +388,20 @@ alias gk='\gitk --all --branches &!' alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' unset git_version + +# Logic for adding warnings on deprecated aliases +local old_alias new_alias +for old_alias new_alias ( + # TODO(2023-10-19): remove deprecated `git pull --rebase` aliases + gup gpr + gupv gprv + gupa gpra + gupav gprav + gupom gprom + gupomi gpromi +); do + aliases[$old_alias]=" + print -Pu2 \"%F{yellow}[oh-my-zsh] '%F{red}${old_alias}%F{yellow}' is a deprecated alias, using '%F{green}${new_alias}%F{yellow}' instead.%f\" + $new_alias" +done +unset old_alias new_alias From f79647dba5df47cd87917bcf527c5825be6511dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 22:05:03 +0200 Subject: [PATCH 079/212] fix(git): fix check in `gbds` function --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5ec2bbe2bb590..eef538b75642e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -141,7 +141,7 @@ function gbds() { git for-each-ref refs/heads/ "--format=%(refname:short)" | \ while read branch; do local merge_base=$(git merge-base $default_branch $branch) - if [[ '-*' == $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) ]]; then + if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]]; then git branch -D $branch fi done From ff6dac56a256e376a10b19a4948ada7df4509c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 23:04:08 +0200 Subject: [PATCH 080/212] fix(git): fix smart cd to cloned directory in `gccd` function --- plugins/git/git.plugin.zsh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index eef538b75642e..6ea1d1177c660 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -166,8 +166,15 @@ alias gclean='git clean --interactive -d' alias gcl='git clone --recurse-submodules' function gccd() { - command git clone --recurse-submodules "$@" - [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" + # get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS + local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" + + # clone repository and exit if it fails + command git clone --recurse-submodules "$@" || return + + # if last arg passed was a directory, that's where the repo was cloned + # otherwise parse the repo URI and use the last part as the directory + [[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}" } compdef _git gccd=git-clone From 8428442ff0e0114fab32b90443911b11a4b7f5df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 19 Oct 2023 23:24:55 +0200 Subject: [PATCH 081/212] fix(termsupport): add workaround for directory tracking issues in Konsole Fixes #11683 Related: 50c6786 --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index a800e651f5b7d..d170ffcbfb150 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -151,7 +151,7 @@ function omz_termsupport_cwd { URL_PATH="$(omz_urlencode -P $PWD)" || return 1 # Konsole errors if the HOST is provided - [[ -z "$KONSOLE_VERSION" ]] || URL_HOST="" + [[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST="" # common control sequence (OSC 7) to set current host and path printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" From 465253396df1865d3c73b1b3cff243798960ca3f Mon Sep 17 00:00:00 2001 From: Amir Hosseini <19665344+itsamirhn@users.noreply.github.com> Date: Sun, 22 Oct 2023 12:00:25 +0330 Subject: [PATCH 082/212] fix(direnv): use `hook` instead of `export` (#12000) --- plugins/direnv/direnv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/direnv/direnv.plugin.zsh b/plugins/direnv/direnv.plugin.zsh index 5e32c4c23f377..6f8debb62d50d 100644 --- a/plugins/direnv/direnv.plugin.zsh +++ b/plugins/direnv/direnv.plugin.zsh @@ -3,7 +3,7 @@ command -v direnv &>/dev/null || return _direnv_hook() { trap -- '' SIGINT; - eval "$(direnv export zsh)"; + eval "$(direnv hook zsh)"; trap - SIGINT; } typeset -ag precmd_functions; From 1868c15ec6b13c2da20375780f1e8b8f61458be5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 23 Oct 2023 13:24:35 +0200 Subject: [PATCH 083/212] chore: remove mentions of huntr.dev huntr.dev has pivoted to ML/AI-only vulnerability reporting, and we are now already using GitHub's private vulnerability reports. --- README.md | 1 - SECURITY.md | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 308d117e109a5..4999868790671 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,6 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi [![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?label=%40ohmyzsh&domain=https%3A%2F%2Fmstdn.social&logo=mastodon&style=flat)](https://mstdn.social/@ohmyzsh) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) -[![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh)
Table of Contents diff --git a/SECURITY.md b/SECURITY.md index 7e5c8eed07905..ae7458ee20459 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -17,8 +17,7 @@ In the near future we will introduce versioning, so expect this section to chang **Do not submit an issue or pull request**: this might reveal the vulnerability. -Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh). +Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh), +or using the link to [privately report a vulnerability with GitHub](https://github.com/ohmyzsh/ohmyzsh/security/advisories/new). We will deal with the vulnerability privately and submit a patch as soon as possible. - -You can also submit your vulnerability report to [huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) and see if you can get a bounty reward. From b7904ae54867cd9e64dfd3c1f952d72b5cfe17be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=B6=E9=B3=96=E5=A4=A7=E5=B8=9D?= Date: Tue, 24 Oct 2023 19:33:04 +0800 Subject: [PATCH 084/212] fix(firewalld): remove ` (default)` from the end of zone string (#11998) --- plugins/firewalld/firewalld.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/firewalld/firewalld.plugin.zsh b/plugins/firewalld/firewalld.plugin.zsh index 5b1090636c7a3..b2c0f64be628f 100644 --- a/plugins/firewalld/firewalld.plugin.zsh +++ b/plugins/firewalld/firewalld.plugin.zsh @@ -9,7 +9,7 @@ function fwl () { zones=("${(@f)$(sudo firewall-cmd --get-active-zones | grep -v 'interfaces\|sources')}") for i in $zones; do - sudo firewall-cmd --zone $i --list-all + sudo firewall-cmd --zone ${i/ \(default\)} --list-all done echo 'Direct Rules:' From 5c22c5812ec8b980d223b8252edc7759dd354014 Mon Sep 17 00:00:00 2001 From: alps2006 Date: Tue, 24 Oct 2023 20:00:26 +0800 Subject: [PATCH 085/212] feat(vi-mode): allow replacing on visual mode (#12006) --- plugins/vi-mode/vi-mode.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d1493e02f984b..8fefaf86c6756 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -154,7 +154,8 @@ wrap_clipboard_widgets copy \ vi-delete vi-delete-char vi-backward-delete-char wrap_clipboard_widgets paste \ - vi-put-{before,after} + vi-put-{before,after} \ + put-replace-selection unfunction wrap_clipboard_widgets From 048455ccefdc67c4f137b8f7886769c55c2e5417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 25 Oct 2023 19:47:10 +0200 Subject: [PATCH 086/212] fix(git-commit): fix revert alias conflict (#12007) Fixes #12007 --- plugins/git-commit/README.md | 14 ++++++++++---- plugins/git-commit/git-commit.plugin.zsh | 24 ++++++++++++++---------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md index dc10d8ad5cebd..91cc73b44f8db 100644 --- a/plugins/git-commit/README.md +++ b/plugins/git-commit/README.md @@ -10,7 +10,7 @@ plugins=(... git-commit) ## Syntax -```zshrc +```zsh git [(-s, --scope) ""] "" ``` @@ -26,11 +26,17 @@ Where `type` is one of the following: - `fix` - `perf` - `refactor` -- `revert` +- `rev` - `style` - `test` +> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. +> It will still generate a commit message in the format `revert: ` + ## Examples -`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"` -`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"` +| Git alias | Command | +| --------------------------------------------- | ---------------------------------------------------- | +| `git style "remove trailing whitespace"` | `git commit -m "style: remove trailing whitespace"` | +| `git fix -s "router" "correct redirect link"` | `git commit -m "fix(router): correct redirect link"` | +| `git rev -s "api" "rollback v2"` | `git commit -m "revert(api): rollback v2"` | diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 4ad4c01770a80..72cecb1d62d30 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,9 +1,3 @@ -function _git_commit_register { - if ! git config --global --get-all alias.$1 >/dev/null 2>&1; then - git config --global alias.$1 '!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$1'(${scope}): ${@}"; else git commit -m "'$1': ${@}"; fi }; a' - fi -} - local -a _git_commit_aliases _git_commit_aliases=( 'build' @@ -19,9 +13,19 @@ _git_commit_aliases=( 'test' ) -for _alias in "${_git_commit_aliases[@]}"; do - _git_commit_register $_alias +local alias type +for type in "${_git_commit_aliases[@]}"; do + # an alias can't be named "revert" because the git command takes precedence + # https://stackoverflow.com/a/3538791 + case "$type" in + revert) alias=rev ;; + *) alias=$type ;; + esac + + local func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' + if ! git config --global --get-all alias.${alias} >/dev/null 2>&1; then + git config --global alias.${alias} "$func" + fi done -unfunction _git_commit_register -unset _alias +unset _git_commit_aliases alias type func From 7348d12f8e5cd755037aa6f5d347eab0ac2efb0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 28 Oct 2023 10:24:24 +0200 Subject: [PATCH 087/212] ci(vercel): add Content-Disposition header on installer This allows doing something like curl -O https://install.ohmyz.sh and have the `install.sh` file automatically saved to its right name. --- .github/workflows/installer/vercel.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/installer/vercel.json b/.github/workflows/installer/vercel.json index 8c5aec5e096c3..524dc3c0f280f 100644 --- a/.github/workflows/installer/vercel.json +++ b/.github/workflows/installer/vercel.json @@ -2,7 +2,16 @@ "headers": [ { "source": "/((?!favicon.ico).*)", - "headers": [{ "key": "Content-Type", "value": "text/plain" }] + "headers": [ + { + "key": "Content-Type", + "value": "text/plain" + }, + { + "key": "Content-Disposition", + "value": "inline; filename=\"install.sh\"" + } + ] } ], "rewrites": [ From 7733e3ab57ee3f666cf6f3e699d03b69aca2d373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 28 Oct 2023 10:29:54 +0200 Subject: [PATCH 088/212] ci: fix path filtering in installer workflow See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-including-and-excluding-paths --- .github/workflows/installer.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index 4a25c8079ef36..a70c483d1ba63 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -3,9 +3,9 @@ on: workflow_dispatch: {} push: paths: - - tools/install.sh - - .github/workflows/installer - - .github/workflows/installer.yml + - 'tools/install.sh' + - '.github/workflows/installer/**' + - '.github/workflows/installer.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} From cb86d378f287f1731cc6ad907f6248e35b52dc25 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Sat, 28 Oct 2023 04:37:50 -0400 Subject: [PATCH 089/212] feat(git-auto-fetch): fetch also submodules (#12001) --- plugins/git-auto-fetch/git-auto-fetch.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh index 2df34bb7b581c..f8dfec75998e1 100644 --- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh @@ -29,7 +29,7 @@ function git-fetch-all { date -R &>! "$gitdir/FETCH_LOG" GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \ GIT_TERMINAL_PROMPT=0 \ - command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG" + command git fetch --all --recurse-submodules=yes 2>/dev/null &>> "$gitdir/FETCH_LOG" ) &| } From 38c01a235fef0d990be5ece0d62f94fd06b10571 Mon Sep 17 00:00:00 2001 From: Sarah Noor <88581241+sarah-noor-12232@users.noreply.github.com> Date: Sat, 28 Oct 2023 20:48:45 +0500 Subject: [PATCH 090/212] feat(npm): add alias for `npm run build` (#12012) Closes #12010 --- plugins/npm/README.md | 1 + plugins/npm/npm.plugin.zsh | 3 +++ 2 files changed, 4 insertions(+) diff --git a/plugins/npm/README.md b/plugins/npm/README.md index 420dd710a2304..7848a1290bca0 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -30,6 +30,7 @@ plugins=(... npm) | `npmi` | `npm info` | Run npm info | | `npmSe` | `npm search` | Run npm search | | `npmrd` | `npm run dev` | Run npm run dev | +| `npmrb` | `npm run build` | Run npm run build | ## `npm install` / `npm uninstall` toggle diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index 3cba18f6c8522..23377b0856b42 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -73,6 +73,9 @@ alias npmSe="npm search" # Run npm run dev alias npmrd="npm run dev" +# Run npm run build +alias npmrb="npm run build" + npm_toggle_install_uninstall() { # Look up to the previous 2 history commands local line From 632ed413a9ce62747ded83d7736491b081be4b49 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 1 Nov 2023 21:24:28 +0100 Subject: [PATCH 091/212] fix(wd): use `(( ))` instead of `[[ ]]` zsh versions prior to 5.0.6 mark `[[ ]]` as invalid syntax Closes #12017 --- plugins/wd/wd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index e51cf906a780d..840e92d6159e9 100644 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -396,7 +396,7 @@ fi # disable extendedglob for the complete wd execution time setopt | grep -q extendedglob wd_extglob_is_set=$? -[[ $wd_extglob_is_set ]] && setopt noextendedglob +(( ! $wd_extglob_is_set )) && setopt noextendedglob # load warp points typeset -A points @@ -484,7 +484,7 @@ fi # if not, next time warp will pick up variables from this run # remember, there's no sub shell -[[ $wd_extglob_is_set ]] && setopt extendedglob +(( ! $wd_extglob_is_set )) && setopt extendedglob unset wd_extglob_is_set unset wd_warp From b6bb133f230847ed0b3f9f4e25f2ceb874ca6c91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 8 Nov 2023 08:42:34 +0100 Subject: [PATCH 092/212] fix(git): fix repository detection in `gccd` function (#12023) Fixes #12023 --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 6ea1d1177c660..2a824444b056d 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -166,6 +166,8 @@ alias gclean='git clean --interactive -d' alias gcl='git clone --recurse-submodules' function gccd() { + setopt localoptions extendedglob + # get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" From c8e600f39779c6d2ef75b40304b5391a541c41df Mon Sep 17 00:00:00 2001 From: Thomas Luzat Date: Wed, 15 Nov 2023 12:53:39 +0100 Subject: [PATCH 093/212] fix(direnv): initialize properly direnv Closes #12038 Closes #12039 Co-authored-by: Carlo Sala --- plugins/direnv/direnv.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/direnv/direnv.plugin.zsh b/plugins/direnv/direnv.plugin.zsh index 6f8debb62d50d..0a33194ddf315 100644 --- a/plugins/direnv/direnv.plugin.zsh +++ b/plugins/direnv/direnv.plugin.zsh @@ -3,14 +3,14 @@ command -v direnv &>/dev/null || return _direnv_hook() { trap -- '' SIGINT; - eval "$(direnv hook zsh)"; + eval "$(direnv export zsh)"; trap - SIGINT; } typeset -ag precmd_functions; -if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${precmd_functions[(r)_direnv_hook]+1}" ]]; then precmd_functions=( _direnv_hook ${precmd_functions[@]} ) fi typeset -ag chpwd_functions; -if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${chpwd_functions[(r)_direnv_hook]+1}" ]]; then chpwd_functions=( _direnv_hook ${chpwd_functions[@]} ) fi From 6165c257ae56921bf44bfa7488fd5bf179ea0e61 Mon Sep 17 00:00:00 2001 From: nexpspace <380097+nexpspace@users.noreply.github.com> Date: Mon, 20 Nov 2023 12:25:22 +0100 Subject: [PATCH 094/212] fix(grc): source grc.zsh on gentoo (#12050) Co-authored-by: mphi Co-authored-by: Carlo Sala --- plugins/grc/grc.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/grc/grc.plugin.zsh b/plugins/grc/grc.plugin.zsh index e036b8d8922e6..55ffc1a1e90f4 100644 --- a/plugins/grc/grc.plugin.zsh +++ b/plugins/grc/grc.plugin.zsh @@ -5,6 +5,7 @@ files=( /etc/grc.zsh # default /usr/local/etc/grc.zsh # homebrew darwin-x64 /opt/homebrew/etc/grc.zsh # homebrew darwin-arm64 + /usr/share/grc/grc.zsh # Gentoo Linux (app-misc/grc) ) # verify the file is readable and source it From e0213342d12808e916dd02f8ac28509e71dc3283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9E=C3=B3rhallur=20Sverrisson?= Date: Mon, 20 Nov 2023 11:27:54 +0000 Subject: [PATCH 095/212] feat(vi-mode): add option to disable clipboard (#12037) --- plugins/vi-mode/README.md | 2 ++ plugins/vi-mode/vi-mode.plugin.zsh | 24 +++++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 821c12adbc5b6..84ba301052b85 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -37,6 +37,8 @@ plugins=(... vi-mode) - `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode. See [Mode indicators](#mode-indicators) for details. +- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste + ## Mode indicators *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 8fefaf86c6756..5c104f7bb5d24 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -147,17 +147,19 @@ function wrap_clipboard_widgets() { done } -wrap_clipboard_widgets copy \ - vi-yank vi-yank-eol vi-yank-whole-line \ - vi-change vi-change-eol vi-change-whole-line \ - vi-kill-line vi-kill-eol vi-backward-kill-word \ - vi-delete vi-delete-char vi-backward-delete-char - -wrap_clipboard_widgets paste \ - vi-put-{before,after} \ - put-replace-selection - -unfunction wrap_clipboard_widgets +if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then + wrap_clipboard_widgets copy \ + vi-yank vi-yank-eol vi-yank-whole-line \ + vi-change vi-change-eol vi-change-whole-line \ + vi-kill-line vi-kill-eol vi-backward-kill-word \ + vi-delete vi-delete-char vi-backward-delete-char + + wrap_clipboard_widgets paste \ + vi-put-{before,after} \ + put-replace-selection + + unfunction wrap_clipboard_widgets +fi # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default if [[ -z "$MODE_INDICATOR" ]]; then From 22f9a8d3b8e3c229409579caff077ec90fbac9a3 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Mon, 20 Nov 2023 14:52:32 +0200 Subject: [PATCH 096/212] fix(juju): add `public-address` fallback to `jaddr` (#12046) --- plugins/juju/juju.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh index 0c60e35ceb7f9..a82ebaf84eb0b 100644 --- a/plugins/juju/juju.plugin.zsh +++ b/plugins/juju/juju.plugin.zsh @@ -98,7 +98,7 @@ jaddr() { elif [[ $# -eq 2 ]]; then # Get unit address juju status "$1/$2" --format=json \ - | jq -r ".applications.\"$1\".units.\"$1/$2\".address" + | jq -r ".applications.\"$1\".units.\"$1/$2\" | .address // .\"public-address\"" else echo "Invalid number of arguments." echo "Usage: jaddr []" From e6a1db213d66efdaec00469e58d4f9f3f2a78bd0 Mon Sep 17 00:00:00 2001 From: bretello Date: Mon, 20 Nov 2023 13:54:56 +0100 Subject: [PATCH 097/212] feat(bgnotify): add support to wayland (#12045) --- plugins/bgnotify/bgnotify.plugin.zsh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index ed2653aa8c749..9ad989c0bd00d 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -59,11 +59,14 @@ function bgnotify_formatted { fi } -# for macOS, output is "app ID, window ID" (com.googlecode.iterm2, 116) function bgnotify_appid { if (( ${+commands[osascript]} )); then + # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif (( ${+commands[xprop]} )); then + elif [[ -n $WAYLAND_DISPLAY && ${+commands[swaymsg]} && ${+commands[jq]} ]]; then # wayland+sway + # output is "app_id, container id" (Alacritty, 1694) + swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' + elif [[ -n $DISPLAY && ${+commands[xprop]} ]]; then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS @@ -71,7 +74,8 @@ function bgnotify_appid { } function bgnotify { - # $1: title, $2: message + local title="$1" + local message="$2" if (( ${+commands[terminal-notifier]} )); then # macOS local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then @@ -82,18 +86,22 @@ function bgnotify { fi if [[ -z "$term_id" ]]; then - terminal-notifier -message "$2" -title "$1" &>/dev/null + terminal-notifier -message "$message" -title "$title" &>/dev/null else - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" &>/dev/null + terminal-notifier -message "$message" -title "$title" -activate "$term_id" -sender "$term_id" &>/dev/null fi elif (( ${+commands[growlnotify]} )); then # macOS growl - growlnotify -m "$1" "$2" - elif (( ${+commands[notify-send]} )); then # GNOME - notify-send "$1" "$2" + growlnotify -m "$title" "$message" + elif (( ${+commands[notify-send]} )); then + if [[ -n $ALACRITTY_WINDOW_ID ]]; then + notify-send -i Alacritty "$title" "$message" + else + notify-send "$title" "$message" + fi elif (( ${+commands[kdialog]} )); then # KDE - kdialog --title "$1" --passivepopup "$2" 5 + kdialog --title "$title" --passivepopup "$message" 5 elif (( ${+commands[notifu]} )); then # cygwin - notifu /m "$2" /p "$1" + notifu /m "$message" /p "$title" fi } From 18073af622703a8aca28c630614d13d2f50d30fe Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 22 Nov 2023 15:22:36 +0100 Subject: [PATCH 098/212] fix(bgnotify): detect properly if `swaymsg` is installed Closes #12053 --- plugins/bgnotify/bgnotify.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 9ad989c0bd00d..493a20815c787 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -63,10 +63,10 @@ function bgnotify_appid { if (( ${+commands[osascript]} )); then # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif [[ -n $WAYLAND_DISPLAY && ${+commands[swaymsg]} && ${+commands[jq]} ]]; then # wayland+sway + elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway # output is "app_id, container id" (Alacritty, 1694) swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' - elif [[ -n $DISPLAY && ${+commands[xprop]} ]]; then + elif [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS From 44a5513fcb3f528afb056490908d216f926497e6 Mon Sep 17 00:00:00 2001 From: Saduff <11700507+Saduff@users.noreply.github.com> Date: Wed, 22 Nov 2023 10:44:21 -0700 Subject: [PATCH 099/212] fix(per-directory-history): print toggle message properly (#10872) --- plugins/per-directory-history/per-directory-history.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index acbd64757da16..cfc4535d3c07d 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -68,14 +68,14 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history _per_directory_history_is_global=false - print -n "\nusing local history" + zle -I + echo "using local history" else _per-directory-history-set-global-history _per_directory_history_is_global=true - print -n "\nusing global history" + zle -I + echo "using global history" fi - zle .push-line - zle .accept-line } autoload per-directory-history-toggle-history From 38e80e9f21ee981b5f616003c788dcbb9267466c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Thu, 23 Nov 2023 10:11:08 +0000 Subject: [PATCH 100/212] feat(bgnotify): add icon parameter (#12055) --- plugins/bgnotify/bgnotify.plugin.zsh | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 493a20815c787..a4a7b621be35b 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -52,10 +52,10 @@ function bgnotify_formatted { (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" - if [[ $1 -eq 0 ]]; then - bgnotify "#win (took $elapsed)" "$2" + if [[ $exit_status -eq 0 ]]; then + bgnotify "#win (took $elapsed)" "$cmd" else - bgnotify "#fail (took $elapsed)" "$2" + bgnotify "#fail (took $elapsed)" "$cmd" fi } @@ -66,7 +66,7 @@ function bgnotify_appid { elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway # output is "app_id, container id" (Alacritty, 1694) swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' - elif [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then + elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS @@ -76,6 +76,7 @@ function bgnotify_appid { function bgnotify { local title="$1" local message="$2" + local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS local term_id="${bgnotify_termid%%,*}" # remove window id if [[ -z "$term_id" ]]; then @@ -85,23 +86,15 @@ function bgnotify { esac fi - if [[ -z "$term_id" ]]; then - terminal-notifier -message "$message" -title "$title" &>/dev/null - else - terminal-notifier -message "$message" -title "$title" -activate "$term_id" -sender "$term_id" &>/dev/null - fi + terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" elif (( ${+commands[notify-send]} )); then - if [[ -n $ALACRITTY_WINDOW_ID ]]; then - notify-send -i Alacritty "$title" "$message" - else - notify-send "$title" "$message" - fi + notify-send "$title" "$message" ${=icon:+--icon "$icon"} elif (( ${+commands[kdialog]} )); then # KDE kdialog --title "$title" --passivepopup "$message" 5 elif (( ${+commands[notifu]} )); then # cygwin - notifu /m "$message" /p "$title" + notifu /m "$message" /p "$title" ${=icon:+/i "$icon"} fi } From 6c5586cb085d5cc6fb42b7304428654cc6bf5f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Thu, 23 Nov 2023 19:00:34 +0000 Subject: [PATCH 101/212] docs(bgnotify): match README with current features (#12057) --- plugins/bgnotify/README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 1d8fac54d03e7..6bbe3b3025d30 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -1,19 +1,19 @@ # bgnotify zsh plugin -cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux. +cross-platform background notifications for long running commands! Supports OSX and Linux. Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify) ----------------------------------- +--- -## How to use! +## How to use Just add bgnotify to your plugins list in your `.zshrc` - On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier) * `brew install terminal-notifier` (or `gem install terminal-notifier`) -- On ubuntu you're already all set! -- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package +- On Linux, make sure you have `notify-send` or `kdialog` installed. If you're using Ubuntu you should already be all set! +- On Windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package ## Screenshots @@ -36,19 +36,26 @@ Just add bgnotify to your plugins list in your `.zshrc` One can configure a few things: - `bgnotify_threshold` sets the notification threshold time (default 6 seconds) -- `function bgnotify_formatted` lets you change the notification +- `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon. Use these by adding a function definition before the your call to source. Example: -~~~ sh +```sh bgnotify_threshold=4 ## set your own notification threshold function bgnotify_formatted { ## $1=exit_status, $2=command, $3=elapsed_time - [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!" - bgnotify "$title -- after $3 s" "$2"; + + # Humanly readable elapsed time + local elapsed="$(( $3 % 60 ))s" + (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" + (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + + [ $1 -eq 0 ] && title="Holy Smokes Batman" || title="Holy Graf Zeppelin" + [ $1 -eq 0 ] && icon="$HOME/icons/success.png" || icon="$HOME/icons/fail.png" + bgnotify "$title - took ${elapsed}" "$2" "$icon" } plugins=(git bgnotify) ## add to plugins list source $ZSH/oh-my-zsh.sh ## existing source call -~~~ +``` From 76a1dfcf2b5365e966bbc75749d9ced985c2d674 Mon Sep 17 00:00:00 2001 From: Mamad Kajbaf Date: Thu, 23 Nov 2023 11:03:59 -0800 Subject: [PATCH 102/212] feat(docker-compose): add `dclF` alias (#10603) --- plugins/docker-compose/README.md | 41 ++++++++++--------- .../docker-compose/docker-compose.plugin.zsh | 1 + 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/plugins/docker-compose/README.md b/plugins/docker-compose/README.md index bbcff2e0c370a..66d4e05216238 100644 --- a/plugins/docker-compose/README.md +++ b/plugins/docker-compose/README.md @@ -11,23 +11,24 @@ plugins=(... docker-compose) ## Aliases -| Alias | Command | Description | -|-----------|--------------------------------|----------------------------------------------------------------------------------| -| dco | `docker-compose` | Docker-compose main command | -| dcb | `docker-compose build` | Build containers | -| dce | `docker-compose exec` | Execute command inside a container | -| dcps | `docker-compose ps` | List containers | -| dcrestart | `docker-compose restart` | Restart container | -| dcrm | `docker-compose rm` | Remove container | -| dcr | `docker-compose run` | Run a command in container | -| dcstop | `docker-compose stop` | Stop a container | -| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | -| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | -| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | -| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | -| dcdn | `docker-compose down` | Stop and remove containers | -| dcl | `docker-compose logs` | Show logs of container | -| dclf | `docker-compose logs -f` | Show logs and follow output | -| dcpull | `docker-compose pull` | Pull image of a service | -| dcstart | `docker-compose start` | Start a container | -| dck | `docker-compose kill` | Kills containers | +| Alias | Command | Description | +|-----------|----------------------------------|----------------------------------------------------------------------------------| +| dco | `docker-compose` | Docker-compose main command | +| dcb | `docker-compose build` | Build containers | +| dce | `docker-compose exec` | Execute command inside a container | +| dcps | `docker-compose ps` | List containers | +| dcrestart | `docker-compose restart` | Restart container | +| dcrm | `docker-compose rm` | Remove container | +| dcr | `docker-compose run` | Run a command in container | +| dcstop | `docker-compose stop` | Stop a container | +| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | +| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | +| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | +| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | +| dcdn | `docker-compose down` | Stop and remove containers | +| dcl | `docker-compose logs` | Show logs of container | +| dclf | `docker-compose logs -f` | Show logs and follow output | +| dclF | `docker-compose logs -f --tail0` | Just follow recent logs | +| dcpull | `docker-compose pull` | Pull image of a service | +| dcstart | `docker-compose start` | Start a container | +| dck | `docker-compose kill` | Kills containers | diff --git a/plugins/docker-compose/docker-compose.plugin.zsh b/plugins/docker-compose/docker-compose.plugin.zsh index 7a8bf4a03525a..d1823f5353378 100644 --- a/plugins/docker-compose/docker-compose.plugin.zsh +++ b/plugins/docker-compose/docker-compose.plugin.zsh @@ -16,6 +16,7 @@ alias dcupdb="$dccmd up -d --build" alias dcdn="$dccmd down" alias dcl="$dccmd logs" alias dclf="$dccmd logs -f" +alias dclF="$dccmd logs -f --tail 0" alias dcpull="$dccmd pull" alias dcstart="$dccmd start" alias dck="$dccmd kill" From ddf673b36dd43e5ca60189a117c25ad6f55457e7 Mon Sep 17 00:00:00 2001 From: MikuHatsune39 <32179075+MikuHatsune39@users.noreply.github.com> Date: Fri, 24 Nov 2023 00:35:46 -0800 Subject: [PATCH 103/212] fix(python): set `py` alias if `py` is not installed (#12059) Co-authored-by: Carlo Sala --- plugins/python/README.md | 2 +- plugins/python/python.plugin.zsh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python/README.md b/plugins/python/README.md index 97c1a34ee66e9..7bf1b34acc3ab 100644 --- a/plugins/python/README.md +++ b/plugins/python/README.md @@ -12,7 +12,7 @@ plugins=(... python) | Command | Description | | ---------------- | -------------------------------------------------------------------------------------- | -| `py` | Runs `python3` | +| `py` | Runs `python3`. Only set if `py` is not installed. | | `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv | | `pyfind` | Finds .py files recursively in the current directory | | `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 2fbb59577409c..3d7ca55c94ae3 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -1,5 +1,5 @@ -# python command -alias py='python3' +# set python command if 'py' not installed +builtin which py > /dev/null || alias py='python3' # Find python file alias pyfind='find . -name "*.py"' From e11d81303753b0fefbc50ce10ec4612c7ff33e84 Mon Sep 17 00:00:00 2001 From: Yuxuan Lu Date: Fri, 24 Nov 2023 03:45:32 -0500 Subject: [PATCH 104/212] fix(robbyrussell): line wrapping for some systems (#12058) --- themes/robbyrussell.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme index 173e6d5796b44..cfecfc892a26d 100644 --- a/themes/robbyrussell.zsh-theme +++ b/themes/robbyrussell.zsh-theme @@ -1,7 +1,7 @@ -PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ ) %{$fg[cyan]%}%c%{$reset_color%}" +PROMPT="%(?:%{$fg_bold[green]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} ) %{$fg[cyan]%}%c%{$reset_color%}" PROMPT+=' $(git_prompt_info)' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%1{✗%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" From 7e3fdf33ec53821e574b8d6df43bec7264c507ee Mon Sep 17 00:00:00 2001 From: Bernard Grymonpon Date: Mon, 27 Nov 2023 11:07:51 +0100 Subject: [PATCH 105/212] fix(misc): only set PAGER if `less` or `more` are available (#12060) --- lib/misc.zsh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 132f335510d46..ff201771332e9 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -19,8 +19,13 @@ setopt multios # enable redirect to multiple streams: echo >file1 > setopt long_list_jobs # show long list format job notifications setopt interactivecomments # recognize comments -env_default 'PAGER' 'less' -env_default 'LESS' '-R' +# define pager dependant on what is available (less or more) +if (( ${+commands[less]} )); then + env_default 'PAGER' 'less' + env_default 'LESS' '-R' +elif (( ${+commands[more]} )); then + env_default 'PAGER' 'more' +fi ## super user alias alias _='sudo ' From 418046e9583f635b0303e4b8cf31c356b175cec3 Mon Sep 17 00:00:00 2001 From: cohml <62400541+cohml@users.noreply.github.com> Date: Wed, 29 Nov 2023 04:15:32 -0500 Subject: [PATCH 106/212] feat(per-directory-history): add option to reduce verbosity (#12069) Co-authored-by: Chris Hamill --- plugins/per-directory-history/README.md | 2 ++ .../per-directory-history/per-directory-history.zsh | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugins/per-directory-history/README.md b/plugins/per-directory-history/README.md index 69854aa389108..11150b05909f5 100644 --- a/plugins/per-directory-history/README.md +++ b/plugins/per-directory-history/README.md @@ -34,6 +34,8 @@ toggle set the `PER_DIRECTORY_HISTORY_TOGGLE` environment variable. and global histories. * `PER_DIRECTORY_HISTORY_TOGGLE` is the key binding used to run the toggle-history function above (default `^G`) +* `PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE` is a variable which toggles whether + the current mode is printed to the screen following a mode change (default `true`) ## History diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index cfc4535d3c07d..b33e0b5dd4e0e 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -59,6 +59,7 @@ [[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" [[ -z $HISTORY_START_WITH_GLOBAL ]] && HISTORY_START_WITH_GLOBAL=false [[ -z $PER_DIRECTORY_HISTORY_TOGGLE ]] && PER_DIRECTORY_HISTORY_TOGGLE='^G' +[[ -z $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE ]] && PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE=true #------------------------------------------------------------------------------- # toggle global/directory history used for searching - ctrl-G by default @@ -68,13 +69,15 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history _per_directory_history_is_global=false - zle -I - echo "using local history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using local history" + fi else _per-directory-history-set-global-history _per_directory_history_is_global=true - zle -I - echo "using global history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using global history" + fi fi } From 7a30bcae40dfd19153ad6fc4abd52dfa805dbd03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 30 Nov 2023 14:15:21 +0100 Subject: [PATCH 107/212] ci(installer): fix token passing and only run on main repo --- .github/workflows/installer.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index a70c483d1ba63..cad5d445b9c85 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -17,6 +17,7 @@ permissions: jobs: test: name: Test installer + if: github.repository == 'ohmyzsh/ohmyzsh' runs-on: ${{ matrix.os }} strategy: matrix: @@ -48,7 +49,8 @@ jobs: env: VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} run: | cp tools/install.sh .github/workflows/installer/install.sh cd .github/workflows/installer - vc deploy --prod -t ${{ secrets.VERCEL_TOKEN }} + vc deploy --prod -t "$VERCEL_TOKEN" From f9993d0c687c0fb50490aa530adee57ea4c70c12 Mon Sep 17 00:00:00 2001 From: "Olivia (Zoe)" Date: Fri, 1 Dec 2023 16:06:50 +0100 Subject: [PATCH 108/212] docs: document the off-GitHub installation URL (#12079) --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 4999868790671..98743432d5f0c 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,14 @@ Oh My Zsh is installed by running one of the following commands in your terminal | **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | | **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | +Alternatively, the installer is also mirrored outside GitHub. Using this URL instead may be required if you're in a country like India or China, that blocks `raw.githubusercontent.com`: + +| Method | Command | +| :-------- | :------------------------------------------------------------------------------------------------ | +| **curl** | `sh -c "$(curl -fsSL https://install.ohmyz.sh/)"` | +| **wget** | `sh -c "$(wget -O- https://install.ohmyz.sh/)"` | +| **fetch** | `sh -c "$(fetch -o - https://install.ohmyz.sh/)"` | + _Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._ #### Manual Inspection @@ -101,6 +109,8 @@ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh sh install.sh ``` +If the above URL times out or otherwise fails, you may have to substitute the URL for `https://install.ohmyz.sh` to be able to get the script. + ## Using Oh My Zsh ### Plugins @@ -220,6 +230,8 @@ the default shell, and it also won't run `zsh` when the installation has finishe sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ``` +If you're in China, India, or another country that blocks `raw.githubusercontent.com`, you may have to substitute the URL for `https://install.ohmyz.sh` for it to install. + #### Installing From A Forked Repository The install script also accepts these variables to allow installation of a different repository: From 9b5b389c22396552086480474c108380817a44a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sj=C3=B6blom?= Date: Sat, 25 Nov 2023 11:27:59 +0100 Subject: [PATCH 109/212] refactor(bgnotify): get Sway AppId with `awk` as fallback (#12062) Closes #12062 --- plugins/bgnotify/bgnotify.plugin.zsh | 58 ++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 11 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index a4a7b621be35b..4499d816cd454 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -63,9 +63,9 @@ function bgnotify_appid { if (( ${+commands[osascript]} )); then # output is "app ID, window ID" (com.googlecode.iterm2, 116) osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )) && (( ${+commands[jq]} )); then # wayland+sway - # output is "app_id, container id" (Alacritty, 1694) - swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(", ")' + elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway + local app_id=$(find_sway_appid) + [[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else @@ -73,19 +73,55 @@ function bgnotify_appid { fi } + +function find_sway_appid { + # output is "app_id,container_id", for example "Alacritty,1694" + # see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json + if (( ${+commands[jq]} )); then + swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(",")' + else + swaymsg -t get_tree | awk ' + BEGIN { Id = ""; Appid = ""; FocusNesting = -1; Nesting = 0 } + { + # Enter a block + if ($0 ~ /.*{$/) Nesting++ + + # Exit a block. If Nesting is now less than FocusNesting, we have the data we are looking for + if ($0 ~ /^[[:blank:]]*}.*/) { Nesting--; if (FocusNesting > 0 && Nesting < FocusNesting) exit 0 } + + # Save the Id, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"id": [0-9]*,?$/) { sub(/^[[:blank:]]*"id": /, ""); sub(/,$/, ""); Id = $0 } + + # Save the Appid, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"app_id": ".*",?$/) { sub(/^[[:blank:]]*"app_id": "/, ""); sub(/",$/, ""); Appid = $0 } + + # Window is focused, this nesting block contains the Id and Appid we want! + if ($0 ~ /^[[:blank:]]*"focused": true,?$/) { FocusNesting = Nesting } + } + END { + if (Appid != "" && Id != "" && FocusNesting != -1) print Appid "," Id + else print "" + }' + fi +} + +function find_term_id { + local term_id="${bgnotify_termid%%,*}" # remove window id + if [[ -z "$term_id" ]]; then + case "$TERM_PROGRAM" in + iTerm.app) term_id='com.googlecode.iterm2' ;; + Apple_Terminal) term_id='com.apple.terminal' ;; + esac + fi + echo "$term_id" +} + function bgnotify { local title="$1" local message="$2" local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS - local term_id="${bgnotify_termid%%,*}" # remove window id - if [[ -z "$term_id" ]]; then - case "$TERM_PROGRAM" in - iTerm.app) term_id='com.googlecode.iterm2' ;; - Apple_Terminal) term_id='com.apple.terminal' ;; - esac - fi - + local term_id=$(find_term_id) terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" From b6afbbea3a6f41e4016e967da57b33872aff9944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Fri, 1 Dec 2023 17:03:15 +0100 Subject: [PATCH 110/212] fix(installer): fix path logic and improve clarity on ZDOTDIR use --- tools/install.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index fcfbcf778f68e..508fc2f7739fa 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -63,7 +63,9 @@ zdot="${ZDOTDIR:-$HOME}" # Default value for $ZSH # a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh # b) otherwise, $HOME/.oh-my-zsh -[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" +if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then + ZSH="${ZSH:-$ZDOTDIR/ohmyzsh}" +fi ZSH="${ZSH:-$HOME/.oh-my-zsh}" # Default settings From 0a9d82780e20e24b6fafc5b2aaefedb0957986c9 Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Fri, 1 Dec 2023 17:09:48 +0100 Subject: [PATCH 111/212] feat(bgnotify): add option to disable terminal bell (#12077) --- plugins/bgnotify/README.md | 2 ++ plugins/bgnotify/bgnotify.plugin.zsh | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 6bbe3b3025d30..33d529f1588b3 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -35,12 +35,14 @@ Just add bgnotify to your plugins list in your `.zshrc` One can configure a few things: +- `bgnotify_bell` enabled or disables the terminal bell (default true) - `bgnotify_threshold` sets the notification threshold time (default 6 seconds) - `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon. Use these by adding a function definition before the your call to source. Example: ```sh +bgnotify_bell=false ## disable terminal bell bgnotify_threshold=4 ## set your own notification threshold function bgnotify_formatted { diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 4499d816cd454..3c0766191479e 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -27,7 +27,7 @@ function bgnotify_end { # check if Terminal app is not active [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return - printf '\a' # beep sound + [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" } always { bgnotify_timestamp=0 @@ -136,6 +136,9 @@ function bgnotify { ## Defaults +# enable terminal bell on notify by default +bgnotify_bell=${bgnotify_bell:-true} + # notify if command took longer than 5s by default bgnotify_threshold=${bgnotify_threshold:-5} From 1ae0515a80686d33406c9a2c58c0c9666ca47c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 6 Dec 2023 08:09:45 +0100 Subject: [PATCH 112/212] fix(lib): patch `omz_urlencode` to not encode UTF-8 chars in Termux (#12076) Fixes #12061 --- lib/functions.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index a252d0a330a7a..f5c671f9c93ee 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -182,6 +182,8 @@ function omz_urlencode() { fi # Use LC_CTYPE=C to process text byte-by-byte + # Note that this doesn't work in Termux, as it only has UTF-8 locale. + # Characters will be processed as UTF-8, which is fine for URLs. local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' @@ -206,6 +208,9 @@ function omz_urlencode() { else if [[ "$byte" == " " && -n $spaces_as_plus ]]; then url_str+="+" + elif [[ "$PREFIX" = *com.termux* ]]; then + # Termux does not have non-UTF8 locales, so just send the UTF-8 character directly + url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" From c37df3ebd48df98b0987d891acc7ea30044bb113 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Wed, 6 Dec 2023 09:13:19 +0100 Subject: [PATCH 113/212] feat(frontend-search): add nextjs --- plugins/frontend-search/README.md | 1 + plugins/frontend-search/frontend-search.plugin.zsh | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 0500589311dbb..619d31e7f4bc9 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -60,6 +60,7 @@ Available search contexts are: | typescript | `https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q=` | | unheap | `http://www.unheap.com/?s=` | | vuejs | `https://www.google.com/search?as_sitesearch=vuejs.org&as_q=` | +| nextjs | `https://www.google.com/search?as_sitesearch=nextjs.org&as_q=` | If you want to have another context, open an Issue and tell us! diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index b9e2fe95d4818..541b23701bd88 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -27,6 +27,7 @@ alias stackoverflow='frontend stackoverflow' alias typescript='frontend typescript' alias unheap='frontend unheap' alias vuejs='frontend vuejs' +alias nextjs='frontend nextjs' function _frontend_fallback() { case "$FRONTEND_SEARCH_FALLBACK" in @@ -70,6 +71,7 @@ function frontend() { typescript $(_frontend_fallback 'www.typescriptlang.org/docs') unheap 'http://www.unheap.com/?s=' vuejs $(_frontend_fallback 'vuejs.org') + nextjs $(_frontend_fallback 'nextjs.org') ) # show help for command list @@ -81,7 +83,7 @@ function frontend() { print -P "" print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," - print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" print -P "" print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." print -P "" @@ -96,7 +98,7 @@ function frontend() { echo "" echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash," - echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" echo "" return 1 fi From 346bd1cd53e1bd3bd881f94552efadeebab430e4 Mon Sep 17 00:00:00 2001 From: Josh Hubbard Date: Wed, 6 Dec 2023 09:15:53 +0100 Subject: [PATCH 114/212] feat(frontend-search): add `I am lucky` option --- plugins/frontend-search/README.md | 11 ++++++++++- plugins/frontend-search/frontend-search.plugin.zsh | 14 ++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 619d31e7f4bc9..92079506094b3 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -66,7 +66,16 @@ If you want to have another context, open an Issue and tell us! ## Fallback search behaviour -The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. +The plugin will use Google as a fallback if the docs site for a search context does not have a search +function. You can set the fallback search engine to DuckDuckGo by setting +`FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. + +## DuckDuckGo Lucky Search + +Enable DuckDuckGo's "ducky" (lucky) search feature to automatically access the top search result. This feature +is optimized for DuckDuckGo, as Google redirects to an intermediate page. The FRONTEND_SEARCH_FALLBACK_LUCKY +environment variable triggers the use of DuckDuckGo's lucky search, rendering the FRONTEND_SEARCH_FALLBACK +setting unnecessary in this context. ## Author diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index 541b23701bd88..c96596eb96db3 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -30,10 +30,16 @@ alias vuejs='frontend vuejs' alias nextjs='frontend nextjs' function _frontend_fallback() { - case "$FRONTEND_SEARCH_FALLBACK" in - duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; - *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; - esac + if [[ "$FRONTEND_SEARCH_FALLBACK_LUCKY" == "true" ]]; then + case true in + *) echo "https://duckduckgo.com/?q=!ducky+site%3A$1+" ;; + esac + else + case "$FRONTEND_SEARCH_FALLBACK" in + duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; + *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; + esac + fi } function frontend() { From 48ccc7b36de8efb2bd7beb9bd6e0a6f6fe03b95d Mon Sep 17 00:00:00 2001 From: Jasmin Date: Wed, 6 Dec 2023 08:22:06 +0000 Subject: [PATCH 115/212] feat(dotnet): update completion script (#12028) --- plugins/dotnet/dotnet.plugin.zsh | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 89d464670257e..40ee7efaeafb5 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -1,22 +1,14 @@ # This scripts is copied from (MIT License): -# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh +# https://raw.githubusercontent.com/dotnet/sdk/main/scripts/register-completions.zsh -_dotnet_zsh_complete() -{ - local completions=("$(dotnet complete "$words")") - - # If the completion list is empty, just continue with filename selection - if [ -z "$completions" ] - then - _arguments '*::arguments: _normal' - return - fi - - # This is not a variable assignment, don't remove spaces! - _values = "${(ps:\n:)completions}" +#compdef dotnet +_dotnet_completion() { + local -a completions=("${(@f)$(dotnet complete "${words}")}") + compadd -a completions + _files } -compdef _dotnet_zsh_complete dotnet +compdef _dotnet_completion dotnet # Aliases bellow are here for backwards compatibility # added by Shaun Tabone (https://github.com/xontab) From dd3be612e3df1450de40a74fadc6df3c2885e9b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 20 Dec 2023 10:21:31 +0100 Subject: [PATCH 116/212] ci(dependencies): add automation for updating external dependencies (#12109) --- .github/dependencies.yml | 20 + .github/workflows/dependencies.yml | 26 ++ .github/workflows/dependencies/updater.py | 450 ++++++++++++++++++++++ 3 files changed, 496 insertions(+) create mode 100644 .github/dependencies.yml create mode 100644 .github/workflows/dependencies.yml create mode 100644 .github/workflows/dependencies/updater.py diff --git a/.github/dependencies.yml b/.github/dependencies.yml new file mode 100644 index 0000000000000..8c46395d7b697 --- /dev/null +++ b/.github/dependencies.yml @@ -0,0 +1,20 @@ +dependencies: + plugins/gitfast: + repo: felipec/git-completion + branch: master + version: tag:v1.3.7 + postcopy: | + set -e + rm -rf git-completion.plugin.zsh Makefile README.adoc t tools + test -e git-completion.zsh && mv -f git-completion.zsh _git + plugins/z: + branch: master + repo: agkozak/zsh-z + version: 6bfe418332866d15373392164df11b4fbec2083f + precopy: | + set -e + test -e README.md && mv -f README.md MANUAL.md + postcopy: | + set -e + test -e _zshz && mv -f _zshz _z + test -e zsh-z.plugin.zsh && mv -f zsh-z.plugin.zsh z.plugin.zsh diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml new file mode 100644 index 0000000000000..c27ad79982808 --- /dev/null +++ b/.github/workflows/dependencies.yml @@ -0,0 +1,26 @@ +name: Update dependencies +on: + workflow_dispatch: {} + # schedule: + # - cron: '34 3 * * */8' + +jobs: + check: + name: Check for updates + runs-on: ubuntu-latest + steps: + - name: Checkout + if: github.repository == 'ohmyzsh/ohmyzsh' + uses: actions/checkout@v4 + - name: Authenticate as @ohmyzsh + uses: ohmyzsh/github-app-token@v2 + with: + app-id: ${{ secrets.OHMYZSH_APP_ID }} + private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Process dependencies + env: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + TMP_DIR: ${{ env.RUNNER_TEMP }} + run: | + gh auth login --with-token <<< "${GITHUB_TOKEN}" + python3 .github/workflows/dependencies/updater.py diff --git a/.github/workflows/dependencies/updater.py b/.github/workflows/dependencies/updater.py new file mode 100644 index 0000000000000..5af19d14c5308 --- /dev/null +++ b/.github/workflows/dependencies/updater.py @@ -0,0 +1,450 @@ +import os +import subprocess +import sys +import requests +import shutil +import yaml +from copy import deepcopy +from typing import Optional, TypedDict + +# Get TMP_DIR variable from environment +TMP_DIR = os.path.join(os.environ.get("TMP_DIR", "/tmp"), "ohmyzsh") +# Relative path to dependencies.yml file +DEPS_YAML_FILE = ".github/dependencies.yml" +# Dry run flag +DRY_RUN = os.environ.get("DRY_RUN", "0") == "1" + +import timeit +class CodeTimer: + def __init__(self, name=None): + self.name = " '" + name + "'" if name else '' + + def __enter__(self): + self.start = timeit.default_timer() + + def __exit__(self, exc_type, exc_value, traceback): + self.took = (timeit.default_timer() - self.start) * 1000.0 + print('Code block' + self.name + ' took: ' + str(self.took) + ' ms') + + +### YAML representation +def str_presenter(dumper, data): + """ + Configures yaml for dumping multiline strings + Ref: https://stackoverflow.com/a/33300001 + """ + if len(data.splitlines()) > 1: # check for multiline string + return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar('tag:yaml.org,2002:str', data) + +yaml.add_representer(str, str_presenter) +yaml.representer.SafeRepresenter.add_representer(str, str_presenter) + + +# Types +class DependencyDict(TypedDict): + repo: str + branch: str + version: str + precopy: Optional[str] + postcopy: Optional[str] + +class DependencyYAML(TypedDict): + dependencies: dict[str, DependencyDict] + +class UpdateStatus(TypedDict): + has_updates: bool + version: Optional[str] + compare_url: Optional[str] + head_ref: Optional[str] + head_url: Optional[str] + + +class CommandRunner: + class Exception(Exception): + def __init__(self, message, returncode, stage, stdout, stderr): + super().__init__(message) + self.returncode = returncode + self.stage = stage + self.stdout = stdout + self.stderr = stderr + + @staticmethod + def run_or_fail(command: list[str], stage: str, *args, **kwargs): + if DRY_RUN and command[0] == "gh": + command.insert(0, "echo") + + result = subprocess.run(command, *args, capture_output=True, **kwargs) + + if result.returncode != 0: + raise CommandRunner.Exception( + f"{stage} command failed with exit code {result.returncode}", returncode=result.returncode, + stage=stage, + stdout=result.stdout.decode("utf-8"), + stderr=result.stderr.decode("utf-8") + ) + + return result + + +class DependencyStore: + store: DependencyYAML = { + "dependencies": {} + } + + @staticmethod + def set(data: DependencyYAML): + DependencyStore.store = data + + @staticmethod + def update_dependency_version(path: str, version: str) -> DependencyYAML: + with CodeTimer(f"store deepcopy: {path}"): + store_copy = deepcopy(DependencyStore.store) + + dependency = store_copy["dependencies"].get(path, {}) + dependency["version"] = version + store_copy["dependencies"][path] = dependency + + return store_copy + + @staticmethod + def write_store(file: str, data: DependencyYAML): + with open(file, "w") as yaml_file: + yaml.safe_dump(data, yaml_file, sort_keys=False) + + +class Dependency: + def __init__(self, path: str, values: DependencyDict): + self.path = path + self.values = values + + self.name: str = "" + self.desc: str = "" + self.kind: str = "" + + match path.split("/"): + case ["plugins", name]: + self.name = name + self.kind = "plugin" + self.desc = f"{name} plugin" + case ["themes", name]: + self.name = name.replace(".zsh-theme", "") + self.kind = "theme" + self.desc = f"{self.name} theme" + case _: + self.name = self.desc = path + + def __str__(self): + output: str = "" + for key in DependencyDict.__dict__['__annotations__'].keys(): + if key not in self.values: + output += f"{key}: None\n" + continue + + value = self.values[key] + if "\n" not in value: + output += f"{key}: {value}\n" + else: + output += f"{key}:\n " + output += value.replace("\n", "\n ", value.count("\n") - 1) + return output + + def update_or_notify(self): + # Print dependency settings + print(f"Processing {self.desc}...", file=sys.stderr) + print(self, file=sys.stderr) + + # Check for updates + repo = self.values["repo"] + remote_branch = self.values["branch"] + version = self.values["version"] + is_tag = version.startswith("tag:") + + try: + with CodeTimer(f"update check: {repo}"): + if is_tag: + status = GitHub.check_newer_tag(repo, version.replace("tag:", "")) + else: + status = GitHub.check_updates(repo, remote_branch, version) + + if status["has_updates"]: + short_sha = status["head_ref"][:8] + new_version = status["version"] if is_tag else short_sha + + try: + # Create new branch + branch = Git.create_branch(self.path, new_version) + + # Update dependencies.yml file + self.__update_yaml(f"tag:{new_version}" if is_tag else status["version"]) + + # Update dependency files + self.__apply_upstream_changes() + + # Add all changes and commit + Git.add_and_commit(self.name, short_sha) + + # Push changes to remote + Git.push(branch) + + # Create GitHub PR + GitHub.create_pr( + branch, + f"feat({self.name}): update to version {new_version}", + f"""## Description + +Update for **{self.desc}**: update to version [{new_version}]({status['head_url']}). +Check out the [list of changes]({status['compare_url']}). +""" + ) + + # Clean up repository + Git.clean_repo() + except (CommandRunner.Exception, shutil.Error) as e: + # Handle exception on automatic update + match type(e): + case CommandRunner.Exception: + # Print error message + print(f"Error running {e.stage} command: {e.returncode}", file=sys.stderr) + print(e.stderr, file=sys.stderr) + case shutil.Error: + print(f"Error copying files: {e}", file=sys.stderr) + + try: + Git.clean_repo() + except CommandRunner.Exception as e: + print(f"Error reverting repository to clean state: {e}", file=sys.stderr) + sys.exit(1) + + # Create a GitHub issue to notify maintainer + title = f"{self.path}: update to {new_version}" + body = ( + f"""## Description + +There is a new version of `{self.name}` {self.kind} available. + +New version: [{new_version}]({status['head_url']}) +Check out the [list of changes]({status['compare_url']}). +""" + ) + + print(f"Creating GitHub issue", file=sys.stderr) + print(f"{title}\n\n{body}", file=sys.stderr) + GitHub.create_issue(title, body) + except Exception as e: + print(e, file=sys.stderr) + + def __update_yaml(self, new_version: str) -> None: + dep_yaml = DependencyStore.update_dependency_version(self.path, new_version) + DependencyStore.write_store(DEPS_YAML_FILE, dep_yaml) + + def __apply_upstream_changes(self) -> None: + # Patterns to ignore in copying files from upstream repo + GLOBAL_IGNORE = [ + ".git", + ".github", + ".gitignore" + ] + + path = os.path.abspath(self.path) + precopy = self.values.get("precopy") + postcopy = self.values.get("postcopy") + + repo = self.values["repo"] + branch = self.values["branch"] + remote_url = f"https://github.com/{repo}.git" + repo_dir = os.path.join(TMP_DIR, repo) + + # Clone repository + Git.clone(remote_url, branch, repo_dir, reclone=True) + + # Run precopy on tmp repo + if precopy is not None: + print("Running precopy script:", end="\n ", file=sys.stderr) + print(precopy.replace("\n", "\n ", precopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", precopy], cwd=repo_dir, stage="Precopy") + + # Copy files from upstream repo + print(f"Copying files from {repo_dir} to {path}", file=sys.stderr) + shutil.copytree(repo_dir, path, dirs_exist_ok=True, ignore=shutil.ignore_patterns(*GLOBAL_IGNORE)) + + # Run postcopy on our repository + if postcopy is not None: + print("Running postcopy script:", end="\n ", file=sys.stderr) + print(postcopy.replace("\n", "\n ", postcopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", postcopy], cwd=path, stage="Postcopy") + + +class Git: + default_branch = "master" + + @staticmethod + def clone(remote_url: str, branch: str, repo_dir: str, reclone=False): + # If repo needs to be fresh + if reclone and os.path.exists(repo_dir): + shutil.rmtree(repo_dir) + + # Clone repo in tmp directory and checkout branch + if not os.path.exists(repo_dir): + print(f"Cloning {remote_url} to {repo_dir} and checking out {branch}", file=sys.stderr) + CommandRunner.run_or_fail(["git", "clone", "--depth=1", "-b", branch, remote_url, repo_dir], stage="Clone") + + @staticmethod + def create_branch(path: str, version: str): + # Get current branch name + result = CommandRunner.run_or_fail(["git", "rev-parse", "--abbrev-ref", "HEAD"], stage="GetDefaultBranch") + Git.default_branch = result.stdout.decode("utf-8").strip() + + # Create new branch and return created branch name + branch_name = f"update/{path}/{version}" + CommandRunner.run_or_fail(["git", "checkout", "-b", branch_name], stage="CreateBranch") + return branch_name + + @staticmethod + def add_and_commit(scope: str, version: str): + user_name = "ohmyzsh" + user_email = "bot@ohmyz.sh" + + # Add all files to git staging + CommandRunner.run_or_fail(["git", "add", "-A", "-v"], stage="AddFiles") + + # Reset environment and git config + clean_env = os.environ.copy() + clean_env["LANG"]="C.UTF-8" + clean_env["GIT_CONFIG_GLOBAL"]="/dev/null" + clean_env["GIT_CONFIG_NOSYSTEM"]="1" + + # Commit with settings above + CommandRunner.run_or_fail([ + "git", + "-c", f"user.name={user_name}", + "-c", f"user.email={user_email}", + "commit", + "-m", f"feat({scope}): update to {version}" + ], stage="CreateCommit", env=clean_env) + + @staticmethod + def push(branch: str): + CommandRunner.run_or_fail(["git", "push", "-u", "origin", branch], stage="PushBranch") + + @staticmethod + def clean_repo(): + CommandRunner.run_or_fail(["git", "reset", "--hard", "HEAD"], stage="ResetRepository") + CommandRunner.run_or_fail(["git", "checkout", Git.default_branch], stage="CheckoutDefaultBranch") + + +class GitHub: + @staticmethod + def check_newer_tag(repo, current_tag) -> UpdateStatus: + # GET /repos/:owner/:repo/git/refs/tags + url = f"https://api.github.com/repos/{repo}/git/refs/tags" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + if len(data) == 0: + return { + "has_updates": False, + } + + latest_ref = data[-1] + latest_tag = latest_ref["ref"].replace("refs/tags/", "") + + if latest_tag == current_tag: + return { + "has_updates": False, + } + + return { + "has_updates": True, + "version": latest_tag, + "compare_url": f"https://github.com/{repo}/compare/{current_tag}...{latest_tag}", + "head_ref": latest_ref["object"]["sha"], + "head_url": f"https://github.com/{repo}/releases/tag/{latest_tag}", + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def check_updates(repo, branch, version) -> UpdateStatus: + # TODO: add support for semver updating (based on tags) + # Check if upstream github repo has a new version + # GitHub API URL for comparing two commits + url = f"https://api.github.com/repos/{repo}/compare/{version}...{branch}" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + # If the base is behind the head, there is a newer version + has_updates = data["status"] != "identical" + + if not has_updates: + return { + "has_updates": False, + } + + return { + "has_updates": data["status"] != "identical", + "version": data["commits"][-1]["sha"], + "compare_url": data["permalink_url"], + "head_ref": data["commits"][-1]["sha"], + "head_url": data["commits"][-1]["html_url"] + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def create_issue(title: str, body: str) -> None: + cmd = [ + "gh", + "issue", + "create", + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreateIssue") + + @staticmethod + def create_pr(branch: str, title: str, body: str) -> None: + cmd = [ + "gh", + "pr", + "create", + "-B", Git.default_branch, + "-H", branch, + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreatePullRequest") + + +def main(): + # Load the YAML file + with open(DEPS_YAML_FILE, "r") as yaml_file: + data: DependencyYAML = yaml.safe_load(yaml_file) + + if "dependencies" not in data: + raise Exception(f"dependencies.yml not properly formatted") + + # Cache YAML version + DependencyStore.set(data) + + dependencies = data["dependencies"] + for path in dependencies: + dependency = Dependency(path, dependencies[path]) + dependency.update_or_notify() + +if __name__ == "__main__": + main() From 0bb00eddbbc25564b5329899fcdfcd28153da720 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 20 Dec 2023 19:38:25 +0100 Subject: [PATCH 117/212] ci(dependencies): fix typo --- .github/workflows/dependencies.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index c27ad79982808..aab7401264c76 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -15,8 +15,8 @@ jobs: - name: Authenticate as @ohmyzsh uses: ohmyzsh/github-app-token@v2 with: - app-id: ${{ secrets.OHMYZSH_APP_ID }} - private-key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} - name: Process dependencies env: GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} From 2a1574165691495d21b3f243f50e1b655b361d9b Mon Sep 17 00:00:00 2001 From: Oleg Grigoriev Date: Wed, 20 Dec 2023 22:52:27 +0300 Subject: [PATCH 118/212] fix(rake-fast): make `.rake_tasks` write atomic (#12108) --- plugins/rake-fast/rake-fast.plugin.zsh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 86e5ed58603cb..082f02f29c97e 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -43,14 +43,17 @@ _tasks_changed () { } _rake_generate () { - echo "version:$_rake_tasks_version" > .rake_tasks - - rake --silent --tasks --all \ + local rake_tasks_content="version:$_rake_tasks_version\n" + rake_tasks_content+=$(rake --silent --tasks --all \ | sed "s/^rake //" | sed "s/\:/\\\:/g" \ | sed "s/\[[^]]*\]//g" \ | sed "s/ *# /\:/" \ - | sed "s/\:$//" \ - >> .rake_tasks + | sed "s/\:$//") + + local rake_tasks_file="$(mktemp -t .rake_tasks.XXXXXX)" + echo $rake_tasks_content > $rake_tasks_file + + mv $rake_tasks_file .rake_tasks } _rake () { From 17e96bf91ee0bc3dc27fa65b0ea7b10d3b971f9d Mon Sep 17 00:00:00 2001 From: Gautam krishna R Date: Thu, 21 Dec 2023 01:40:32 +0530 Subject: [PATCH 119/212] fix(changelog): use longer hashes for commits (#12096) --- tools/changelog.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 6d768963e1a95..3ad8fe786e6d1 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -292,16 +292,17 @@ function display-release { function fmt:hash { #* Uses $hash from outer scope local hash="${1:-$hash}" + local short_hash="${hash:0:7}" # 7 characters sha, top level sha is 12 characters case "$output" in - raw) printf '%s' "$hash" ;; + raw) printf '%s' "$short_hash" ;; text) - local text="\e[33m$hash\e[0m"; # red + local text="\e[33m$short_hash\e[0m"; # red if supports_hyperlinks; then printf "\e]8;;%s\a%s\e]8;;\a" "https://github.com/ohmyzsh/ohmyzsh/commit/$hash" $text; else echo $text; fi ;; - md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" "$hash" ;; + md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$short_hash" "$hash" ;; esac } @@ -512,13 +513,13 @@ function main { # Git log options # -z: commits are delimited by null bytes # --format: [7-char hash][ref names][subject][body] - # --abbrev=7: force commit hashes to be 7 characters long + # --abbrev=7: force commit hashes to be 12 characters long # --no-merges: merge commits are omitted # --first-parent: commits from merged branches are omitted local SEP="0mZmAgIcSeP" local -a raw_commits raw_commits=(${(0)"$(command git -c log.showSignature=false log -z \ - --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=7 \ + --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=12 \ --no-merges --first-parent $range)"}) local raw_commit From 9004c177bac951f46ab1ec5b74a8bcfb8e3c686b Mon Sep 17 00:00:00 2001 From: Gautam krishna R Date: Fri, 22 Dec 2023 14:27:23 +0530 Subject: [PATCH 120/212] fix(bgnotify): make it work with `set -e` (#12111) Co-authored-by: ipChrisLee --- plugins/bgnotify/bgnotify.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 3c0766191479e..c28a29e19cf38 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -21,11 +21,11 @@ function bgnotify_end { local elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) # check time elapsed - [[ $bgnotify_timestamp -gt 0 ]] || return - [[ $elapsed -ge $bgnotify_threshold ]] || return + [[ $bgnotify_timestamp -gt 0 ]] || return 0 + [[ $elapsed -ge $bgnotify_threshold ]] || return 0 # check if Terminal app is not active - [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return + [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return 0 [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" From f74add6cb215b55722f9e64273be82d7bae5014e Mon Sep 17 00:00:00 2001 From: Nidelson Gimenez Date: Sun, 24 Dec 2023 05:40:51 -0300 Subject: [PATCH 121/212] feat(react-native): add aliases for iPhone 15 (#12114) --- plugins/react-native/README.md | 4 ++++ plugins/react-native/react-native.plugin.zsh | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md index 807c063a550d0..39eed6c688c34 100644 --- a/plugins/react-native/README.md +++ b/plugins/react-native/README.md @@ -54,6 +54,10 @@ plugins=(... react-native) | **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | | **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | | **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | +| **rnios15** | `react-native run-ios --simulator "iPhone 15"` | +| **rnios15pl** | `react-native run-ios --simulator "iPhone 15 Plus"` | +| **rnios15p** | `react-native run-ios --simulator "iPhone 15 Pro"` | +| **rnios15pm** | `react-native run-ios --simulator "iPhone 15 Pro Max"` | | _iPad_ | | | **rnipad2** | `react-native run-ios --simulator "iPad 2"` | | **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | diff --git a/plugins/react-native/react-native.plugin.zsh b/plugins/react-native/react-native.plugin.zsh index afeaab4fd0883..9ee081248b5c5 100644 --- a/plugins/react-native/react-native.plugin.zsh +++ b/plugins/react-native/react-native.plugin.zsh @@ -39,6 +39,10 @@ alias rnios14='react-native run-ios --simulator "iPhone 14"' alias rnios14pl='react-native run-ios --simulator "iPhone 14 Plus"' alias rnios14p='react-native run-ios --simulator "iPhone 14 Pro"' alias rnios14pm='react-native run-ios --simulator "iPhone 14 Pro Max"' +alias rnios15='react-native run-ios --simulator "iPhone 15"' +alias rnios15pl='react-native run-ios --simulator "iPhone 15 Plus"' +alias rnios15p='react-native run-ios --simulator "iPhone 15 Pro"' +alias rnios15pm='react-native run-ios --simulator "iPhone 15 Pro Max"' # iPad alias rnipad2='react-native run-ios --simulator "iPad 2"' From 8a8a04f43a23f9d3f25b941293d0e9be1d3e301c Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 27 Dec 2023 10:52:23 +0100 Subject: [PATCH 122/212] fix(nvm): prevent duplicates in lazy_cmd Closes #11344 --- plugins/nvm/nvm.plugin.zsh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 1badbeab59eae..94b6661758f77 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -24,9 +24,14 @@ if zstyle -t ':omz:plugins:nvm' lazy && \ ! zstyle -t ':omz:plugins:nvm' autoload; then # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values eval " - function nvm node npm npx pnpm yarn $nvm_lazy_cmd { - unfunction nvm node npm npx pnpm yarn $nvm_lazy_cmd + function $nvm_lazy_cmd { + for func in $nvm_lazy_cmd; do + if (( \$+functions[\$func] )); then + unfunction \$func + fi + done # Load nvm if it exists in \$NVM_DIR [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" \"\$0\" \"\$@\" From 64d881b479cec5e62384176773f1b4d0a057ba47 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Wed, 27 Dec 2023 02:57:53 -0700 Subject: [PATCH 123/212] fix(bgnotify): don't require accessibility perms in macos (#11433) --- plugins/bgnotify/bgnotify.plugin.zsh | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index c28a29e19cf38..0e3f2c640d572 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -27,7 +27,6 @@ function bgnotify_end { # check if Terminal app is not active [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return 0 - [[ $bgnotify_bell = true ]] && printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" } always { bgnotify_timestamp=0 @@ -52,6 +51,7 @@ function bgnotify_formatted { (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + [[ $bgnotify_bell = true ]] && printf '\a' # beep sound if [[ $exit_status -eq 0 ]]; then bgnotify "#win (took $elapsed)" "$cmd" else @@ -61,10 +61,9 @@ function bgnotify_formatted { function bgnotify_appid { if (( ${+commands[osascript]} )); then - # output is "app ID, window ID" (com.googlecode.iterm2, 116) - osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null + osascript -e "tell application id \"$(bgnotify_programid)\" to get the {id, frontmost, id of front window, visible of front window}" 2>/dev/null elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway - local app_id=$(find_sway_appid) + local app_id=$(bgnotify_find_sway_appid) [[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 @@ -74,7 +73,7 @@ function bgnotify_appid { } -function find_sway_appid { +function bgnotify_find_sway_appid { # output is "app_id,container_id", for example "Alacritty,1694" # see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json if (( ${+commands[jq]} )); then @@ -105,15 +104,11 @@ function find_sway_appid { fi } -function find_term_id { - local term_id="${bgnotify_termid%%,*}" # remove window id - if [[ -z "$term_id" ]]; then - case "$TERM_PROGRAM" in - iTerm.app) term_id='com.googlecode.iterm2' ;; - Apple_Terminal) term_id='com.apple.terminal' ;; - esac - fi - echo "$term_id" +function bgnotify_programid { + case "$TERM_PROGRAM" in + iTerm.app) echo 'com.googlecode.iterm2' ;; + Apple_Terminal) echo 'com.apple.terminal' ;; + esac } function bgnotify { @@ -121,7 +116,7 @@ function bgnotify { local message="$2" local icon="$3" if (( ${+commands[terminal-notifier]} )); then # macOS - local term_id=$(find_term_id) + local term_id=$(bgnotify_programid) terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl growlnotify -m "$title" "$message" From 94a0481f182b4a2cc87e76af8761e00c07de79dc Mon Sep 17 00:00:00 2001 From: Basti <107778224+krakenbite@users.noreply.github.com> Date: Wed, 27 Dec 2023 10:59:05 +0100 Subject: [PATCH 124/212] feat(aws): add sso logout capabilities (#12113) --- plugins/aws/README.md | 1 + plugins/aws/aws.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 9e1e055b8e2f0..4850e223eaeb4 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -16,6 +16,7 @@ plugins=(... aws) It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. Run `asp` without arguments to clear the profile. * `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. +* `asp [] logout`: If AWS SSO has been configured in your aws profile, it will run the `aws sso logout` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. Run `asr` without arguments to clear the profile. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index c946515be5498..0d7040f9275a8 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -30,6 +30,8 @@ function asp() { if [[ "$2" == "login" ]]; then aws sso login + elif [[ "$2" == "logout" ]]; then + aws sso logout fi } From 3e92d251ba7a950d050234d8780ce75085b1b1d4 Mon Sep 17 00:00:00 2001 From: "B. Hamonangan" <70834922+hamonangann@users.noreply.github.com> Date: Wed, 27 Dec 2023 17:09:23 +0700 Subject: [PATCH 125/212] feat(aws): add support for sso sessions login (#12090) Co-authored-by: Carlo Sala --- plugins/aws/README.md | 1 + plugins/aws/aws.plugin.zsh | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index 4850e223eaeb4..dbf8dcfeb8b82 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -16,6 +16,7 @@ plugins=(... aws) It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. Run `asp` without arguments to clear the profile. * `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. +* `asp [] login []`: In addition to `asp [] login`, if SSO session has been configured in your aws profile, it will run the `aws sso login --sso-session ` command following profile selection. * `asp [] logout`: If AWS SSO has been configured in your aws profile, it will run the `aws sso logout` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 0d7040f9275a8..fd00714e72c6f 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -29,7 +29,11 @@ function asp() { export AWS_PROFILE_REGION=$(aws configure get region) if [[ "$2" == "login" ]]; then - aws sso login + if [[ -n "$3" ]]; then + aws sso login --sso-session $3 + else + aws sso login + fi elif [[ "$2" == "logout" ]]; then aws sso logout fi From ec74eb91bda8ee0cb42f4b9697d13154e31a93d6 Mon Sep 17 00:00:00 2001 From: "B. Hamonangan" <70834922+hamonangann@users.noreply.github.com> Date: Wed, 27 Dec 2023 19:47:58 +0700 Subject: [PATCH 126/212] feat(git): add `gcB` alias (#12116) --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index 93dc8ccea5096..b7b9a6635424c 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -51,6 +51,7 @@ plugins=(... git) | `gco` | `git checkout` | | `gcor` | `git checkout --recurse-submodules` | | `gcb` | `git checkout -b` | +| `gcB` | `git checkout -B` | | `gcd` | `git checkout $(git_develop_branch)` | | `gcm` | `git checkout $(git_main_branch)` | | `gcp` | `git cherry-pick` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 2a824444b056d..bee9eb67d1881 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -157,6 +157,7 @@ alias gbg='LANG=C git branch -vv | grep ": gone\]"' alias gco='git checkout' alias gcor='git checkout --recurse-submodules' alias gcb='git checkout -b' +alias gcB='git checkout -B' alias gcd='git checkout $(git_develop_branch)' alias gcm='git checkout $(git_main_branch)' alias gcp='git cherry-pick' From 46b24d409909cdc00ac441448c0aa31cc35d12c9 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 28 Dec 2023 21:20:28 +0100 Subject: [PATCH 127/212] ci(dependencies): fix some envs and add requirements --- .github/workflows/dependencies.yml | 11 +++++++---- .github/workflows/dependencies/requirements.txt | 2 ++ .github/workflows/dependencies/updater.py | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/dependencies/requirements.txt diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index aab7401264c76..2e2217e1c0dd3 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -8,19 +8,22 @@ jobs: check: name: Check for updates runs-on: ubuntu-latest + if: github.repository == 'ohmyzsh/ohmyzsh' steps: - name: Checkout - if: github.repository == 'ohmyzsh/ohmyzsh' uses: actions/checkout@v4 - name: Authenticate as @ohmyzsh + id: generate_token uses: ohmyzsh/github-app-token@v2 with: app_id: ${{ secrets.OHMYZSH_APP_ID }} private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} - name: Process dependencies env: - GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} - TMP_DIR: ${{ env.RUNNER_TEMP }} + GH_TOKEN: ${{ steps.generate_token.outputs.token }} + GIT_APP_NAME: ohmyzsh[bot] + GIT_APP_EMAIL: 54982679+ohmyzsh[bot]@users.noreply.github.com + TMP_DIR: ${{ runner.temp }} run: | - gh auth login --with-token <<< "${GITHUB_TOKEN}" + pip install -r .github/workflows/dependencies/requirements.txt python3 .github/workflows/dependencies/updater.py diff --git a/.github/workflows/dependencies/requirements.txt b/.github/workflows/dependencies/requirements.txt new file mode 100644 index 0000000000000..3c4c149ea17b8 --- /dev/null +++ b/.github/workflows/dependencies/requirements.txt @@ -0,0 +1,2 @@ +PyYAML~=6.0.1 +requests~=2.31.0 diff --git a/.github/workflows/dependencies/updater.py b/.github/workflows/dependencies/updater.py index 5af19d14c5308..f54d316f93838 100644 --- a/.github/workflows/dependencies/updater.py +++ b/.github/workflows/dependencies/updater.py @@ -302,8 +302,8 @@ def create_branch(path: str, version: str): @staticmethod def add_and_commit(scope: str, version: str): - user_name = "ohmyzsh" - user_email = "bot@ohmyz.sh" + user_name = os.environ.get("GIT_APP_NAME") + user_email = os.environ.get("GIT_APP_EMAIL") # Add all files to git staging CommandRunner.run_or_fail(["git", "add", "-A", "-v"], stage="AddFiles") From 544eb17e33454dbfb758683cc37bc3ab50661f98 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 28 Dec 2023 21:21:09 +0100 Subject: [PATCH 128/212] ci(project): use ohmyzsh's bot credentials --- .github/workflows/project.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 1d961d8c00aa9..2c2a1cdaafd12 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -15,9 +15,15 @@ jobs: name: Add to project runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - env: - GITHUB_TOKEN: ${{ secrets.PROJECT_TOKEN }} steps: + - name: Authenticate as @ohmyzsh + id: generate_token + uses: ohmyzsh/github-app-token@v2 + with: + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Store app token + run: echo "GH_TOKEN=${{ steps.generate_token.outputs.token }}" >> "$GITHUB_ENV" - name: Read project data env: ORGANIZATION: ohmyzsh From f43ee85d8f154fbc95229772cac93dec83b09188 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:05:07 +0100 Subject: [PATCH 129/212] feat(gitfast): update to version v2.0 (#12135) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> --- .github/dependencies.yml | 2 +- plugins/gitfast/git-completion.bash | 221 +++++++--------------------- plugins/gitfast/git-prompt.sh | 31 ++-- 3 files changed, 71 insertions(+), 183 deletions(-) diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 8c46395d7b697..4d5a8fa802b10 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -2,7 +2,7 @@ dependencies: plugins/gitfast: repo: felipec/git-completion branch: master - version: tag:v1.3.7 + version: tag:v2.0 postcopy: | set -e rm -rf git-completion.plugin.zsh Makefile README.adoc t tools diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index dd06b50480bab..9a2045f26d8b9 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -58,6 +58,12 @@ # # When set to "1" suggest all options, including options which are # typically hidden (e.g. '--allow-empty' for 'git commit'). +# +# GIT_COMPLETION_IGNORE_CASE +# +# When set, uses for-each-ref '--ignore-case' to find refs that match +# case insensitively, even on systems with case sensitive file systems +# (e.g., completing tag name "FOO" on "git checkout f"). # The following functions are meant to modify COMPREPLY, which should not be # modified directly. The purpose is to localize the modifications so it's @@ -320,116 +326,6 @@ else unset $(compgen -v __gitcomp_builtin_) fi -__gitcomp_builtin_add_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_am_default=" --interactive --3way --quiet --signoff --utf8 --keep --keep-non-patch --message-id --keep-cr --no-keep-cr --scissors --quoted-cr= --whitespace= --ignore-space-change --ignore-whitespace --directory= --exclude= --include= --patch-format= --reject --resolvemsg= --continue --resolved --skip --abort --quit --show-current-patch --allow-empty --committer-date-is-author-date --ignore-date --rerere-autoupdate --gpg-sign --empty= -- --no-interactive --no-3way --no-quiet --no-signoff --no-utf8 --no-keep --no-keep-non-patch --no-message-id --no-scissors --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-directory --no-exclude --no-include --no-patch-format --no-reject --no-resolvemsg --no-committer-date-is-author-date --no-ignore-date --no-rerere-autoupdate --no-gpg-sign" -__gitcomp_builtin_apply_default=" --exclude= --include= --no-add --stat --numstat --summary --check --index --intent-to-add --cached --apply --3way --build-fake-ancestor= --whitespace= --ignore-space-change --ignore-whitespace --reverse --unidiff-zero --reject --allow-overlap --verbose --quiet --inaccurate-eof --recount --directory= --allow-empty --add -- --no-stat --no-numstat --no-summary --no-check --no-index --no-intent-to-add --no-cached --no-apply --no-3way --no-build-fake-ancestor --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-reverse --no-unidiff-zero --no-reject --no-allow-overlap --no-verbose --no-quiet --no-inaccurate-eof --no-recount --no-directory --no-allow-empty" -__gitcomp_builtin_archive_default=" --output= --remote= --exec= --no-output -- --no-remote --no-exec" -__gitcomp_builtin_bisect__helper_default=" --bisect-reset --bisect-next-check --bisect-terms --bisect-start --bisect-next --bisect-state --bisect-log --bisect-replay --bisect-skip --bisect-visualize --bisect-run --no-log --log" -__gitcomp_builtin_blame_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_branch_default=" --verbose --quiet --track --set-upstream-to= --unset-upstream --color --remotes --contains --no-contains --abbrev --all --delete --move --copy --list --show-current --create-reflog --edit-description --merged --no-merged --column --sort= --points-at= --ignore-case --recurse-submodules --format= -- --no-verbose --no-quiet --no-track --no-set-upstream-to --no-unset-upstream --no-color --no-remotes --no-abbrev --no-all --no-delete --no-move --no-copy --no-list --no-show-current --no-create-reflog --no-edit-description --no-column --no-sort --no-points-at --no-ignore-case --no-recurse-submodules --no-format" -__gitcomp_builtin_bugreport_default=" --output-directory= --suffix= --no-output-directory -- --no-suffix" -__gitcomp_builtin_cat_file_default=" --allow-unknown-type --batch --batch-check --batch-command --batch-all-objects --buffer --follow-symlinks --unordered --textconv --filters --path= --no-allow-unknown-type -- --no-buffer --no-follow-symlinks --no-unordered --no-path" -__gitcomp_builtin_check_attr_default=" --all --cached --stdin --no-all -- --no-cached --no-stdin" -__gitcomp_builtin_check_ignore_default=" --quiet --verbose --stdin --non-matching --no-index --index -- --no-quiet --no-verbose --no-stdin --no-non-matching" -__gitcomp_builtin_check_mailmap_default=" --stdin --no-stdin" -__gitcomp_builtin_checkout_default=" --guess --overlay --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-guess -- --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_checkout__worker_default=" --prefix= --no-prefix" -__gitcomp_builtin_checkout_index_default=" --all --ignore-skip-worktree-bits --force --quiet --no-create --index --stdin --temp --prefix= --stage= --create -- --no-all --no-ignore-skip-worktree-bits --no-force --no-quiet --no-index --no-stdin --no-temp --no-prefix" -__gitcomp_builtin_cherry_default=" --abbrev --verbose --no-abbrev -- --no-verbose" -__gitcomp_builtin_cherry_pick_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --ff --allow-empty --allow-empty-message --keep-redundant-commits --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign --no-ff --no-allow-empty --no-allow-empty-message --no-keep-redundant-commits" -__gitcomp_builtin_clean_default=" --quiet --dry-run --interactive --exclude= --no-quiet -- --no-dry-run --no-interactive" -__gitcomp_builtin_clone_default=" --verbose --quiet --progress --reject-shallow --no-checkout --bare --mirror --local --no-hardlinks --shared --recurse-submodules --jobs= --template= --reference= --reference-if-able= --dissociate --origin= --branch= --upload-pack= --depth= --shallow-since= --shallow-exclude= --single-branch --no-tags --shallow-submodules --separate-git-dir= --config= --server-option= --ipv4 --ipv6 --filter= --also-filter-submodules --remote-submodules --sparse --checkout --hardlinks --tags -- --no-verbose --no-quiet --no-progress --no-reject-shallow --no-bare --no-mirror --no-local --no-shared --no-recurse-submodules --no-recursive --no-jobs --no-template --no-reference --no-reference-if-able --no-dissociate --no-origin --no-branch --no-upload-pack --no-depth --no-shallow-since --no-shallow-exclude --no-single-branch --no-shallow-submodules --no-separate-git-dir --no-config --no-server-option --no-ipv4 --no-ipv6 --no-filter --no-also-filter-submodules --no-remote-submodules --no-sparse" -__gitcomp_builtin_column_default=" --command= --mode --raw-mode= --width= --indent= --nl= --padding= --no-command -- --no-mode --no-raw-mode --no-width --no-indent --no-nl --no-padding" -__gitcomp_builtin_commit_default=" --quiet --verbose --file= --author= --date= --message= --reedit-message= --reuse-message= --fixup= --squash= --reset-author --trailer= --signoff --template= --edit --cleanup= --status --gpg-sign --all --include --interactive --patch --only --no-verify --dry-run --short --branch --ahead-behind --porcelain --long --null --amend --no-post-rewrite --untracked-files --pathspec-from-file= --pathspec-file-nul --verify --post-rewrite -- --no-quiet --no-verbose --no-file --no-author --no-date --no-message --no-reedit-message --no-reuse-message --no-fixup --no-squash --no-reset-author --no-signoff --no-template --no-edit --no-cleanup --no-status --no-gpg-sign --no-all --no-include --no-interactive --no-patch --no-only --no-dry-run --no-short --no-branch --no-ahead-behind --no-porcelain --no-long --no-null --no-amend --no-untracked-files --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_commit_graph_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_config_default=" --global --system --local --worktree --file= --blob= --get --get-all --get-regexp --get-urlmatch --replace-all --add --unset --unset-all --rename-section --remove-section --list --fixed-value --edit --get-color --get-colorbool --type= --bool --int --bool-or-int --bool-or-str --path --expiry-date --null --name-only --includes --show-origin --show-scope --default= --no-global -- --no-system --no-local --no-worktree --no-file --no-blob --no-get --no-get-all --no-get-regexp --no-get-urlmatch --no-replace-all --no-add --no-unset --no-unset-all --no-rename-section --no-remove-section --no-list --no-fixed-value --no-edit --no-get-color --no-get-colorbool --no-type --no-null --no-name-only --no-includes --no-show-origin --no-show-scope --no-default" -__gitcomp_builtin_count_objects_default=" --verbose --human-readable --no-verbose -- --no-human-readable" -__gitcomp_builtin_credential_cache_default=" --timeout= --socket= --no-timeout -- --no-socket" -__gitcomp_builtin_credential_cache__daemon_default=" --debug --no-debug" -__gitcomp_builtin_credential_store_default=" --file= --no-file" -__gitcomp_builtin_describe_default=" --contains --debug --all --tags --long --first-parent --abbrev --exact-match --candidates= --match= --exclude= --always --dirty --broken --no-contains -- --no-debug --no-all --no-tags --no-long --no-first-parent --no-abbrev --no-exact-match --no-candidates --no-match --no-exclude --no-always --no-dirty --no-broken" -__gitcomp_builtin_difftool_default=" --gui --dir-diff --no-prompt --symlinks --tool= --tool-help --trust-exit-code --extcmd= --no-index --index -- --no-gui --no-dir-diff --no-symlinks --no-tool --no-tool-help --no-trust-exit-code --no-extcmd" -__gitcomp_builtin_env__helper_default=" --type= --default= --exit-code --no-default -- --no-exit-code" -__gitcomp_builtin_fast_export_default=" --progress= --signed-tags= --tag-of-filtered-object= --reencode= --export-marks= --import-marks= --import-marks-if-exists= --fake-missing-tagger --full-tree --use-done-feature --no-data --refspec= --anonymize --anonymize-map= --reference-excluded-parents --show-original-ids --mark-tags --data -- --no-progress --no-signed-tags --no-tag-of-filtered-object --no-reencode --no-export-marks --no-import-marks --no-import-marks-if-exists --no-fake-missing-tagger --no-full-tree --no-use-done-feature --no-refspec --no-anonymize --no-reference-excluded-parents --no-show-original-ids --no-mark-tags" -__gitcomp_builtin_fetch_default=" --verbose --quiet --all --set-upstream --append --atomic --upload-pack= --force --multiple --tags --jobs= --prefetch --prune --prune-tags --recurse-submodules --dry-run --write-fetch-head --keep --update-head-ok --progress --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --refetch --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --negotiate-only --filter= --auto-maintenance --auto-gc --show-forced-updates --write-commit-graph --stdin --no-verbose -- --no-quiet --no-all --no-set-upstream --no-append --no-atomic --no-upload-pack --no-force --no-multiple --no-tags --no-jobs --no-prefetch --no-prune --no-prune-tags --no-recurse-submodules --no-dry-run --no-write-fetch-head --no-keep --no-update-head-ok --no-progress --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-negotiate-only --no-filter --no-auto-maintenance --no-auto-gc --no-show-forced-updates --no-write-commit-graph --no-stdin" -__gitcomp_builtin_fmt_merge_msg_default=" --log --message= --into-name= --file= --no-log -- --no-message --no-into-name --no-file" -__gitcomp_builtin_for_each_ref_default=" --shell --perl --python --tcl --count= --format= --color --sort= --points-at= --merged --no-merged --contains --no-contains --ignore-case -- --no-shell --no-perl --no-python --no-tcl --no-count --no-format --no-color --no-sort --no-points-at --no-ignore-case" -__gitcomp_builtin_for_each_repo_default=" --config= --no-config" -__gitcomp_builtin_format_patch_default=" --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --to= --cc= --from --in-reply-to= --attach --inline --thread --signature= --base= --signature-file= --quiet --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-numbered --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-to --no-cc --no-from --no-in-reply-to --no-attach --no-thread --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" -__gitcomp_builtin_fsck_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsck_objects_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsmonitor__daemon_default="" -__gitcomp_builtin_gc_default=" --quiet --prune --aggressive --keep-largest-pack --no-quiet -- --no-prune --no-aggressive --no-keep-largest-pack" -__gitcomp_builtin_grep_default=" --cached --no-index --untracked --exclude-standard --recurse-submodules --invert-match --ignore-case --word-regexp --text --textconv --recursive --max-depth= --extended-regexp --basic-regexp --fixed-strings --perl-regexp --line-number --column --full-name --files-with-matches --name-only --files-without-match --only-matching --count --color --break --heading --context= --before-context= --after-context= --threads= --show-function --function-context --and --or --not --quiet --all-match --index -- --no-cached --no-untracked --no-exclude-standard --no-recurse-submodules --no-invert-match --no-ignore-case --no-word-regexp --no-text --no-textconv --no-recursive --no-extended-regexp --no-basic-regexp --no-fixed-strings --no-perl-regexp --no-line-number --no-column --no-full-name --no-files-with-matches --no-name-only --no-files-without-match --no-only-matching --no-count --no-color --no-break --no-heading --no-context --no-before-context --no-after-context --no-threads --no-show-function --no-function-context --no-or --no-quiet --no-all-match" -__gitcomp_builtin_hash_object_default=" --stdin --stdin-paths --no-filters --literally --path= --filters -- --no-stdin --no-stdin-paths --no-literally --no-path" -__gitcomp_builtin_help_default=" --all --external-commands --aliases --man --web --info --verbose --guides --config --no-external-commands -- --no-aliases --no-man --no-web --no-info --no-verbose" -__gitcomp_builtin_hook_default="" -__gitcomp_builtin_init_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_init_db_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_interpret_trailers_default=" --in-place --trim-empty --where= --if-exists= --if-missing= --only-trailers --only-input --unfold --parse --no-divider --trailer= --divider -- --no-in-place --no-trim-empty --no-where --no-if-exists --no-if-missing --no-only-trailers --no-only-input --no-unfold --no-trailer" -__gitcomp_builtin_log_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_ls_files_default=" --cached --deleted --modified --others --ignored --stage --killed --directory --eol --empty-directory --unmerged --resolve-undo --exclude= --exclude-from= --exclude-per-directory= --exclude-standard --full-name --recurse-submodules --error-unmatch --with-tree= --abbrev --debug --deduplicate --sparse --no-cached -- --no-deleted --no-modified --no-others --no-ignored --no-stage --no-killed --no-directory --no-eol --no-empty-directory --no-unmerged --no-resolve-undo --no-exclude-per-directory --no-recurse-submodules --no-error-unmatch --no-with-tree --no-abbrev --no-debug --no-deduplicate --no-sparse" -__gitcomp_builtin_ls_remote_default=" --quiet --upload-pack= --tags --heads --refs --get-url --sort= --symref --server-option= --no-quiet -- --no-upload-pack --no-tags --no-heads --no-refs --no-get-url --no-sort --no-symref --no-server-option" -__gitcomp_builtin_ls_tree_default=" --long --name-only --name-status --object-only --full-name --full-tree --format= --abbrev --no-full-name -- --no-full-tree --no-abbrev" -__gitcomp_builtin_merge_default=" --stat --summary --log --squash --commit --edit --cleanup= --ff --ff-only --rerere-autoupdate --verify-signatures --strategy= --strategy-option= --message= --file --into-name= --verbose --quiet --abort --quit --continue --allow-unrelated-histories --progress --gpg-sign --autostash --overwrite-ignore --signoff --no-verify --verify -- --no-stat --no-summary --no-log --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-rerere-autoupdate --no-verify-signatures --no-strategy --no-strategy-option --no-message --no-into-name --no-verbose --no-quiet --no-abort --no-quit --no-continue --no-allow-unrelated-histories --no-progress --no-gpg-sign --no-autostash --no-overwrite-ignore --no-signoff" -__gitcomp_builtin_merge_base_default=" --all --octopus --independent --is-ancestor --fork-point --no-all" -__gitcomp_builtin_merge_file_default=" --stdout --diff3 --zdiff3 --ours --theirs --union --marker-size= --quiet --no-stdout -- --no-diff3 --no-zdiff3 --no-ours --no-theirs --no-union --no-marker-size --no-quiet" -__gitcomp_builtin_mktree_default=" --missing --batch --no-missing -- --no-batch" -__gitcomp_builtin_multi_pack_index_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_mv_default=" --verbose --dry-run --sparse --no-verbose -- --no-dry-run --no-sparse" -__gitcomp_builtin_name_rev_default=" --name-only --tags --refs= --exclude= --all --stdin --annotate-stdin --undefined --always --no-name-only -- --no-tags --no-refs --no-exclude --no-all --no-stdin --no-annotate-stdin --no-undefined --no-always" -__gitcomp_builtin_notes_default=" --ref= --no-ref" -__gitcomp_builtin_pack_objects_default=" --quiet --progress --all-progress --all-progress-implied --index-version= --max-pack-size= --local --incremental --window= --window-memory= --depth= --reuse-delta --reuse-object --delta-base-offset --threads= --non-empty --revs --unpacked --all --reflog --indexed-objects --stdin-packs --stdout --include-tag --keep-unreachable --pack-loose-unreachable --unpack-unreachable --sparse --thin --shallow --honor-pack-keep --keep-pack= --compression= --keep-true-parents --use-bitmap-index --write-bitmap-index --filter= --missing= --exclude-promisor-objects --delta-islands --uri-protocol= --no-quiet -- --no-progress --no-all-progress --no-all-progress-implied --no-local --no-incremental --no-window --no-depth --no-reuse-delta --no-reuse-object --no-delta-base-offset --no-threads --no-non-empty --no-revs --no-stdin-packs --no-stdout --no-include-tag --no-keep-unreachable --no-pack-loose-unreachable --no-unpack-unreachable --no-sparse --no-thin --no-shallow --no-honor-pack-keep --no-keep-pack --no-compression --no-keep-true-parents --no-use-bitmap-index --no-write-bitmap-index --no-filter --no-exclude-promisor-objects --no-delta-islands --no-uri-protocol" -__gitcomp_builtin_pack_refs_default=" --all --prune --no-all -- --no-prune" -__gitcomp_builtin_pickaxe_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_prune_default=" --dry-run --verbose --progress --expire= --exclude-promisor-objects --no-dry-run -- --no-verbose --no-progress --no-expire --no-exclude-promisor-objects" -__gitcomp_builtin_prune_packed_default=" --dry-run --quiet --no-dry-run -- --no-quiet" -__gitcomp_builtin_pull_default=" --verbose --quiet --progress --recurse-submodules --rebase --stat --log --signoff --squash --commit --edit --cleanup= --ff --ff-only --verify --verify-signatures --autostash --strategy= --strategy-option= --gpg-sign --allow-unrelated-histories --all --append --upload-pack= --force --tags --prune --jobs --dry-run --keep --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --show-forced-updates --set-upstream --no-verbose -- --no-quiet --no-progress --no-recurse-submodules --no-rebase --no-stat --no-log --no-signoff --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-verify --no-verify-signatures --no-autostash --no-strategy --no-strategy-option --no-gpg-sign --no-allow-unrelated-histories --no-all --no-append --no-upload-pack --no-force --no-tags --no-prune --no-jobs --no-dry-run --no-keep --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-show-forced-updates --no-set-upstream" -__gitcomp_builtin_push_default=" --verbose --quiet --repo= --all --mirror --delete --tags --dry-run --porcelain --force --force-with-lease --force-if-includes --recurse-submodules= --receive-pack= --exec= --set-upstream --progress --prune --no-verify --follow-tags --signed --atomic --push-option= --ipv4 --ipv6 --verify -- --no-verbose --no-quiet --no-repo --no-all --no-mirror --no-delete --no-tags --no-dry-run --no-porcelain --no-force --no-force-with-lease --no-force-if-includes --no-recurse-submodules --no-receive-pack --no-exec --no-set-upstream --no-progress --no-prune --no-follow-tags --no-signed --no-atomic --no-push-option --no-ipv4 --no-ipv6" -__gitcomp_builtin_range_diff_default=" --creation-factor= --no-dual-color --notes --left-only --right-only --patch --no-patch --unified --function-context --raw --patch-with-raw --patch-with-stat --numstat --shortstat --dirstat --cumulative --dirstat-by-file --check --summary --name-only --name-status --stat --stat-width= --stat-name-width= --stat-graph-width= --stat-count= --compact-summary --binary --full-index --color --ws-error-highlight= --abbrev --src-prefix= --dst-prefix= --line-prefix= --no-prefix --inter-hunk-context= --output-indicator-new= --output-indicator-old= --output-indicator-context= --break-rewrites --find-renames --irreversible-delete --find-copies --find-copies-harder --no-renames --rename-empty --follow --minimal --ignore-all-space --ignore-space-change --ignore-space-at-eol --ignore-cr-at-eol --ignore-blank-lines --ignore-matching-lines= --indent-heuristic --patience --histogram --diff-algorithm= --anchored= --word-diff --word-diff-regex= --color-words --color-moved --color-moved-ws= --relative --text --exit-code --quiet --ext-diff --textconv --ignore-submodules --submodule --ita-invisible-in-index --ita-visible-in-index --pickaxe-all --pickaxe-regex --rotate-to= --skip-to= --find-object= --diff-filter= --output= --dual-color -- --no-creation-factor --no-notes --no-left-only --no-right-only --no-function-context --no-compact-summary --no-full-index --no-color --no-abbrev --no-find-copies-harder --no-rename-empty --no-follow --no-minimal --no-ignore-matching-lines --no-indent-heuristic --no-color-moved --no-color-moved-ws --no-relative --no-text --no-exit-code --no-quiet --no-ext-diff --no-textconv" -__gitcomp_builtin_read_tree_default=" --index-output= --empty --verbose --trivial --aggressive --reset --prefix= --exclude-per-directory= --dry-run --no-sparse-checkout --debug-unpack --recurse-submodules --quiet --sparse-checkout -- --no-empty --no-verbose --no-trivial --no-aggressive --no-reset --no-dry-run --no-debug-unpack --no-recurse-submodules --no-quiet" -__gitcomp_builtin_rebase_default=" --onto= --keep-base --no-verify --quiet --verbose --no-stat --signoff --committer-date-is-author-date --reset-author-date --ignore-whitespace --whitespace= --force-rebase --no-ff --continue --skip --abort --quit --edit-todo --show-current-patch --apply --merge --interactive --rerere-autoupdate --empty= --autosquash --gpg-sign --autostash --exec= --rebase-merges --fork-point --strategy= --strategy-option= --root --reschedule-failed-exec --reapply-cherry-picks --verify --stat --ff -- --no-onto --no-keep-base --no-quiet --no-verbose --no-signoff --no-committer-date-is-author-date --no-reset-author-date --no-ignore-whitespace --no-whitespace --no-force-rebase --no-rerere-autoupdate --no-autosquash --no-gpg-sign --no-autostash --no-exec --no-rebase-merges --no-fork-point --no-strategy --no-strategy-option --no-root --no-reschedule-failed-exec --no-reapply-cherry-picks" -__gitcomp_builtin_receive_pack_default=" --quiet --no-quiet" -__gitcomp_builtin_reflog_default="" -__gitcomp_builtin_remote_default=" --verbose --no-verbose" -__gitcomp_builtin_repack_default=" --quiet --local --write-bitmap-index --delta-islands --unpack-unreachable= --keep-unreachable --window= --window-memory= --depth= --threads= --max-pack-size= --pack-kept-objects --keep-pack= --geometric= --write-midx --no-quiet -- --no-local --no-write-bitmap-index --no-delta-islands --no-unpack-unreachable --no-keep-unreachable --no-window --no-window-memory --no-depth --no-threads --no-max-pack-size --no-pack-kept-objects --no-keep-pack --no-geometric --no-write-midx" -__gitcomp_builtin_replace_default=" --list --delete --edit --graft --convert-graft-file --raw --format= --no-raw -- --no-format" -__gitcomp_builtin_rerere_default=" --rerere-autoupdate --no-rerere-autoupdate" -__gitcomp_builtin_reset_default=" --quiet --no-refresh --mixed --soft --hard --merge --keep --recurse-submodules --patch --intent-to-add --pathspec-from-file= --pathspec-file-nul --refresh -- --no-quiet --no-mixed --no-soft --no-hard --no-merge --no-keep --no-recurse-submodules --no-patch --no-intent-to-add --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_restore_default=" --source= --staged --worktree --ignore-unmerged --overlay --quiet --recurse-submodules --progress --merge --conflict= --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-source -- --no-staged --no-worktree --no-ignore-unmerged --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_revert_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign" -__gitcomp_builtin_rm_default=" --dry-run --quiet --cached --ignore-unmatch --sparse --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-quiet --no-cached --no-ignore-unmatch --no-sparse --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_send_pack_default=" --verbose --quiet --receive-pack= --exec= --remote= --all --dry-run --mirror --force --signed --push-option= --progress --thin --atomic --stateless-rpc --stdin --helper-status --force-with-lease --force-if-includes --no-verbose -- --no-quiet --no-receive-pack --no-exec --no-remote --no-all --no-dry-run --no-mirror --no-force --no-signed --no-push-option --no-progress --no-thin --no-atomic --no-stateless-rpc --no-stdin --no-helper-status --no-force-with-lease --no-force-if-includes" -__gitcomp_builtin_shortlog_default=" --committer --numbered --summary --email --group= --no-committer -- --no-numbered --no-summary --no-email --no-group" -__gitcomp_builtin_show_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_show_branch_default=" --all --remotes --color --more --list --no-name --current --sha1-name --merge-base --independent --topo-order --topics --sparse --date-order --reflog --name -- --no-all --no-remotes --no-color --no-more --no-list --no-current --no-sha1-name --no-merge-base --no-independent --no-topo-order --no-topics --no-sparse --no-date-order" -__gitcomp_builtin_show_index_default=" --object-format= --no-object-format" -__gitcomp_builtin_show_ref_default=" --tags --heads --verify --head --dereference --hash --abbrev --quiet --exclude-existing --no-tags -- --no-heads --no-verify --no-head --no-dereference --no-hash --no-abbrev --no-quiet" -__gitcomp_builtin_sparse_checkout_default="" -__gitcomp_builtin_stage_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_stash_default="" -__gitcomp_builtin_status_default=" --verbose --short --branch --show-stash --ahead-behind --porcelain --long --null --untracked-files --ignored --ignore-submodules --column --no-renames --find-renames --renames -- --no-verbose --no-short --no-branch --no-show-stash --no-ahead-behind --no-porcelain --no-long --no-null --no-untracked-files --no-ignored --no-ignore-submodules --no-column" -__gitcomp_builtin_stripspace_default=" --strip-comments --comment-lines" -__gitcomp_builtin_switch_default=" --create= --force-create= --guess --discard-changes --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --no-create -- --no-force-create --no-guess --no-discard-changes --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees" -__gitcomp_builtin_symbolic_ref_default=" --quiet --delete --short --no-quiet -- --no-delete --no-short" -__gitcomp_builtin_tag_default=" --list --delete --verify --annotate --message= --file= --edit --sign --cleanup= --local-user= --force --create-reflog --column --contains --no-contains --merged --no-merged --sort= --points-at --format= --color --ignore-case -- --no-annotate --no-file --no-edit --no-sign --no-cleanup --no-local-user --no-force --no-create-reflog --no-column --no-sort --no-points-at --no-format --no-color --no-ignore-case" -__gitcomp_builtin_update_index_default=" --ignore-submodules --add --replace --remove --unmerged --refresh --really-refresh --cacheinfo --chmod= --assume-unchanged --no-assume-unchanged --skip-worktree --no-skip-worktree --ignore-skip-worktree-entries --info-only --force-remove --stdin --index-info --unresolve --again --ignore-missing --verbose --clear-resolve-undo --index-version= --split-index --untracked-cache --test-untracked-cache --force-untracked-cache --force-write-index --fsmonitor --fsmonitor-valid --no-fsmonitor-valid -- --no-ignore-submodules --no-add --no-replace --no-remove --no-unmerged --no-ignore-skip-worktree-entries --no-info-only --no-force-remove --no-ignore-missing --no-verbose --no-index-version --no-split-index --no-untracked-cache --no-test-untracked-cache --no-force-untracked-cache --no-force-write-index --no-fsmonitor" -__gitcomp_builtin_update_ref_default=" --no-deref --stdin --create-reflog --deref -- --no-stdin --no-create-reflog" -__gitcomp_builtin_update_server_info_default=" --force --no-force" -__gitcomp_builtin_upload_pack_default=" --stateless-rpc --strict --timeout= --no-stateless-rpc -- --no-strict --no-timeout" -__gitcomp_builtin_verify_commit_default=" --verbose --raw --no-verbose -- --no-raw" -__gitcomp_builtin_verify_pack_default=" --verbose --stat-only --object-format= --no-verbose -- --no-stat-only --no-object-format" -__gitcomp_builtin_verify_tag_default=" --verbose --raw --format= --no-verbose -- --no-raw --no-format" -__gitcomp_builtin_version_default=" --build-options --no-build-options" -__gitcomp_builtin_whatchanged_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_write_tree_default=" --missing-ok --prefix= --no-missing-ok -- --no-prefix" -__gitcomp_builtin_send_email_default="--sender= --from= --smtp-auth= --8bit-encoding= --no-format-patch --no-bcc --no-suppress-from --no-annotate --relogin-delay= --no-cc --no-signed-off-cc --no-signed-off-by-cc --no-chain-reply-to --smtp-debug= --smtp-domain= --chain-reply-to --dry-run --compose --bcc= --smtp-user= --thread --cc-cover --identity= --to= --reply-to= --no-cc-cover --suppress-cc= --to-cmd= --smtp-server= --smtp-ssl-cert-path= --no-thread --smtp-server-option= --quiet --batch-size= --envelope-sender= --smtp-ssl --no-to --validate --format-patch --suppress-from --cc= --compose-encoding= --to-cover --in-reply-to= --annotate --smtp-encryption= --cc-cmd= --smtp-server-port= --smtp-pass= --signed-off-cc --signed-off-by-cc --no-xmailer --subject= --no-to-cover --confirm= --transfer-encoding= --no-smtp-auth --sendmail-cmd= --no-validate --no-identity --dump-aliases --xmailer --force --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" - -__gitcomp_builtin_get_default () -{ - eval "test -n \"\$${1}_default\" && echo \"\$${1}_default\"" -} - # This function is equivalent to # # __gitcomp_opts "$(git xxx --git-completion-helper) ..." @@ -457,11 +353,9 @@ __gitcomp_builtin () else completion_helper="--git-completion-helper" fi - completion="$(__git ${cmd/_/ } $completion_helper || - __gitcomp_builtin_get_default $var)" || return # leading and trailing spaces are significant to make # option removal work correctly. - options=" $incl $completion " + options=" $incl $(__git ${cmd/_/ } $completion_helper) " || return for i in $excl; do options="${options/ $i / }" @@ -604,6 +498,7 @@ __git_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/heads/$cur_*" "refs/heads/$cur_*/**" } @@ -617,6 +512,7 @@ __git_remote_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$cur_*" "refs/remotes/$cur_*/**" } @@ -627,6 +523,7 @@ __git_tags () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/tags/$cur_*" "refs/tags/$cur_*/**" } @@ -646,6 +543,7 @@ __git_dwim_remote_heads () # but only output if the branch name is unique __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ --sort="refname:strip=3" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/*/$cur_*" "refs/remotes/*/$cur_*/**" | \ uniq -u } @@ -670,6 +568,7 @@ __git_refs () local format refs local pfx="${3-}" cur_="${4-$cur}" sfx="${5-}" local match="${4-}" + local umatch="${4-}" local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers __git_find_repo_path @@ -693,12 +592,19 @@ __git_refs () fi fi + if test "${GIT_COMPLETION_IGNORE_CASE:+1}" = "1" + then + # uppercase with tr instead of ${match,^^} for bash 3.2 compatibility + umatch=$(echo "$match" | tr a-z A-Z 2>/dev/null || echo "$match") + fi + if [ "$list_refs_from" = path ]; then if [[ "$cur_" == ^* ]]; then pfx="$pfx^" fer_pfx="$fer_pfx^" cur_=${cur_#^} match=${match#^} + umatch=${umatch#^} fi case "$cur_" in refs|refs/*) @@ -709,7 +615,7 @@ __git_refs () *) for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD REBASE_HEAD CHERRY_PICK_HEAD; do case "$i" in - $match*) + $match*|$umatch*) if [ -e "$dir/$i" ]; then echo "$pfx$i$sfx" fi @@ -723,6 +629,7 @@ __git_refs () ;; esac __git_dir="$dir" __git for-each-ref --format="$fer_pfx%($format)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "${refs[@]}" if [ -n "$track" ]; then __git_dwim_remote_heads "$pfx" "$match" "$sfx" @@ -742,15 +649,16 @@ __git_refs () *) if [ "$list_refs_from" = remote ]; then case "HEAD" in - $match*) echo "${pfx}HEAD$sfx" ;; + $match*|$umatch*) echo "${pfx}HEAD$sfx" ;; esac __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$remote/$match*" \ "refs/remotes/$remote/$match*/**" else local query_symref case "HEAD" in - $match*) query_symref="HEAD" ;; + $match*|$umatch*) query_symref="HEAD" ;; esac __git ls-remote "$remote" $query_symref \ "refs/tags/$match*" "refs/heads/$match*" \ @@ -888,7 +796,6 @@ __git_list_merge_strategies () }' } -__git_merge_strategies_default='octopus ours recursive resolve subtree' __git_merge_strategies= # 'git merge -s help' (and thus detection of the merge strategy # list) fails, unfortunately, if run outside of any git working @@ -898,8 +805,7 @@ __git_merge_strategies= __git_compute_merge_strategies () { test -n "$__git_merge_strategies" || - { __git_merge_strategies=$(__git_list_merge_strategies); - __git_merge_strategies="${__git_merge_strategies:-__git_merge_strategies_default}"; } + __git_merge_strategies=$(__git_list_merge_strategies) } __git_merge_strategy_options="ours theirs subtree subtree= patience @@ -2281,7 +2187,7 @@ _git_reflog () fi } -__git_send_email_options="--no-cc-cover --cc= --no-bcc --force --relogin-delay= --to= --suppress-cc= --no-annotate --no-chain-reply-to --sendmail-cmd= --no-identity --transfer-encoding= --validate --no-smtp-auth --confirm= --no-format-patch --reply-to= --smtp-pass= --smtp-server= --annotate --envelope-sender= --no-validate --dry-run --no-thread --smtp-debug= --no-to --thread --no-xmailer --identity= --no-signed-off-cc --no-signed-off-by-cc --smtp-domain= --to-cover --8bit-encoding= --bcc= --smtp-ssl-cert-path= --smtp-user= --cc-cmd= --to-cmd= --no-cc --smtp-server-option= --in-reply-to= --subject= --batch-size= --smtp-auth= --compose --smtp-server-port= --xmailer --no-to-cover --chain-reply-to --smtp-encryption= --dump-aliases --quiet --smtp-ssl --signed-off-cc --signed-off-by-cc --suppress-from --compose-encoding= --no-suppress-from --sender= --from= --format-patch --cc-cover --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" +__gitcomp_builtin_send_email_default="--8bit-encoding= --add-header= --annotate --attach --base= --batch-size= --bcc= --binary --cc-cmd= --cc-cover --cc= --chain-reply-to --compose --compose-encoding= --confirm= --cover-from-description= --cover-letter --creation-factor= --dry-run --dump-aliases --envelope-sender= --filename-max-length= --force --force-in-body-from --format-patch --from --from= --identity= --ignore-if-in-upstream --in-reply-to= --inline --interdiff= --keep-subject --numbered --numbered-files --output-directory= --progress --quiet --range-diff= --relogin-delay= --reply-to= --reroll-count= --rfc --sender= --sendmail-cmd= --signature-file= --signature= --signed-off-by-cc --signed-off-cc --signoff --smtp-auth= --smtp-debug= --smtp-domain= --smtp-encryption= --smtp-pass= --smtp-server-option= --smtp-server-port= --smtp-server= --smtp-ssl --smtp-ssl-cert-path= --smtp-user= --start-number= --stdout --subject-prefix= --subject= --suffix= --suppress-cc= --suppress-from --thread --to-cmd= --to-cover --to= --transfer-encoding= --v= --validate --xmailer --zero-commit -- --no-add-header --no-annotate --no-attach --no-base --no-bcc --no-binary --no-cc --no-cc-cover --no-chain-reply-to --no-cover-from-description --no-cover-letter --no-creation-factor --no-filename-max-length --no-force-in-body-from --no-format-patch --no-from --no-identity --no-ignore-if-in-upstream --no-in-reply-to --no-interdiff --no-numbered --no-numbered-files --no-progress --no-quiet --no-range-diff --no-reroll-count --no-signature --no-signature-file --no-signed-off-by-cc --no-signed-off-cc --no-signoff --no-smtp-auth --no-start-number --no-stat --no-stdout --no-suffix --no-suppress-from --no-thread --no-to --no-to-cover --no-validate --no-xmailer --no-zero-commit" __git_send_email_confirm_options="always never auto cc compose" __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" @@ -2321,7 +2227,11 @@ _git_send_email () return ;; --*) - __gitcomp_builtin send-email "$__git_send_email_options $__git_format_patch_extra_options" + # Older versions of git send-email don't have all the options + git send-email --git-completion-helper | grep -q annotate || + __gitcomp_builtin_send_email=$__gitcomp_builtin_send_email_default + + __gitcomp_builtin send-email "$__git_format_patch_extra_options" return ;; esac @@ -2456,7 +2366,25 @@ __git_config_vars= __git_compute_config_vars () { test -n "$__git_config_vars" || - __git_config_vars="$(git help --config-for-completion | sort -u)" + __git_config_vars="$(git help --config-for-completion)" +} + +__git_compute_config_sections_old () +{ + __git_compute_config_vars + echo "$__git_config_vars" | + awk -F . '{ dict[$1] = 1 } END { for (e in dict) print e }' +} + +__git_config_sections= +__git_compute_config_sections () +{ + test -n "$__git_config_sections" || + __git_config_sections="$( + git help --config-sections-for-completion > /dev/null 2>&1 && + git help --config-sections-for-completion || + __git_compute_config_sections_old + )" } # Completes possible values of various configuration variables. @@ -2670,16 +2598,8 @@ __git_complete_config_variable_name () __gitcomp "$__git_config_vars" "" "$cur_" "$sfx" ;; *) - __git_compute_config_vars - __gitcomp_nl "$(echo "$__git_config_vars" | - awk -F . '{ - sections[$1] = 1 - } - END { - for (s in sections) - print s "." - } - ')" "" "$cur_" "" + __git_compute_config_sections + __gitcomp_nl "$__git_config_sections" "" "$cur_" "." ;; esac } @@ -3628,43 +3548,6 @@ __git_complete () ___git_complete $1 $func } -if ! git --list-cmds=main >/dev/null 2>&1; then - - declare -A __git_cmds - __git_cmds[list-complete]="apply blame cherry config difftool fsck help instaweb mergetool prune reflog remote repack replace request-pull send-email show-branch stage whatchanged" - __git_cmds[list-guide]="attributes cli core-tutorial credentials cvs-migration diffcore everyday faq glossary hooks ignore mailmap modules namespaces remote-helpers repository-layout revisions submodules tutorial tutorial-2 workflows" - __git_cmds[list-mainporcelain]="add am archive bisect branch bundle checkout cherry-pick citool clean clone commit describe diff fetch format-patch gc grep gui init log maintenance merge mv notes pull push range-diff rebase reset restore revert rm shortlog show sparse-checkout stash status submodule switch tag worktree gitk" - __git_cmds[main]="add add--interactive am annotate apply archimport archive bisect bisect--helper blame branch bugreport bundle cat-file check-attr check-ignore check-mailmap check-ref-format checkout checkout--worker checkout-index cherry cherry-pick citool clean clone column commit commit-graph commit-tree config count-objects credential credential-cache credential-cache--daemon credential-store cvsexportcommit cvsimport cvsserver daemon describe diff diff-files diff-index diff-tree difftool difftool--helper env--helper fast-export fast-import fetch fetch-pack filter-branch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc get-tar-commit-id grep gui gui--askpass hash-object help hook http-backend http-fetch http-push imap-send index-pack init init-db instaweb interpret-trailers legacy-rebase legacy-stash log ls-files ls-remote ls-tree mailinfo mailsplit maintenance merge merge-base merge-file merge-index merge-octopus merge-one-file merge-ours merge-recursive merge-recursive-ours merge-recursive-theirs merge-resolve merge-subtree merge-tree mergetool mktag mktree multi-pack-index mv name-rev notes p4 pack-objects pack-redundant pack-refs patch-id pickaxe prune prune-packed pull push quiltimport range-diff read-tree rebase rebase--helper receive-pack reflog relink remote remote-ext remote-fd remote-ftp remote-ftps remote-http remote-https remote-testsvn repack replace request-pull rerere reset restore rev-list rev-parse revert rm send-email send-pack serve sh-i18n--envsubst shell shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace submodule submodule--helper svn switch symbolic-ref tag unpack-file unpack-objects update-index update-ref update-server-info upload-archive upload-archive--writer upload-pack var verify-commit verify-pack verify-tag version web--browse whatchanged worktree write-tree" - __git_cmds[others]="" - __git_cmds[parseopt]="add am apply archive bisect--helper blame branch bugreport cat-file check-attr check-ignore check-mailmap checkout checkout--worker checkout-index cherry cherry-pick clean clone column commit commit-graph config count-objects credential-cache credential-cache--daemon credential-store describe difftool env--helper fast-export fetch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc grep hash-object help hook init init-db interpret-trailers log ls-files ls-remote ls-tree merge merge-base merge-file mktree multi-pack-index mv name-rev notes pack-objects pack-refs pickaxe prune prune-packed pull push range-diff read-tree rebase receive-pack reflog remote repack replace rerere reset restore revert rm send-pack shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace switch symbolic-ref tag update-index update-ref update-server-info upload-pack verify-commit verify-pack verify-tag version whatchanged write-tree " - - # Override __git - __git () - { - case "$1" in - --list-cmds=*) - while read -r -d ',' x; do - case "$x" in - nohelpers) - ;; - alias) - ;; - config) - ;; - *) - echo ${__git_cmds[$x]} - ;; - esac - done <<< "${1##--list-cmds=}," - return - ;; - esac - git ${__git_C_args:+"${__git_C_args[@]}"} \ - ${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null - } - -fi - ___git_complete git __git_main ___git_complete gitk __gitk_main diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index 1435548e00468..76ee4ab1e5496 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -84,6 +84,10 @@ # single '?' character by setting GIT_PS1_COMPRESSSPARSESTATE, or omitted # by setting GIT_PS1_OMITSPARSESTATE. # +# If you would like to see a notification on the prompt when there are +# unresolved conflicts, set GIT_PS1_SHOWCONFLICTSTATE to "yes". The +# prompt will include "|CONFLICT". +# # If you would like to see more information about the identity of # commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE # to one of these values: @@ -96,9 +100,7 @@ # # If you would like a colored hint about the current dirty state, set # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on -# the colored output of "git status -sb" and are available only when -# using __git_ps1 for PROMPT_COMMAND or precmd in Bash, -# but always available in Zsh. +# the colored output of "git status -sb". # # If you would like __git_ps1 to do nothing in the case when the current # directory is set up to be ignored by git, then set @@ -255,12 +257,12 @@ __git_ps1_colorize_gitstring () local c_lblue='%F{blue}' local c_clear='%f' else - # Using \[ and \] around colors is necessary to prevent + # Using \001 and \002 around colors is necessary to prevent # issues with command line editing/browsing/completion! - local c_red='\[\e[31m\]' - local c_green='\[\e[32m\]' - local c_lblue='\[\e[1;34m\]' - local c_clear='\[\e[0m\]' + local c_red=$'\001\e[31m\002' + local c_green=$'\001\e[32m\002' + local c_lblue=$'\001\e[1;34m\002' + local c_clear=$'\001\e[0m\002' fi local bad_color=$c_red local ok_color=$c_green @@ -508,6 +510,12 @@ __git_ps1 () r="$r $step/$total" fi + local conflict="" # state indicator for unresolved conflicts + if [[ "${GIT_PS1_SHOWCONFLICTSTATE}" == "yes" ]] && + [[ $(git ls-files --unmerged 2>/dev/null) ]]; then + conflict="|CONFLICT" + fi + local w="" local i="" local s="" @@ -564,15 +572,12 @@ __git_ps1 () b="\${__git_ps1_branch_name}" fi - # NO color option unless in PROMPT_COMMAND mode or it's Zsh if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then - if [ $pcmode = yes ] || [ -n "${ZSH_VERSION-}" ]; then - __git_ps1_colorize_gitstring - fi + __git_ps1_colorize_gitstring fi local f="$h$w$i$s$u$p" - local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}" + local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}${conflict}" if [ $pcmode = yes ]; then if [ "${__git_printf_supports_v-}" != yes ]; then From 667fdbf7746acc90aa29b316ef711180e7917aa2 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Thu, 28 Dec 2023 22:05:37 +0100 Subject: [PATCH 130/212] feat(z): update to version afaf2965 (#12136) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> --- .github/dependencies.yml | 2 +- plugins/z/MANUAL.md | 18 ++++++++++---- plugins/z/img/demo.gif | Bin 0 -> 1271520 bytes plugins/z/z.plugin.zsh | 52 +++++++++++++++++++++++++-------------- 4 files changed, 47 insertions(+), 25 deletions(-) create mode 100644 plugins/z/img/demo.gif diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 4d5a8fa802b10..6d138736ca27a 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -10,7 +10,7 @@ dependencies: plugins/z: branch: master repo: agkozak/zsh-z - version: 6bfe418332866d15373392164df11b4fbec2083f + version: afaf2965b41fdc6ca66066e09382726aa0b6aa04 precopy: | set -e test -e README.md && mv -f README.md MANUAL.md diff --git a/plugins/z/MANUAL.md b/plugins/z/MANUAL.md index d367c3026b7a0..67a207dbb5977 100644 --- a/plugins/z/MANUAL.md +++ b/plugins/z/MANUAL.md @@ -4,6 +4,8 @@ ![Zsh version 4.3.11 and higher](img/zsh_4.3.11_plus.svg) [![GitHub stars](https://img.shields.io/github/stars/agkozak/zsh-z.svg)](https://github.com/agkozak/zsh-z/stargazers) +![Zsh-z demo](img/demo.gif) + Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently -- but most often a combination of the two (a concept known as ["frecency"](https://en.wikipedia.org/wiki/Frecency)). It works by keeping track of when you go to directories and how much time you spend in them. It is then in the position to guess where you want to go when you type a partial string, e.g., `z src` might take you to `~/src/zsh`. `z zsh` might also get you there, and `z c/z` might prove to be even more specific -- it all depends on your habits and how much time you have been using Zsh-z to build up a database. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using `cd`. Zsh-z is a native Zsh port of [rupa/z](https://github.com/rupa/z), a tool written for `bash` and Zsh that uses embedded `awk` scripts to do the heavy lifting. It was quite possibly my most used command line tool for a couple of years. I decided to translate it, `awk` parts and all, into pure Zsh script, to see if by eliminating calls to external tools (`awk`, `sort`, `date`, `sed`, `mv`, `rm`, and `chown`) and reducing forking through subshells I could make it faster. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using `rupa/z`. @@ -32,6 +34,12 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
Here are the latest features and updates. +- August 24, 2023 + + Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja). +- August 23, 2023 + + Better logic for loading `zsh/files` (props @z0rc) +- August 2, 2023 + + Zsh-z still uses the `zsh/files` module when possible, but will fall back on the standard `chown`, `mv`, and `rm` commands in its absence. - April 27, 2023 + Zsh-z now allows the user to specify the directory-changing command using the `ZSHZ_CD` environment variable (default: `builtin cd`; props @basnijholt). - January 27, 2023 @@ -64,7 +72,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d + Temporarily disabling use of `print -v`, which seems to be mangling CJK multibyte strings. - July 27, 2021 + Internal escaping of path names now works with older versions of ZSH. - + Zsh-z now detects and discards any incomplete or incorrectly formattted database entries. + + Zsh-z now detects and discards any incomplete or incorrectly formatted database entries. - July 10, 2021 + Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`. - June 25, 2021 @@ -85,7 +93,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d - January 11, 2021 + Major refactoring of the code. + `z -lr` and `z -lt` work as expected. - + `EXTENDED_GLOB` has been disabled within the plugin to accomodate old-fashioned Windows directories with names such as `Progra~1`. + + `EXTENDED_GLOB` has been disabled within the plugin to accommodate old-fashioned Windows directories with names such as `Progra~1`. + Removed `zshelldoc` documentation. - January 6, 2021 + I have corrected the frecency routine so that it matches `rupa/z`'s math, but for the present, Zsh-z will continue to display ranks as 1/10000th of what they are in `rupa/z` -- [they had to multiply theirs by 10000](https://github.com/rupa/z/commit/f1f113d9bae9effaef6b1e15853b5eeb445e0712) to work around `bash`'s inadequacies at dealing with decimal fractions. @@ -102,13 +110,13 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d ### General observations -This script can be installed simply by downloading it and sourcing it from your `.zshrc`: +This plugin can be installed simply by putting the various files in a directory together and by sourcing `zsh-z.plugin.zsh` in your `.zshrc`: source /path/to/zsh-z.plugin.zsh -For tab completion to work, you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put +For tab completion to work, `_zshz` *must* be in the same directory as `zsh-z.plugin.zsh`, and you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put - autoload -U compinit && compinit + autoload -U compinit; compinit in your .zshrc somewhere below where you source `zsh-z.plugin.zsh`. diff --git a/plugins/z/img/demo.gif b/plugins/z/img/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..247f52f4d2667211f897fdbe2fb10d7b696b3e0a GIT binary patch literal 1271520 zcmeFZXHb*f+pm44L8x975fLyT(m_C~6cc(k^bP^(paw-c7<$Km^d=(GRho1#^eQ5t z(hWtaD%cCkzP#`I|Fr!)v-gMh!#nT1nPD<8`4AxMTx%WY@jG?&v=x<{4UmNh67bK1 z?~uV*%iK%@hu4ykltRFuAM<@jqQs%+KVQI~7so@-Lc;ulLVR&AUc^0!`~5ra+qVy2 zzwQf*o)Q&1EsIt5zI(?s=(_kBAsIzUVUbgxKSza^h9@LmaCEYXe)deu$rB_yhu!btm!A?=p zh9xDogF`-@T^_o+>J5z-RW+1M-SCl5o|u@*U9PE$t&MeeSCdnd{rNMdqvH|LPjhQ4 z%;t*K^=y9&FH`qO*N-3HTHXkI_by^-Ibd<|`ReM@=;$Rm4YlXbuLTzbxfkYF*WB}p z^HA52tgLhl4byW>P0Gr;`R2`voxPHl)|sT_*bg5_1%=k6a*~;u@uOx}LwmjX`RnSo zmRc8ZnOPRb1Or3Ev-bYBV`GEfKDdaXq3Z#}7cVC7mD_v!xTd7wLnx2!>@8hfRNdU2 zLT`tB`4UAWdS9)t3utenP};6$_%$@tUd+k7cklM?k~}JP{=(JEeSKXQUDbT<-MxRG za2_j8aJE-fQ{3O*PD?Yfj*g6q4s*Hakey>`MGCjJF|~?}`18;G{~!N%e*yF%fIxHW z)|K=`quE65hwJY2#e=8x3w7&D2a-9@dM^&w-yOP%(MaOfYbYDJC2Ur0Khkh-EJy0% zXrW$X`I7?0Yuk$>jTKLCW25PL^qVT5-POG%>M+_=HC=(ft6!x5sQP)0b))yv=%bpK z4+(uqJO<6RbB&(U)ed9L_ZM1-YokR5Ef1DDf{^_YZU;5BTmTj@(+6LTDI ztzR1=pE4*mY-@NumV4G`dAzN0<7tUTGOtm4)7EsQS&ie9_D4G}>n@HJ8+A0lU1+_w zv;3r^<^3y4G{Z^b&er|4;ag%(6P;}zHzx0%;pw^e0|A?DWSF#ZjtqRy%M*6^viR4< zd+!-!Y{r)><55xTjqgd%wC%bg%VgKm{8DA*)ED=M|a6 zp!P3qu&^*Q*HJ>?vXmb7BNQuVT9kds6evZZXuuTqHqwEc7#7+9v(83{K06gvKR1BaVCwsQTr|MplSwo!OpquVylh+P(7a%r zw3H>m9P$>S!6~hcfYE@Ga1PlitGYMtMypNKyzj#pMy0>H*Ioo5TW4h)bk!)VnUemQ&_XbWfO|1fxrc8^5m^En^_h4kdU z$Q!em2W-)7dr=D*D`Q~fWFEKJQ|2Gy6h7u^DwR*>LhI0&!}+GOn}~1rI}Jzq033ba z;HWyxw2lzPrK@YgpUFYFKX^>m+5}6>k&mYwS$~G7oLc2@qU?{HIrFY9%2;2AUYF_& zXXt&uC$MPXkBw&bWv_d+H0#Xr_0^}B=d%IKIw_h4twB{J1ly0kUC) zlo)vKpilMTKuaPF8-$fCgO#E5A#j<=rERxxyK%d?qoX z6kwVO(0#zRa#Po{_x7_iem`M=_Hgeg{CF7wJ=YUGRr!e|!cL-jy@jJU#E@A4IDBt3 z?SnVrj-Z-!l9@ok+{{r@TR5MxpA`S`WlKQ3P?Y9c4eWqm4)DyrPYaqEEgCk1BWb9l z3!nwtfv(^v3+5^;qc75tT*Sm$LU(d{0^L9?!JZSa5S}G*$orwricslM`-KS&cO#!O zVHucx@jS9pm7L5}1oU~P<5Mp-l}Bgs|5(x7!~RUiqoYcdEVR2k~b@!gD)wZu-7wYp0T!`_wv zS1>o{EB)iH$5AVFPHVsvfzys5UV1wRrY3=;nKDU>l%<~;pKP(bJoYzJzm6I+Wh>|i z{-PFn8i|>5@6kT_g~M%ZQow_VdkENde9XBgd1PFChC z{ve@-!F%{~rg7#as1dq;tGPLBw7ouPI-ZwLZX zl^;xtxK_OfhwY6F5`x^Hg? zU{_feq|F^Yr?Tm#Vu8fgeknD-lBuJZm5hqkq33B=^Umq7Xn!5THYX0|l6e%c#+Zag zOaSlKB_t~r5$<}0fFLP;pvUOYF=d^y!dQig2;I%^)up2ccXZ6WiuQJDj|IhpudBK46i z@W6Yh#v7;!_(2>uDYu5>m>*TzHN2Fo{5lM?zQRFuiw>2~^J8J7z^?7x`@C!cq{X=2 zmI8YCTlvOM96y_hpTrz(TJe3=n-+5{ovPp_Kk?wym*_O3LA(PeKNA_oYODorT(ZvX zX9UiKE0ygM0XjaV&v= zGJfvmQ?Nt!!>9Umq2@7!Ce#UgNYo zi7Lj}>o4pnUx=g-CeCTDGx4{Ln2@fX{4!@O#)YVN0TLEnga$C$6efD&pkLR9t(KAW zM|hck`K=0u3op~yk~to>;aHTt412gxa0P``qf5Vk+cd+TwUau2y*++sXOQO2_U@{! z>zT@$GTp7^5xrQF+u;2B#p6 z?-MVLKI>5u-?ODlKPR7URX+UA*dy1ckmkMH8p&WZ+q!s$cBktU;kF?q_izwh2Nw(y z2cl2fuPF2H0_ME_r8Q?pk+9L>zTgkc!RMb!KJ_RP6`^sbm@9s!(POjIr^>>Kuu+7( z36LnECJ|2mbp8?NwS#SFe@`DCQpcEcHd0v ztiH4q%|)^@%>A?+0jWXOQVx=|n~i<{*-cgknM!~S4`|cv0UVRGWU3n+uW2n6cg8wC zAP9t0kUkiZBP7Iw7dRc9`jII1BbGw>$Ku_o2Ieq@5t{hiLp%_UjSo~z3=jrxSRg@v zj3*GRQ;(K8YNiV_lev!O<_FHzAuk9WO;Hp;uprC;)ePOl26T9~qT&rHd}C{ppGu9~ErmAn77bBPdFz(_T$U^>^IHauGZl!7=1C+1E>b#1-!oXG zVYDQ)8im%J3b)Gxt*f$ZrotTCa>Ddj2_q)+E5PaF=?9OpS*0`RSkbijEJybo#l)P@ zL8sbpj;V7w*}-}6{Tu^5UQ@kX*NeF!Dd=|OsC z4@U}dNu`=eH$_A41QG$alEPV&J2|qn&iLDKkPc6zwJSj%ry^9_Z=UD6t#r2Z$xyM@ zx$?Q7vQwl?XQJTTO4)`8a7~Ifv=nARK-<~gbl5Jzg_P8*mxp<$iOvHlL?DqM$S!)9 zoXB&WTs~Wm>N`{_d6QQ-{rz65O-{IN)%UGT`ZJDPnLnlJxsCZ1@ys@&pl*Afug z5>(I<($NyO&=T>pg><4dO1U-0t~D;SHKCw2siQSzp*8JiEBQoQhH_h`U0Zf&TW&#H zen(s3LR<0AwvrR=rONGPcJ1Y%?Ue=X)gA4%3+)enw%48LXi)BGvg>FL?Px9NXz%Fg zT=j?^l|1N`;_j1C>65kZlMm}tEbKei*{8DDr*_bXDRRH z*ADB~E$r9t>^EHOH$Ldca}SuR44B&wScVN)7Y^8V4%jaaI35fTxCdQS23_q3-NObw z3kSVB2YnX@FCPpNxreT*4Efs+1%wR+6%K`T4uvfaMH~!~xQC-uhGXo9Dx+ogqvc_vm4&0#oujpj zqYn;7>$t}nRK}X@$C|^&S_{Y8JI6W~$GQ*3DBR<{D&zh3KvwmT%R66r8W6F!M9nxyZVWL%nL{xu2mJY!XT z#_sTpBm5a>(KD{DXWUEAcz->^@J#WmP6;?n35HJz7fp$FO^Gi}N&cFW;+d9Fot8ax zn3fNpRxFx6*EOxOG_Ce)8p|`It~#UXFrytlqgyni-!)^nG-Ld02G8@{RQ0*J!*k2< z=hj8fZM&Y^FFkks^_;--!bSCktHTTT@E4v%FTA^6_%6M;{Objg=jBz^m;Mef1HxYh z6}=4UdKtF#GUC@u63=Xu>THa|Y+U$kLeXqe*KEqtY}&6`GS6Iw>RhJ7Tz2?eZqZzR z*IeNeRE_6Kc;-u0=gS=C%fsg@i{`7l=4+ScAN-oH<5_4>U1)MxXbxX!Em~;rTIgI_ z=>D}p;aTieUF>&Q91LF^E?OMzS{z?mocOgk$+I-2x-{dk^dfv|wrFX-YiV(5Y5DNi z5|w9pRdspYVfjt?@@CQUcGvRm((=1s%X>VpKB&I>h z;y2#iZ+w^ET>kxr$h&b>ZNuMjBOqcUsCXl!dn0UlBjWc4iFY$fZ8OGkGcIB?;jnl! zse3bJc{A7_kM8#e%kO{xeh-}7gP-3+I_=Ti*hAmmqkp`|_-c>&a1T7W z&w75J-D#iW#y;omeXhs*+^_a|5BD)AKk%RbAmH>t@Wuz>+aE+9e-MB5LGti})X9%B zJm){kI(?MC@lo;i$8(QAs=WHBcK8u{@{{`cPm{;Nzlb>-gc2cQ&JGcCCEy=o?oV{M z?&k<`b6-y@RTUX~TZ4Nm5{3rnuU)YxUb5BKQ#Ci!)Y4S)_ONhsF}-@(?y`@Kowc5t znykBvsi}#EqrIWH6#oTdoQJEKwx-hAvtkzscx7cNWn~#>#|sLIXVlddG}RTn-7US` z%(3U?6ci-2wa=McQ1{OjvA5CJ)mBzhIcsUA?c-^A$;;ZzMAO<*$HC6fGeKBGT~SU> z!qLva)fsPRtMB4ue97C|##+zXLg$Q>u$6_5g}Jtzyo8s#ISwa}#mX5Op4Zb+!5d?3 zt@Okt1SHM~xj5nV9R;Kn_&iN$Ke-t7GMbMft++i72Y` zm%Wlu);@JPT{x~$^kSrtw6w@2Zz~%sT|4Ma>Zuy&t2x>k{@q#-5$Ch;6-;Ory>wIP z&Voetn3$ENZc3+E&bV07bMfa9!{q;tE&qS>RS+?U{TE^$b%R%5 zh12t2#GGZNEbV_J=0^Epm%U{_lQSm%H)3v?l{}(Zrzi@}$9Axj&xi?S4!MVTg znH7&>wk@c@@W-mqKH!}VaVyq~mHvmAr=PsOZixT5I8D-cVd<&Me@~3(_62+9&i2nc zvyDCvlf29JqOyA94~682N1x&0haZfr+Xb%XWHU=1HqeqT#_ltjp4ap2I6MSsgsCL9 zyszX)i7t>(Fwmp` zM!&mPHjHCumA$JOj`3g9KAD)gCd5r6vQF0IP+HV~l^(N-+txE@(T+SCHJQPvS_P&s zfA(Y{^Z3n8g){x~T+emQ_IeXre0+mXU$3;k)X>EEIBPcJYnU_6F=~bzVC_Y|$s^H- zZk7NK=2#M$(iLU|j}45l+@*V_CWln37#gKe6IZJY3}CR zSv&&)qPVQ(!%rLfRes((_gmkLPE|gPIyWWyDp(L-VA%De6lW@E#pXI8A-`0H9^fc= zFk|WS_7Qh*0#$pVH>=tU_ql#UdsSbS^AbF@2A?+Dyz{POkE^T_SCWBt(Jraos;vC^eo2Uz_%iF7bLq>RXT|+5^S;y1_ZNtLs+2|lmqvjL zK^yl2m;JsTF4ZrQo_2ku#vJ?o=v6o^bL&cq!n@X~grWPbOE;}9e}65eBl&eb@Z!7g z8zoL0SVjaaqt`J1@sr>Ubg+09qrwd8r>>rWR1cE^Co%Jg0=b)=R)UifX~^eE=%hJT z*WdA8PvYc{kHTAicraZyQ(vc=nEB&X%@Oh>44zxU_HFgNISDv^^Q4;IM#bT;A2g@^ zy5X$5QoV-U<|{qw+-M*Yzb=+Q7lR?e>8Y^x&_pJp2Q7?DI`w_ww)&5+=W~#Fj2MW8 zbE)GtgUNzZVtQz~hAzPWX(;X1ZP358H?irau!QT$9|Eiz(Nb7|t#t&AoFv75D?zBD z^_dP)rm^s45~Hg%4p}P2c3P2qN_qE=dIV>GHluX(30L&d^TS$MVI%-i#S7RAW$dOC zLxnVTk09${MYZ**tidbzWouTYb1`YO>97ND)`1GD2}TG{f{zM;C-EhT7Z!C-Mt{%& z2=&Qi#!J_$z{N%3W=4Vlv#ulMLb zs8fqDd}@0DO1(tia%!CRi~OeB|$ySgH2bdj?k29Ycs zUjpE0T!(5g9G3P-9CKk^hpYIa6}l41Y*ZXZUy3Bha21XqGXln8RQ714L&F$?S-}Y# zp+icQ)-~q!bWFOtz_FzC9lFzi50<1UB>GH(lyQx=o&<1`$IVo4VKfzQ!vcxJQR{3> zY*NtKk^C%`OQ4K~9nhn@s>ZxYA#vqCr{M+7gsmwUAtNuC)j2Z8A5*SEysfQd3#Jav zkk*lap^mL-}Bu1K2#V4%-tr2J~>Rme8@sDBU|X6)3C?4Ad2d`Yrs5 z>U1f9Ic*XjTqQvr!3*d_3G{T(h`bM;?pS_lS%T0eP;5Q$lrRW8j{b(Y)qbq| z!@V<@dl-OM5kO%;60>2fQ#2=r9z)~DNbhO%tJJD%_w{|?_X#TO+P4mxDs?z36$u+A z4AK#6cm~7(&*GZ{a1J1nt``myrZAl#Vj0V*q)1M}pb|+ut$Xt2kqP3o*=J8tuku4lXokWsEvcj(4Y1|$xH9&7LtBYhT{E8Nk~Znf?C-S!?@Ly?NEZy@M&`KsG5FQWBU@d3YWXM4WD z;qAoOiv@L|G;=uQ)GzNC4YQj%7ZTV|fPd_8(K~oghx)`zcog^ZMf3`;x9Z8)Xii`a zac2j{{2?$-Jai>e;Rh9k{}##p8rwPA4{>`@T-gs}O-%C7zsKFj+xfMb{z3E|Ng9MIOY3!)o#g%quyA%hPtpS}Xl zo^ai6e5iVeyZm%!@tWG_1R?aEkT_2$nef%ZOtY-lqQbsuaNwWzw={I*~(_Bz#<-;kQ?AH%IMjZ7DOy5jL zrJJ51C8nHBlYE9w$pvW=V1XpSixg0%tAxNMdd;S)(A*3feKkLd>ukPDBtVWWr9CDr98klKHzeWHXH{F%m(E+EC|$MRC=yjA}F4(as+pm zxw;766OthUvJVypT7%+A!SeH^^f(%WoVzr0#Vmn$nR-%D`=v;hyJ~{jlgJ{ON$}cS z7`r|=UwMcmB;&$XB8hJc%8H&HC*Na^we5fJ8;dpH-=lVd~^nL=w)#{BHwiA1-{ z=Rjin-C6WK^nM;_bB9Ie9^%mX-czrOKppHRO=%DUZOG?f3(ztoluFwuAWVwebU_h| zh}ou~t(WJO$)5DEYC6Aa8Lh%2q97O)2bXpk(<`B?x7>3-nJ`pM_bmDhRqa83wXr_f zJzta{4BkBl-V3=${YKo-vHmJj0ms8{gn%j*PI^|g2vS0s>TsZNFhNb12T}$AJ+rb?z=|5W{mFwM-Y|VD^_HAGgF+U2X z1}8&|-oM45S)`*ORshCAxU5Gp`)pf3xsdOVHDPx%X-G5~@hXMX_2QoN4E zqqp71w$r@dZ=k1z0bpG0a=UI$I~qq{hxp3gMX(1?XKMfId#E;JWEMk9L&)GZzh7N8 z=z9QGun!%%gXFCnG~XP=tRRSCEN-F+O4Ie=Bs z0f~hyvLW!eT9$ytVPTVzh}xm^EW^$RI9Of3tn?spBUJv*s7=qP?8@i~_}E#$aw6Z@ z-LSC?@>p#!3k1!jBS-IOYPTGmXi|ZQxilrEYlxA1pmTg;S8`)*pnI7 zCnIrxi22c)C(N5qAY$%JJ8@6<4>2!G(I!^>A?EI^fAcz)|H$j&pl=|<6@qmTvV(Y? zh?s!iCA+Ja?I9>9B`pH+E=ZAezi0wMDrIG9NP&e&9R&0stOwCBh|56?3gUPWQd7st zpFb~WWudL0AOXQT2+ctd4{v;);9v~Fu0NO#Cl7Hp2&3s}D;pZ9K}b+u@r<6HDul2g z;s=SI5XJKLFpY~dqEdsL3ECPKdJxERu+!Ieb~tZ@gD6(XU2Dj-y>`$59{h18q*}9-@2{6qqD2~F{P)suYX{0=wb8l*!Yu)r<2d7re~hN zc-cNWjGA3qennkbU0Z)W&Gs0zy|a_N7(E}up0)dVY&-s2?T$mkX8O&+yFfZ2HUayln0{OsKt`JbAQQCW$YXKfWo_ExXTT!RX52 zqrVhShYSs5@IB3d>}ieg9KSorY=c<*DO^wM*dN97`d62$!E~4Sq(*pA+VZX7bHm$W zr{fI&QasPZ@-UyBGg;!$Or;bi3Fk3>rirX^NDjwm6UQH0lPIwY8_~n#K zl6dpxYI55EYAr?fh38tT;+x8~G?g!#Yd5if^D3|PbX~!!^}~z;Bz653UQL9OX>O@^ z`j)kO)$5xk0b6BR1mm{X5U`pn&2fmME6?+7-g1xe)UGPey7IznqiAG+?scKX>ej|> zl3IC1CW77D^A0U1i3G^o>v`qa%Vh@30{8@VjG*KT<2QNc!e9jrMy_>C($Z zlaI$5awXN=Gv^`!IUJ){fR39YB2(%zEq0SJJG#2MzhMf+|2wg_U$|k)R*VKFE=74T zbl{!(D1)4z)!c|Qn5Y|w`$=DWHy5Md_$UA*!O@1vNzt_SQExF~Q^^U4)P94}PGGY} z7g-4uQaY->CF^zN292S+t1#mUJuxJ)cl}j$^z?_Ul_jB7bg(eI@S_7k*4n=6I>PYq zys0Of}4UWtpQAB9EeT*r!;j9@5Uum zh6x9rJwjRfs^sz$^VCCKX6cRV?cpz(n~uYWlmz>yDxU`ug1Urf^CLHYRJofRhhF3R5!8olFO81K zj2VmjLXqZ&rwx+Ixa6LRX&aXwk}sFB2+R3t0t8&*O)+ycoJz7aNe+}n0M^=7=-kNH zRuMi-5=PEr>cXrnb?eJVM4pXVWSS&5Eog$L=Mo5UAM)-`&eFiCFe^0|MB40Wpl(F_ zm}OK!u>n$%MT8;Sh~QpEe1i#*o47z|0Jl{HPrJk?2E?fsMa`DYovYXKTuq<@m?}jh z;_3V&F~G6PtPX&z0N6icoo`w>)v1$^@L)A3)^k&Xtu5ivqqpP)FtW=v51j<3l)kBH(O z`PTc*nE2ExC0(lTmQ3;q4y?);XkTTseo`qgxH+YxsEZWK>bLaMH+&__Uz_%A4Zo3} z?7k#wWpE$)gE#W&jY}>Mvw_(QKl14)GEsFRb7C%c_^h48vmcNjX*X(v60wr94Y^Nh z-A{j2L~v3Xa+Yd6b#?~b_w@|RjP83M^O&E0@Z|(1{JwAMw5{5cFU_r=%`R@W$#;f9{H}&GqY7 zpaa2`Yu-u8cqql9?`#S6x2_~zdi^>?%TmWYBp~#5Xlc3CvuA!mK{|i;y38&)oHxWm zjjqxq@xOaoP(y3??VtS~+UzGMN1;6)+Sj3t{MD;DC~E?}d748kiKr{ib#u7v>WJ^T z+mq#D`uEkfUepFKF!?>E)&&_#7ChZ-3VCw5PNZ?!kO029E8WMe{a^qBPsVeTJ+NJ_kl^9sS7BRe$CxpkFx|`rF_W$pS!G%CNB_=a_!N$g#s8JZxSzRKel*iS%%g~Cv3j-^ z%42M$hRXyV9Tjq0`#X=pzugL=_genPJjP-_*Z-Wy`0@&X@)#2mB~TvY@g*paaj^Yv ztu<2YtHYl>hCupBr*7^)-KEcZuZ$dmzr3gR`7Au>P$uqgPRD=UjU0>9T@PlU)Rpv+ zetx6<^d-8({D$-pQ^pDY_7N5;7lJFJB!rQFAI2)j?ne?@hmi{bB|h@Wh@W@r4+(51 zzp$(xJ0)qtfAw0XZcLJYj4%&3t#?l;cs9G9kShE8B{j`b#X9aLpgFmk{K2htC7dTe z@*<1D;4@eD3$~S~Zkd%^-(xZ1w|*U9$=a-yY7?RKI>Y&cryxKRq^-@YQ3|n1F5bMd zRI7aJ4IVccmU~ITY0o?g#3F(!vK>biJ#!*CLf(`{bK?6E4(|kC$7<`70VF#{1Y4RU zXhLNPOH;%o-<}V4tI|D4^iGS3RNA~6aFlIWGN)n$<@UDPxm$%^s^NoO8E&S-y6S>))r(tB3W&bOnaTlq>Yo7wKJ zH@P(3uK;y5o)31+ysn4l7+6PYX8hVg96(;Pz1$7Ime*@%r(z zV%t~7q?A>f26T18>YiYyPrM()t<`>NH9GXUUX4H2^*Z<5a^>y-6{ge=OKV?o4?gKb z-U65nu>kyM+qX|idyYmIOIN3uh}|JyYh@Gccajv^ZiL!iqZ;QVc|UG>A>q3kvGX=) zDot$JDazrL+PC#DYKGtYvwzl}SqtHnY@f^@%0D|>mUw?;Zd#D+ghFD$!)d#1peOxiU}ya5M(T+pAzwOt&bPgL zX4NUP!<6x4|26M1EVlWZ2o|7iQAp|7x+`|*|6S2T;`efxGVj+IA);_Y^na z9yse-l4i7V@eDVKy9GsI*p_lE;O77SAxBS}Mm*az)8$jZcRBrc6B$Q#Ies%Ls1j6J zLQD(^Cp*3xFga#qPff3jS8QlqnAgs9KXLSG$Xd7g16H3=|I>;UbB5UN4~3CstdawX zTI%u*Ik=QE@xz?E_P>uL4#}QuP4gIY8@*Myv0EaWUiH}9)=b_x#eB5&d$S@dHm*Rl zT=l(|f}`lu!mNHzu{`ra@e(%_R$~6 zZ@gcaS>rvxF8dJ~Pqf&iUPv5?JrTzj*n~nf673d@S#Kp>7`D01?Irxmo$mt8>2yD< zF?)?iFCJZEo%Ur&UtE*4I{y5Tq)5ZU;yZd_H5lo#f7j21os6%Y<}l?eK?BK--wa#2 z_IQ#)2F6Ce3HEk=d2+>{V&L@a$JfWrd1pdlhE#Z?Hf2(-F6x*e7qTO}2TZFIjQTq! z`_Fkm5|VyS0{=h+C>je91Zew)Vxw~MQZ20wQ1a5v%?XP;CnYT|A}XM-ucdZgNmow; zItHA_D#gS^3=BLT8R>`euN|F_YVVhijt+eO{Qmj#r|}6<&^5cSuN&IF7Zzrqtg4y0 z5#*OZ;ZEpo54k~*=mXh2v$Ips!2>dEARWiRQ2^3zAm`?9+XgakAfHA{>%6|hX&EJc zNT7k#8NaJO&;djI3_oPsKnIeGB%!b}5lFa!+?w!m5!WaoNUVXJ8_2(bL>x%Lfy^7o zxq%cM=*;l{=EwgA5pJfypmRwk9D)eBTRh)yg{}2wKQxGr4!l0YaDjZarOe8BFQ?ElCaRrNaukH3)%l;y}V+^2=^n9Aok^8 zQOD;Go6|KyWzjQ??0YL~oa?{%g7%45yj30-hx{eIBpi7#voRUI_UIHficx-(YOUJo zLIu!otTJOt_ga$U&iM@|#~+Ck=GT|CzEy~)jms%Hf9elJka98CFcgZYD2*)}Ko?*z zG(&5$s@uZrrI|#Io)Wk;%fPu0^(qmV1e!^1QCKn^*l0zzd#Uy>0Q;yk{Awe&wwb$pv}@0`4Fp8 zrE{WNWtlYazpemOC?XGeet(v{9{i8z_xDPN7Szp~iFfZ7K`R#uUN0`aFutG%E#8TV zVQBe7YaA*CP!WKt!Ta}H&=S6VJ8yq~2V#y;9e{%4&=Q8IBDBDv`vO!7Ha1q5muD}! zI@HzIynVY77a!TsaG#u>TvC#+r>|LFUeerBpOh41Zea{n6{v1N#UU%34Al*Y@jZA@ z`TF%MQe-G}xeyZ9Q11dW~!Pm}6iB?vXI=eVP zRidk_Wqf?FtgINSIpGmOP&tBv>Gch@P%TOQd>w9~<1_oUX3lFTRDevj+fJkC@ck9m1dUQ-U6h`mq zX;;@!yXJq%)XXR+Hv_7NP$7b*hDUu$V&AsVZrt1c@isiLX?4LOjK7ISkaKtL9nd2m)y z9GYGLkydE(!PJyr#w~N`@};aQ0Xc|~Q3k4}M&;!W&;<=r1EJvu&}A*EDhe8n(A?q* z%|B4nI|t1efMy<0D4tf|H4uR{a?*#SLoGAh!s2yk>;W_a!9VL7 zH0l7l{e_3?=~`()(+h$Mf^gR6np$TD27RDW2kjm1&~*Cb{WPE{1q5dm zEKb72L=Ku^01Ytk_QpYj3Q|+?0qw2kmI{B*B#_s_+Sw^NIw}7(en8FL{X8^X!2h~7 zG;aVBD`Tdop)msxhBh;o*RZ$#Z#=(v@Tg_3Zax1%!v8rLZ*v=!rN)~V9(Vux8N9Lf>gnUhhqXU`LCJU|$FLcRMz9hpc_A@`Xi!_&Ip&D5 z=SnQ+s+Dsbcfh7|(1{3Ph?|NYb4e5~uXMR2^x#j)3wh!4hnt>q>0J85O=aXS{ugeV zVJN=^VN-39*AO;^DjrJ0R09_wz8de$6;ss%pdH}Dyf|+2K7L=xtM~$9ZyTf^4UW9Q zxtD$~FR+;qAs=<|CIhCC8Nv9RFfOE!25t{F%n|o#PELo551UOH6Na26!2|=#qi;qVZO@vmRF)^&>-X_WnnP(`aPW)7}qz z*Lr}m&Z}c*hE%|Q3F6LMoH*I%!3ez#-UonnnT$|K5=74{}8!i6bhaX`m>Uc~C0{l}gro_Z^1XgMQf056cU=XBa1iz762uC1;c>G zK49m7g6}abT~j!m?br60{>uTVJ0&Q(j2Rc!PZR2R>w+OxX&0p@RH%;C=Ev8<$_mQWQ*l z2TsDEIl;PGwC)`a2##tq7+#(&M;!>WCqq7OC7pTceK>)(V$LLx6 zqe%RK2RPipQ36V5_=XCiDSQAi2?&c!N|(JYtmmcw`A!B#!2h;rkFL?vZ>E-TlSmjp zAs$!h%vj_J;P9AewjgyT5$l)2^sF5+WCERY3F!!&BnnhwkT3uSX6zkC1B)vdliW3J zH6SsH!ym4A3a)LfM23S8F_CC2v+he=6nm+aa}v`1C~Y4aUeAit^$&51=J`~*~K8ziMb0UvKEU91N9zc@PY zc&fk0kDt4T^}gn{uf2t2WZipRE8?12)g>V$M5$Ewa&d`5%1WVORI(~rU0XJ(kc1=+ zMX4m8?$7u4@B5$g{^P92Ydnvz`l?}~|IR*VEmvp{l8F($5~Qvar2*`(+*Fqd0ULXu zr|?HnHr7ng*3jl*dr@6Sw$C}l2aCX7Aw87o6LCtxu!5*bmj6loIwuKA-B|DnkcH30lG^DzJ@=?K04hTi)IRTW z50Ce`y5#8^{GZYXB5WFv$apt(mf!%r8)yfRwBjEi4boq%z)D2T1wcVqb4}=&POc5# zDszX%5M2Iuccz0b7=!>!n{pb9OO&wJW5Gp%uTNi<17C-&M=h&7zJ`_agN(%7Ttqw= zv_2)|1pQZ)*D4cq6^4(>nwLU8^|bwV<-gajsp@2YEw9Q8NjW~Crh|6_5lvY^f7cC; z2E7iRud~m*NNcLRdhXtTUxw86bc8WXfh7BeG9miX&T^kdX%$`10H==~eT`@v;#CZp znUt77z6UD-8uq0I54%a=x_VzbU4?Vuzn{u9b!+6kn(V=^4@n2&cVS8y7_+Q7J}ojQ zZ)$2Rai);;Na6ClW2O}W~LbqP% zirS-H<314#=N5>^$XzzV?1@T&2klB6>sr$+jQMP>mNbaSPLyY~OF1GqqE1{4$J4 zVMv$7u$ZSv=e`B`B6x2@));r_vYesh93Qd4HLrXLts11TZ)WDor8F#;FQ+XQu>ZSp zXouN^r|51kemDp20?aL5T4N}G)jyD5a_yYi0 z|CLF6V12KIV;QA;ZbP)-t1A3|k3R2pZL@SioF_z-c;U z!Sq7u?~`r^u1kcYCwwzdAT!F$P4ygp`yyZm*_uEOM3`gaIl#p!Fn4~l^LvZ|v>1zi9lf+BSHi!ji-10_IJV_i%3oO z^**TclEv|s2rAzZO~?J4ohYWm3+51y zJzRvDE;dnUM>5Kl0pg9J01iPi2&a~Hp{at*xpf{sZzz=oS6ekmBkkO?>zou8s7Gn- zPCa#358|q4bZwkoGlHJqiSs9(KVXuAb-e((Gf5%PdAinHW2pQm>RO0Bg)mQ}J^Q6h9X;5)WC7V&u7~e zDlD7}U7+iIP7EpFAeeuwBbF{815ol@%nbvPi?{;0=v*@8vQjN}^)@^^O(XV5oar!PKY4OzO3ZZADcXXiC5684nla{H`Hm5o_ODwqv)j z0k-e^2=p*9w`s9G(*&P%$Wuz#u8V zhIT*L1-wv{2VfK-zxp6Oo!k;%F3$yuyP0GW8ZkwWiM4fqtDu@H_=j}J=5<}#=UM^6laIa#@4t_N*X|=+@9pXXa2SFB zp<4ry@~Z}DC z&&(i1d?12_!ISZ6b*)|FtwLk%C|HLgf98N<>+%`fBV8S1;Sg$28*{Jqj7Nv11~l+l zYuN9kV0PPJ4)We7#@7q22ujDpzz#$y+EN0(QxAoXDuT4z9jlsRxj&@A&%e;&32u2<*DEu-sn5{L>mG%y);%+JX4=qO>9%(lI%m%G`prD${q61) z?x_ref}9{ebKxUAr9Y*_GAq9C&b!hfI02qMHwSw`X#vQXnOBJ8~@a z!nEIwSf3g$-#%=rh1NW`u`+=+Ui>VKC<8R8LNnKf5Ug?=Cm4JVjhM%*OnaRt?%Ph_ zf70>hWYJIovoPkYYRT-E*2dCbZ(+055z3d#A0-jn?*`|d-CZ*K_QNa!_V&?;C4LEaKlhy+T4UaHPsDG*EnkpB}kMb2JA&q7vmi%9*&^L`Vk zQcvnO#4GQX^TmbNry-ljGic|xzbv3XZ(a!2x__+i`6n=!Z!ia&^Rl&sOe>6PML^u% zcV7I!XE@pJ+&i?|g21`=7=<2W?E+$KL1=9uOlv-9|B?hxj!==l9HI-w3GPF%=FlZ` z{LUYa9GFWGSUBwrjr;bYVasrZWkt&JN1b=i{pN%J)vkPkl-n+?wZ4XB;f~kgBWSq2 zUpwI03pmOrearbmF>pxm4Q%d~M)B_I`(x#*Wg9`waD@ZW#ZvSB z7FE#LuKgyFNsqq{wHi1zxxEK9`w^6c!tL*tD=*Hi1QokuO0{G4Acxsz%b^bm{{dvJ zopu^D9r?a9ovVv=eX<| zTz~D_?0Rx0L>B_TErmUvuCAW@WFjOi_6;)m8U4-e`QN?Yci#UcK=_SlU&Xlo2q(Ph zc80;*F)t>g@EjMyUF?H5P(#1w+_Pa4ld!wzkR>`usMPcGfEGg#Xq^A_<}74qgmHKj zv^S+NMCe2AgI`ylP8A&6{5_3cGl14KCq@M~f|cL;>|82(d&o*04F3DAB}8bvaROfZ z7oq;a1+Z6k1DEq8-E-xRv!*T%lfW|0%!Of ziO)^hfu*O2%^juB@zMYeor2{`khe2%I^UF`5;j!_*2Vl6r9cMwTlN}QJrJD%Tts!T zjK6n+`ppFJB+bx2@!!qSr?K3_U%wT#r;2Ew^FIbwZ360q8?#43e;He)$b{a?LGFos zvUL5z*E|1c%{!igUm|@L3mJ|AWEQgP%hMNVWC?lcT9R`UYipSacSag00xh)grIzn{ zN@FxpPv!LH;xP3FcbUksLG)IE-|Ld(ig{6tSAJ_X0h#S9%xiG>o(I%zpSW! zvJEBq9hJ_XZ&`oI=T^!{z2ZVjN_bP54N3q*k#4W#N%v_r6!$rd3iP5SF0452Kk-H- z)Iae38@)~nEdSx`c3JsEi4xqq>h4S$NrnC{1lNaS4iIpoBQp2>zG^9J1=Ai71Mr*^80k zrRHx%qL-PZ=c^=p{vF{c(j(L0%U-0Janf=M$iQY!+?;H^u(NBhF^8lgb@grzu&4JK zs^aR#n#08El$fGrb+myB?Sm)lTablPnlRBmL=K=ae}BcFUD|48S-yHjpSOP9`upw9 zyB0rQJMuACS^T`+ng*@n74gYg`$8{(KEU0hi4FVjr)Rg?+pRLU)PC6Xj2reGDo;ZF zYz0ki|7uUsj9;Nws^u%ndt9M3RyfGGu|sUn`6jc;d$}PE#kUk)r{5KSW2P4H2Bw^k z-tB+0SI#?kaxFqlNxT0SkJWtaMrD3T!0|LKGk zK1S~}qTMkBzHF>|u}28+(;Y)H&g$5TA{m&>gbSa%>;Fa-q>?ySoS{N(>|wRqN>Pwc zCwGm)d=WURB-yxmjSz$yFnvS*lG<4W6oEYlZ+%BE&!ERfA=IN!>P2cZY&M7=7P>9= z(Xr#AIqI6%u1Ft5GfjpG;A+EjB_&gbL{bhZUD;j?m)QM<5_JGEu1wioV9tu?f>WVX z@Q(~x!E-zxb=}r|`&<7Bon-u4VQDXUs@IB|thy-OC(BDMD5&H`9tF!P9x_R~R$0^& zRV{&~bszWK5C|$T!%;y$B<8v&CnsP3J(+HLBRo)*jhFne53XllwzxBy5Hzng9-<<(EDi|-5X-2;I2ZHcoJ@RWu!tvK z3j2jcB4fdS$ei0YXq5|(d}XTtr52$~az)~>Ohu|lk+X@10v1aqp}%8ML?$-hw37hS zW4#Y*P_N)HVP48v@Hzck>&of!G6Z0uehZ^X#1aZOLE>D%-P`y3`lRSPZGgca2wav1td5%XvxnrpACEDdzcnP=3ct@x!cmf5B zCt^euz3K|Z?w9cd6H)i@ zioXql0n=J@(CUsl$j~!2>Ix7YHI=6rZkqwQ3^bM0oq}PTbn83sTh~ui8>SOgGVX|o zm~|jkxp}rkEVjFx~e-VfEIv1AMuunFp9Qzv{PUxT@oPV*e! zqK-;rdQ^%ET>+2YjsgmXGKt)I{P8&$bRy;ueKEcl@p0`^l6la4e|HotwCm<_L`WNB z+|jnjJ|}Nx(e#~nZxdzk2I78}Il`w8MylgDLZAL|6xS~Pog7bi6qOREo2M)qY))Ww zIxjJp?>CsR`ape&lTrXjiZfNx>k3tc!Q~+fU_`>II@Mppt_vCZkw;>#t-_}BW!!rB zfd+a^O!Ym*C63?JRk@VArVa#HN*swu^XsTZSCadK&6pZX=ss`ebM%gW1vm-uB?Z0e zCEt>ug8j9Y(fY;gRLh*r&G?>gw^seFw#X?5)^B1w&VcvO`)=nGE^v~F^6>VbImE&P7s@lJ&-=@;Bny)(bI%zfEr~7@_;jULStc6)wd7Gf-(k z8HQNziA*q|uK;Z2pO2qk*;GDZ8K>Z!wP<&pbP%APxz&mc8@KJaAw+(KvL9>1UL$=N zY1{7KyjoYaSIRQ4%W>EjECdH@j?1CLi0#&Ku@?1$0Q9E7PpIZEbS~1z7G?OMX zL*em@SbL>)XdpX_mRXh?KzFYF%IVHsB^|0WNopCL#eLSAi)@8S_8){*GQHDGIi0*^ z9gSn|nCMWXb=rzzZ9OWq2C3v+s>Ll@!zo%t1?Dr-QCxHV7>cbY_~PCr)|>4U#90!S4|*0-6CHmD7Ghr-9yai z4!va?7RxlmCV^3ASi|M;!JeawJyD{)A)-A|>$XQ_dSi1h97pz+trqjS_r~Y;Zlm!| zHQ4E`C#^wDji%n3al3P0dYPhq^%}ilgT3!3ds$AsNw{WzL$l3TBATf?;0^o@l%56=dDiZoyQsBsDMC4)w{cc(^me~!0tM(qmd?}N(pR&4nHv*8J-xW{R`dbx`5hr5Te>q07P zzwfD_GX7r`ei@_I|XZ zd%~%hZ^;9Oo>VETNfeq(O1sOF!lo;!zi{)!3h1*i^brG#JKKCg!!Fid2(^G@>TWO< z^jKxfENMDhlZ3~R*p{5#hTR$40Ky`=CkTD9PayMuBtlP`SDfcTlvjXQX7ClJLSI+W zD9g9ivn=$b+y*!#i#>wU2|N7KZ};F*S(I^3NXEO|Ps^s-K=rj0R*?6`{p3{M_%A|dh_9(KtS zhj#+etX#zX3C9-`SL3Ewbbd?X-S?v);d$aEV3C-W^!WJGOEpY+;w4q6qb+T!;Dv1h z0#W{Mw+6SmNaYeAKqfCIR(lH~7>NWKtUaj!B7&e|zVe}|iH&XGp>Nluk42jK4b=2| z$hY$LbW-E=C^z$tw2->}e&bi-muS$hW=5wfy&_)kgFyQlMtP zV1+EUT}Ak}Szep$B?$Nfb$@uvEkN{pq~pgTvF^(v9rb_%5TNM+A;1iwRExK|Cxc{Q zf?%zxyH4RK0&diy5gs2?M{jpB*nnsMylR&$IzI{!Q8-ZIkzC_3m@u_G>fRU%1VNfz_rg1oCHSn;NMjazS-ay$FtD(Y;n&1vP_N7-Ln~S6iE}93q47+ zQQsO4#Ppchnj{K6Nq?D*CSk?60uV@42GeFFjy=af(;E)yF|`l^Uw>but5JVz<{YTwqY}HjR0lagKtdo!ZzjCwAytkjT}{|KQLlt~@JDmS27I*4L=*)$p4e`n1XeRH4DSCci&fC^ptE4& zL^>)8ETHJ`P=fRE%rSjBGVZ|DE3;1L=-qTZmN)8F8Jk7cG!?;$gjV?+Emhnja1ah; zLp2lp#GIGfT?CnQIqWONZ8Y-5_hL`sV%WzprZfUkPe-u02>hH5D>N|dLb|IQ*4>Ed z^B>mh#9;*UaFpwNozkU!a@YXX;L$maR0HHXiR~w-yvJs&=96i^JkcBa0-5eT+O34GR!h35sIkK zr!1=5y;sEc&t~dqmH-csd^C2^R)8r2v2wjWx?F*f+pcQZfyDR&d+&TiduA-IRs5Y% zRHI`dEYn22@cgtcYZ?DK{7O;E{$kzqU4awZZ()>e0JRhRHfW{_(=7g{W*0}`x+?Yt z`jd`i7*G!zqd(tGV)Vr@VwClH5lK$QT)H= zv|a_QO{lF2oWGsK-)+{Bt5QVOU`^KeAc;ODiWm(fPx7an2V@&E8p@ z7ZzZ}IU{w5$vA@GoXPsAM2h!CXW~)n*X2x<7>Gw8va(+Y0wW?@bl)0+Gd{15M41Rq ziDRc9tw=o{*sFkb!L2bUS8yHoVs?i;NxRQ#6orluWyT0{3Rt~pf)XVsbpGqR_ijrn zS5GR1OVq^x#&?PKjQt9n0}3(kHz1_Lb)Gt5_0!;IMYZERIRWK^7iH6i=e&vy6Kk}~ z1zqSI(X{WyC7JUg*x<$0i+JEjhl#Bws)ycTP3o1N0%q}7$!aS?RzWOg-8X}1`^Zbf zYe$T;qCrWtH0Ebx*BUFoNPHhQ2KQ+g^{`$tj-?(KZ*eubJh`^#$w!m6hQPXdo@-O zm(%|9?2~X_(Fem{*q~S6!RT^6CF7t{G9U9~_o_do*WJoKTL-;(UWv1dqs77^g)q!b zQMN;`i*|mQn=h+d8r|e^6)YMDa!BCX4xx7OMKA|`3Y(iS=chxXz9B( z@}IOy7P+)&?#4LmL~>2(+cw#Y#wSh|hpCVCouLT1UJ&N^ zB;pU1;mA(s?2Efm$_`4r&#RK)*h$^|EggG$AJ%Z&wMQ`>R%_3QVe2KZGWo>hc;a}# z-=e6$_C|8INr)@0LCYvlo8_eD-~aCC9!4M6b9L72>(FYHODm05#8MAs{&{lXR#3l0r7ThU^|N zas!iuCKl@1F)>crRW(OOX-qyj%IUq{>+0_1e7keHD#jR@>5fi<+Kn$5mqEVp9XtbM zQwXqJo^ltVgkLR*8oFRwF+ozp!yd_KFDh{bfM7>V5Mi#9A_Pn6+LlGTD9#G}NKRP| zg{f$N6N!!fZS-}f>Ew^ED}Rkw=Q>hFc0_KOd|&L(`~4Lna}(7<7)WwbO*RaHYRih! zO+Hi(N-jF(L&yNXCUt_Gq&MgB@#XPKKP&HK4<-RISK?Yz@`)nl9|b4+Kv9xnSO-0K zLWnlSMihN3iY^0-B?CxFJqku?3MiL7Ia?Z%?f3bk_-y?9;t=|2bnzlFNsy{u8o3k4 zU~dm?lTZ2m{_(-{JfFj(K7OV4*H2+k^YF`R$T`Gi-GnivbDL`)p|=0cH<9gsz!-Nlx7jB`Sjg%q;jkw4r^H>&J<9>Zw68Wky#GMVUQUe z^r|)_haybZSeLDPq9q#-)5@}x?U~X{c&I%Sg5{vd{Un)%4l<1WAM!0`iowG??s3Scg^Kup}@_F$ZyE?e3gaO7wXz&whd zt0_VwMZprUx6hMB`)U`01Cuv>Lal`+*pz#ULEYr*ipZh}{jp%b8Wx|W$$YZ(Ig^F7 zcaM4mEV?GTAz|$fe}SB%!ZPnJp6u$zgp*!a%gaZ(T042pjXo*Fme%#k-9=)aET$_3 z?f%pW(GA@TUvQ};_QI5&Mk>(m9tfBVzKLCRO?J)xfSZU^$!66Y;`O@%+T z`2FS#&%*tT2j22e^4kNJo4v9OF#55XXSuaDU}eSo@8^dU4e?)}U1t9Lef`u%@dSoR z%~AkqtMYJ>3NFf^h9&64QE>jn#mU_|FRFY)6|IOs)&wIZwn$iO^$tQ#4O^9#F1r*( zU6EXXj+0@?Jy``}<25NpEee9iD>`Mr*Q8o*DL_f;T?)dr99wfm;mZ|WDh9P_&IyX5 zH`Ti}+-lRkS`@|WE4p=JYA+nvQY3b&_vq);W(1onNjs!j|)*Ah;Id!>r%vChqEBig`>aJAt5>&JgX$<&`*Ij+oqN01ea$x`Wy1ce6 z6}=>l!2sd<{2p^vgUgkJhYjirh7(i`Z)yx3ajP$U*`jJxUpaI%roL!)OVy-PV>mje z{@Rkc+V1C-!*O->#a|QD%-?B@oEopc{;NgJ@<-*!+3)o?{%xs|5t^ecVUNofm~wVu zOnTBX86mPdBx=a8Sot$wB4b)%Qy`4A1c7`9t@{)?C$rM07fTd(+1n7R=oxhrT9T+r zdml~r%ffbWy+#fG&6L~}OOF$T;)?29B`iaAcDd=+$Nd>q2E(AGXxkAF!M9?+o z{?MVgY!1zg5zyg}ljdNdGL$!riH|ATcb0t!B@jyX)0s@)cNXDQ3lFJ}h|aIxI-FN+ zsp5TIN6yDA$7d+T^UPhH(onJQzJGDH$?sc|7$SA}r@6N=JM<##9(gcp6Mvm{4#>0~ z4^z%hf~ZQ{jlV0$*wQkvOSc*u)9*V18EyE0?n9Y1ov5>&bDt^k z$yi(a@Fd1s+R0zt%l?tXLHPOvSMUi6+vB-p=+)P_Ceqm$ya zyv8RR7+G>PDSYb z>@GH-zR2b52dRcXLs5^su78%fEH^_Ycy44Ouw$5uK7S@E5A0k!y~+yEV!vv09>5S+ zJ%V2OzQlk0aluzGLhG(~Y`d?f>M_mB+?Uj8IAZB>rJIQw~nYB}D`r2zTJf$T{98_{?GE!V*EW zd-ipn`Ep4$w*Eky^#A9;$+Z%>cXxsHkNn=vr<_PDZ)6?|Xr}_M2L8&&_Q4lRAB_{`$^nENEzqg$%zWeVhV&?@{hE>*(bkHw+twp5zL0@5!*41X1bx*zu zY8OKO+i4fhvcs{{v1iV$Wn#E<7p`aZ?l}0Jm(%uM+UvhJ(sDqVnSezH;1Kpy;|C*K z--n=ILypJ@`JW%6T8EEN$? z!lut*1^t~8NHBH@A%g^~NW+zt;0p^V6I*$Qhdwbk zLWZIA+KHk}jB=hl8j$dT+ZS)@AoCzLQ7)k!nG1uI_e#H*| zD{UuAl#QHr^pr%FF!`@B)hZ}>cCR|AORrEtsw#lWEQ4_rH41r(yZ;4{1Q$55O7d`~ z!U>?Lsi-8!HcAPQ>tI-JP6lLgh1oEae^2O}9v^!p9aRaFbS2Y5rL_5*FPQ}jb1w(a zx(gT5J6{K86a-(3Ft7FR6Q@1GWUX&C&q=FJT2SX8ogA@|;&v8%WyFxk>G`8Cx z5j>#SbwCkGpdqs*k%}hMdpZu=%`H;$d0gjo{y; zoE#*@4T6&oE7A_hbsaLwaD1r}F2z0wU!w2_TT69Cp~)w!?(7em-TJ*W1vA`798SLTRdU`%BsmxyGh{<$Wo%npYG$6yq7!?AnD)+V%@ zLJxIAGDVb;SR`3yxks@nXibX3oq@zcBC+}ySziaDl)A6rI#Gk&*r!j zkX$^VfJPSoH6=KW8F58}J$!_ehg+WTfwd>_eyMcOGNn*#A<82`1Nn0vj65q~!Z zvJH}Rlf%t&v<#~woEl($vb3UNrLa%shXTKpo?v(4LD!xm-Q(fsX0)-KjNuc=kxk|Z z8jRx015SJ%jr@ER$&$$8B1OqChK;yP*O;n~U7xmFLqzX1w>Rb9%P_UEixJfPFAe>l zx)mkgC?c(|X}ecw%j|jeDrIF7O`aNdn7y-%U9>rvdD-`SJC1|GF9M(r9*f?;HqN_4 z6&-Ak(h3c@@J8JW5F;W@o;4HM8-rRey%X^jOo>t3(*^-R`8LIzDO-~NX<<3@Xz{Hl zdy~n`1K0OWMbnngRY-H*QyTaC=xV!_92QXiOpXWGlEnzY$#JQ@X+*YzrMS>y$`MNn zb*uMTQ?M(RY!~rhCid8j_nq;uuM~E5LS}Ve{tmZzv=$K=xyFi&(j6C7EwkLwXusp9 z96PuD+jREV!qH<+lRN&Qng71`oRZ5-o9V`s2%xgy8WV$AAZp$D7?p$m8-v^w%-k%i zLP~f2PI*vWcJJPGJv@e~rpzwe&~eK>CgZDz4%e%GfqS`uLea^*G!a)p9#s`Qz!HJC zUi%w^Pd@{92>C64pk}}jT(!Pqk^X26f2O!uuUCLT*#@gjMv2f7NWBNMm!XlqL<*ys zB<<2*M!UP`;W$;=@=Jde(gTY6j!OM+K5n1IGunm7vtsrUBA;!qG}RorNJeNIC>ev5 zS#&yU2bJ?p_&6;)il%66pk!q*l^nGsd~Ba0O-!k#ASJ@iFww=nJpK!s=d8!4)Gd$s zPUipa*Ytp^+NI9pcQ5(w!qisZutkRKh+HNk)tT77r9hel=&BKCzvgD0gN=5qXsoM1@@l5%J`#z?e=MvSI7`) zb$FJ^PcmSj(!B)Z)PHE5q=|d$M92Mfiu{qH$*Z9xeDXbJlX#suhy*XT7!)JMnZ48# z#A}itsspwR&dfBpw`FDtJfL!SsEd!!>RV@5}RKyHdCVO zA8xaSPy0T&TMh0RJyiMjkfL|;%L!UbwT!#+Z*PVX2tDDdWRqyb#Hf?IPU{}Fs-QwA zsZl4X3G9Sr}yO=6&*T^XgUeld(l= z`$l%X8kO~4j1zD-2J6ODu;GpQbzX|5F!yu5tw?blW|Wx;CtoT-anJOGIjMI)iH^4# z*=4OP0my9HqV0h%DC)NH%K0@Ri4Iifp%0m$ZQinj=qafOZG&5k?D)RPymLHw7acxh z1eR;54R&D8IFiwQNA6mH;)meG^u#PwRAW5rNzI;Xswww3_Lor4pj82u=3IU+x%^ZV zT)D{Q!<_}#wPVX}>RlODG@4Ua!m;k{GR`@$L(A`kr5ZB-d~&|XpBrkl5@~j(NRy}Z z?lKIs?03q!@|}@16dl`5F+Y9Xrs=v8^2Vi!Ju`pG?wh1GKZ%!OU+eu@FcRmFWM)V? zB^^sPQDaxQpeo&WK6uazuh!5|zed>-Fmg?$g?u6BvWpslV{aN&CM~_>cr8Z9>U`gc zSd8R5bjgMq73$B`ZlI{|Ib+J(DG{6- z%I4R!6XMU%GR!%>YDiZpGC#LnY!D{2sC>fBya&O2oNC`FvFR1+2n^xJq8guBL6I+MDL?pmp@K?U>)0o}|sA8=Nahhe4Bs0$R(!Uz@>^gdwfI{t@in z&iKAVoRqDbu{LQPj=0*BUyHj^uCL;fd%GSeAzvYISAo&Z3y%osWI}~x{XzF78w<^5 zf&S%dccp00v@;%^&Aj zXl7JkU*fJ=WetZNM;=8uMh)^WmcDpr<(0qW)O@X)>hy1TEoF^wc22sYg~`|b#kP$f z`IMAD+Lw9v*IBB4#*fz*sPU9qkJ)Fc=j*gDe7qc?@!Z%>h6?(~$COa1`*@>`RjWc> z!%^%FdD>FmQ!3;9=7aNpPa?^SIK3f!AO+AxY#A72d^n0s*tf&$L4#knB_(8Z$7!U^rAWM*ukgg zVZAE`w2m_FX$gmok`6rwD=*@zPh7r1htzIk&$ib$M=-j(4Be{}-*py}PP?v5?KCy) z7`yG_uCr^=R;V?J?}rM+bPjL2W|7pkx3PBiP3u|Sd$&!U)sbT%ukLJ4$IedNy^Qb{ z{To!;KkzC@!s>d$sUIK4%J)6J-ulJ@meG)Bb>rWrlry}s^6kHK|Ni5_ls^JQ4Stl1 zAUM(6QIZjQy7q8xM>|f#V}xbcf!zkW?rPTS6for_`e7}YW$Bzx*ht=(R94h)8X6DfTv1rg)V)Jikl_Ovcl1fk9E+^Xu= zs*f1UvR)#?5``m|#|L+gIk^w*nu>TnWIUhYK5Y8&-t%FzwL$k0i$7nUk66J3JVq%v zorzIv!d{Ot8_A;+V|EIe9^(!g_b0|3^@lv3?=@YSc(ln|k7cS@zd%w#x{W|&X5=GEwG220R zYVoqGv(Ni0K9N)J^8zmVEEOE7o?0r39`^a*aeI{1S9$v1l&+PyhG2EcTWXWVZMAVq z63)Arig-DAsL&iT)I0s*e)Kx7qOxW9vogXhTPvb!IC#g=G;J({^~*^Qk&1eE-RwzI z`R1pVhaWop9tgrYnV;K_E}l{Bd>^_sEb3>&TPG?w@=>HQsSD{oG@|sCIW3 zUYn(C)Fe%GQ6+|%Wyud?9{X7N_&`jvcG@R6zQhju_tS$L*SA(a2hRRk{U~+t?{qll zDcY(cUA|P#vhQ4(TqONg`eW@?7#cfdu&a>@E|RR~ox1SybBMoyVFl(~&I@1T$cvlg zZOH1ezAHH(gcQxM;PQ3@G~Xa^RYSzQ+t(2 z5ul#cjx#S!5xo{9D!kny-%USujZyk zPQBFCokf&>i_a;f~2(YiBpEHO(gBJK;f}lII8F6*46v_XNNShO@j@0EhS{ogU`NXN^=&QPqijRglj6Zse zQwO3D^BlB*c@5^28Ch69cu7hMM1i4+i8QDkwQx96b8oB$)rr1e-l$8n$3_?AUdU1v zCn)G+nR2Uc=0DMM%>erV))OxAhX*Gs*f$2m6->>1uzjrCh5|=>3#W$ACH2Bn4b`R!`EK!G)&=@Dr5G_C-vI##DBP<7i>!un9R+t>fc)0y}~^~Zht zJ7X~RnX&IPW9+-^#Mt*WL`h>8k)0%swXq~y$QGjP*|Swc$et|`6(Va=h*r=1?&p4< zKjFO2Ij{3QpU?Zc-Uxoc31rjdfmhn%Qz!2u84>LVp{rcHRniI#+X(lJ9zl;DnKxneHpqdGZs_ zt5nQIVA`r}>U|wvufOddtPd3T1wWc%r6L=9+YayvwTk_s1sSQ)*$5zP(qDmgJTSq` z(@>q1VrUiXVt#982Hx$)tfyb=5iQT4qXJzhC}`Ut_+Rzw#*c9**H1<4o_iei=I-FJ zK3mCdlGU#sFdxi}Lj@(t@&Ye75#%oOrvT?=<)I(#2L1{vC&YEBuW$p055a;xe=7H+ zWWXLB z&(v^I0Ny=6oPGoji?$XEf8lFNLQGXWUfg}rxpsvakmXrH0Gv$i%Y41o>N$-8nna5y zs3h>Y8{dW`l2M~5zpB%@q zfS%VYsK8^n#@`}V2ON_Jrylshc3CQw!1Tdo+Tbnv9LpuN^`VYa(mx z8g>^AY=KPItHsHHe*nGo=kAi0#ObmwU_-N@asA(!ncg&3yhH5cZy)f;F}})>ZMKFB z-=-JtqgM;0KW?DcLj+p7rb7V@A`ZdZhcM}bD961=^s!vAPJW(t0?_ag;e2wjGW^p!|KFqTaiTcns5664z>qb~nR_ZxlnDhCA3*_r-lDFX*E;Lnb9 zl|TI&mf`d;1v@0Q$Ky8euTkQ82F|ewqKSv-Gs_lzd(VUA5sl+{_KlnR8iaSBD?3P* zXu}oJgu%Ot%?h*ertxW zUR`k}qWITxiPUMalg9mk@6UdCi*Bt73uO)3+G4nau{~MXxn_)`f*=*S57CD>EvOn^ z4HjPf-l#AN(|Up#R1oDYryZL{hdiP$4~EeI=1DvxCjGO^V=BtGh4KjV&|^ee6lBkw zSzl$bOgTWri9g4mnMyt*A96!^M&TUmZ!ul@fqHqtGYUIyN*WgsY2dJ!X6_T$$);D!MOCXkAh4; z0nHODYq_f45~9(4pz*S$<`8?f>70fql%IhGB%J{%2ddd2YU_Q<7iW|>&M9MBgx5pP zQY$L+x8S#I0mm}k1dyIA#SpUPIdhbex>PdDFfzp%1aMV&)zjn|)y#8h$Pn*VH?)GA zkbE8&Ctlm@Cuud6`GbOM_(udbN> z*5KZzv}2zz!3}E;6}Iz3;mNd=r_7j+BD~NR5r@||iI}V+pm>_+(=x3&W=1C1zQY`f zt?+59nbWY=H7Mp$4%)?Sa@);hM#Ny0k%CiLd}+nN!VEa&0d5&b1Emh2!=Ub2E3x9> zx;Qa6E821^t584kOJVzXU$Iqnefu-U_arRCWVOO%ZQrO=QN;nYdak5wpq}6Es%rB? zhs96!HbQpQZuUn|$B%AI74f))uweC1YLDX1pK7!@bysRjOgL4BT}bTLQ%tzfq;%19 z&4|X$sP*V#uabT{%&f1?dHl$k0&BhryR^`D>HX2A6(yJTFqf@1moG;y-;^#NgP+Qt`-chRW~ikx#V9?~>0ZMKr!#IF>2`Oc762 zz$hn>d#=uKP{x5^zfR>=pYkJ3rf%7Nw1t|h|JuIW{+!!m`=w9)7FhRS;j8YCt< zHcK@PeR!1{hwS%v+i-h9=CGRlA;W0oe;W46?_sV5vFPETYRD571E_|$!S))Ni6^=w5?nTvbo;v>)`gVH=3~LI8T0+| z1Ygaq3?B)o4>2GwL6d~V!{czIxFVIfHKXectWohkqR%vu!nOQrwEhGA1^DiYA}7)!WXyh(O`3X`2`1!TNSNWu=oy=0T&?7XZ{K(uue`r8cG#zOMiq-^H2WrXzQTvO7cRa z<<|~$7Rc$JFuUuRNJUJ1LYL96YP(aOM%zbP;Y>MbHSg|_etwemAwP>ZF8$TKSVm;x zJ+3=cP9#BG-mK4!=16q={GBu6*~rfH;d~OWQ^HI>`guW z(@Mt_^$k7jeH$zk15V{8#JaX?`)U#&L#xwAsy;)dhXC9X3#AmdF_zNt#5JO}E8S`u zd{da>uUB5E(JJJw^VpCYHlfXed$CqON1gyl0IS7tj69g!D8r_3#j--;Bpxbn zH;$w<2agw>qc7e`Z73RP;8}eX?EAR?%qe|T)gEm*PU7AxiL%!c^~{o#Zo(#kQ5mtQ z8ksH(4=Be&!hIw(KSRsgOpBkT6c21a6qT&_3eD$@%HQJ7x}xxqrOQ0I;300bPGa;? zacA+s{pum^n(gujv^8>S7fNY=RUxAu=XHIs+uQ?q)K+AG&!Y! zSGRyVx2w(!d)mCC?NNggi9u_$>r7dBUbw(gBv6@ z{)xTzdsd6ttBoAp>2NG$Xe#K0k~_`Q$QPLU^~YoaczgO&aULTd(VU@j7h8Dy+J4^Y z*l=s!QvY|g9TFSTmhI;d@w;c5p(F8kTYdKvPxCJRy5Ns}t?tuT>D0ov+8cr~EqSQX7YD2`|R3GT{uI30N)=x-%o{blYb1b)x9%cm@?%OPkn) zN+ZgvPS-}B?Qvoh>f41lG0Z)IRG_czmDL6|T-Bdt=lZn5H7S|;K|b;$+6ym^t=vcj+A?vGLa{7U@~VF9YBDh7P30^EGtmr~FQ(CUMaXB>ADO z)&6R??yoaEc|{{p&f?GcrqXl=sQtT5on_d@hpY=FBL9rc@r?}pk>1-K;>8Z%(;S!N zo7fAU=sLdKZK1j*Ic5S)HiPT9a+bqt*wqeuWn$(H*5Jv zsjWu`ZXQ7wj@IHfte&lnUfb*z*ll>e!reF~q%rXcyCacNvaFG(&Af~J`q$@%#3@b2 zm(mYB&tk~9lGU$AKfJ7tak@K9`dGgnOxE@LKWn#Rv-?EjPXDlgFXc({B~pmEPeHpd zoqhUahW+y&R=&D1I5bjg-`Le#T%WP~C+5S$9Grk0jkooIiQArVA1G8N-s;;z#{CfQd-qsi5h-}QV0HWn`eUG^d-PD+;q(t-@~Dt}D z|C_9UHUvxN1Hcky3@B*?6pUAbPOjATB?LlmoZ}--e3Z&b!Sm5bT|mQkYE}SSCYQ1# zQ^5F4F)xpo%n(bHB^03PHH8>EUro+#J!1 zjT5kt2=lQ?H!C!~m#;t`X<>Teb+4mM(ufVx*m&0DO@&bglR*~F@khhCD$9${uW}t+ zd-=qYJCAWU^qTQ~&I9_~p&8N9c-`cZQ1jesyFOd#%b~SO#H9h_N_y)IT3dk3^ILp= zN8{<<`<@%W|1oKH?5|vfnsaMu>Hz9!IvKd!!?LyKIlMG<)`r{pfJswK%#PO(7KehN z6iFGDL{U_HPVA7p8PP^0RZv^4xb*S|HYn^$zMchY*qYzM?9`aD&T=(p2i&N71n@4t zGl2BrgrES*cHvcS^kI-)3E-5+@c0qbgdI${d>t>|I(^T+N)mR_&%4xlz3Qz|ws<@C z8ea)psRa|Vic5#XVZI=RyX%oq7)3Vs$)8Pa9+7}D%_+Ar37&m;PFtOQ-9X+{zuZa0 z_f>JkGUk<6VZd`b@1o!dlgH=u#Rz07)QYP?afBxdFU+Kb!o#i`zpaRQ1K}c;i2ij2 z;t)KcFmmnwd4#t&L3j#=G{kv<;uD+c;_IgUqUGa|#*dy78SgUaAkOG1_!$>unVX`g zEtO6Znu3wS%22V8n-48AFMer*J(I|+YjvRs(EG$=z2_XZUI;D_Z4YK zg$Aw}AXyayyKDB~WZ9S!y&J=P8mZdbuS<41DbyDialf>^iOj7m*D|VMWF7jWMf!hEy_k;2Pu@+DB*@w zw%v*ZIV#qV;P#j;I2AcI3HmxV%0?7I4DN@q_841F8Hqj%oq>7&-FN!mNb#~Bursb0 z4i+9m!^Gv-C>$q)X3*feuRRmzV5{cw8cKu?5BUBmRYOtkA>i(3)`|Gxp`d^+Ms zW6AMQlkiXVDj)A~5%7@98Tf2A+-N}YPW=<+-=nRI>D_x?0wpJ_ceG;`z75NM>@iW= zQ;z;{<^X0v{D&N_Z06Z6jfL3xRO#v%Jxg)-ht zTb81jH%*q(4YdM52lirj{0ZiWs$>~gPCi2FM~}F>fTH7`mVO-Y2q|E=41dWr66oX7 zcrk(0T*nzhrc%LC`#0uR5itmG85qn$Gg7knut0&da7ijm*}UvF`r@){0tL2>pR~Yc zgIE?u1m=|2xgtrWzYLP-Sg5MFm*h!;8GQzZZE|=&#Y`d-6-7whvb1J0@tD_i&?YUOp?uD;bBI^@duAKv6BB2Ko~q#xZAkR|DKp*Kz5m)H;bL@?QF;e0~oi4J)k-Cj+5^8|24*`xRwV_6Vqhk4j8pzL-} zU0G_0=hy=Y*3W}*WxvKOIFrz^x4O0-Vx;Nx_%BQ?7AaO9dTjCN`&vck9%50IRYp2d zGY_uhJk<8DHZk_K&8bmTf$;mBeL(-F$~3IT?wL8$h1H}Q->_QeFE!_1(9dN%D*-2_ zTBp}3bFFc2AXnh=v$OPXJ4V79LK7t~zORYx+75dX{YCQHpFllGMemaY={i@IRL4c2 ztQ%)h=Pt;w&@fSkI-_dtA)C4|=Icbu#R@U}YtdcVsI zi}NGl?XC6o{?}3$m$t*7_I#$+q|7Xw-QWkNe(QpeM<;dXgX2 zwkVn1A&Z!!u8;qwmB{PTjj^6S2G%mhav&s|Zj2bum&l~1*n6c=fN!PLRaJ#4d}e5s z+Vv0YTOWqw-R-}vuByfPXmPE^)XPgE0&%O&Hd`E z%O(Sda~9@7lZEMLCzf=+RuP7cVdKxF9M`mUsl}w*dh-_PnKNs$w2%An4W!A2u?jkd zg)vk*Yr*j^FO?Rj(NN|9mVi={1UY*&qKQn)CFh8a>xZ#)B%C`Lre$cUq){TDzCm)0 z`{+;+CzG^>iw~lC6>2HFhepMcqv$M|XaZbh8UB!;X)C{EfaRHOuYj>VwWSdoZ6P8t z(TbmFr1uUNL!)??_L9${{ySVT&{oJ&uXM z3(W?a0Zc@s7UlKv(7_UbgJfl+e9pCV>#!-67k@9Ak&Jwn4K&+!N?@F0)0VxN67@HRcZ?2`}c4Wjr~vtTs^&>Mg>)}d#dge8~aX+-xEcx(wz zSs?gdbx)of3u*rxxh!B)u+g(2D@3{(goD%U1D&YS(^aHC-UPOVXk<{ofau3nMaA%^J6cnfvMQfo_f*#OFY+@eL%S;#H>;r1u5{#=7@|q+OZS-VaI;N&1rpyGh zc|?dDFJ~;=LD_o+35sc8UXc`+nach&f|;o9Z_Ry64Ee~GA_`4(nn(Cld5Iw5kU)37 zCRzxBYRoMz#*tlk1$n_Indw_%6ZSO88)gyYg<`gr+M}ckgM_Px+-l(|TE@xV^NBD> zDh)cdHD50R7c ziAI1R0g76X1 z!S*#PrRU$FM{(c5BDW(sn{96d;GrpaL|Hbhlf+4%EVji3dh7&N#gJ=0>BxC4I<=Jc zCfL#}A`uwsAhSL>rn6=V2@IP_ikr%CEA$U#u83s|-%pz&Wlb38)Y|if5NVZ5bFSlI zB%GpVKTSOP-nr|ifC*`AlPQ$ubNd%9I4=*aZsLivNxEQyF!2!rfjK6fITrWLMRiy` z4G=T=RItok(<@Zw*JbE2z^qY3r1vfgLdAwhL^mQ}7#PIbcW#9mCkLUn1`vf1Jtx%p zg$xfm;I);+k4NAT-~kn|Mu1RJ1zk1d*{whb;eP(YJ;?sOz%rh?6S-UB$f*24GK$TG zE?3bcrD`}yS+|hWwQyrTyJM@sRh(-?tk9skD0H1hYq@Bm(*R`LVthqq&Xvs9tLG@@ z_S%jgGJx>n1a9aeaq%mn;>E=C#a}xl0^}rNlxp*w5||B@L7<)hfO5}~*2KB26O=cC zPK5=D>JU7n0#9$lT5OS9%rsoA7m6}*lrda}vF!_5X7KZDH=Ox49+fxl_)P1k;&nQtX^?d{#&gKD?@zTLWHN( zh#+gb>8c|z^w2VDWFtI64wCs&1D5%)`d1aov6czR$>hoI!{Y6} zRqOYwe1;qLy0Xux7kx8rcygttEAnxzL}UIN;fC!<7dJk7`bzg{gr^&?>vuov3ys|r z>I!w2kq)p*a>)cE5jVK~3zW~nz;>^|+&6)#ttO^#!qfDXsfG|kG|T{i&Bp>4ORK*j zGdfJU8O;#PW(XYxG)s1KoDN-?m?WyN1uVBX2G=-VXpMWcJ66+Na0 zb{dVBcFwb(lWX48eKLZSYLTXouY}2;0oG^QA!nrgN(hAtZZ|ltZAy~kGJ=2Ka!Vyi z&6T{5yXp;T{>RN$_?-i`B0j-m@GltY#QCs>pLuXtDj@Roi{B94t_yjbz z`xMInx0P$vxw#P}G!8>_HhyM|bT^+*71(qqkYAZ4azf$E856a7L|oON%?S z2i1Ev<)v!6kY>a~t+%g`@r8AOtX%g~Ip~ZEU*@w(zf;8*LeE5gc1El~ktm-q1mHuQ zWnH6UuXwT7ji1rb9XhA0maqNWT`jTYMIHoBu!9L_&}jks^R~}K5_ADtM@H`KlQZ2H zT6)_)^`g_dy)%1}np(JMZqcGX4*lEAQo1j9UWOf6j82)$<`5FtVo)n)H=jynGJv{- z@D7YcENw3nvVY|;Jv>zJdX8}?%u{2r(z$|*$*h&WLrrj5HuW6SnbvEw`t=I zVSr{bH>`R5ebM-e)WoN&7b#X|)OolE0-XOO`Z;Z4du(D&>h*#7>w0!I^8`ScEr_07fXIi{|T5^0^`pdK|(~P|I%o&RrCI15XV88_q&j*)rZi{l)gH|HQ3b2f<W>M+LF$FnL`YC z+26_ao1MGb>*f3W@8ZMU{5G4#*)O&aesG6=@kbae4c_Ed$NRO5EFnA>Iaff!B<;eF zcX>fqN*~F*T3SR+`Mib!F@$dKr8_uAo#f`+y+s`Q#ewh(1Zow!W4HO~7G1DIx zzodA)oER6vQzI!QRZsS-#AejCw zTO(HDY(hNQAe_wlk`s#n&=FL?w{Z@^<5f;tVCDgn&z2IML_~|`2$qcevskaZN0bm- zF10{hkM7Wzj~6b34nK_^KaS?q(SYtl1LdeJtgBx6Ypr?5Z05B9kYN~z42$8$Z^j&o z-Z;)v5LTUYZHOM*h@Ld^5Z~PRsvDi+9W6Zd&Z|W2%Ja|uF`S>y$86-qXeMpu2+)=5 zQJVpZzE|DW?-cd)c4S&iG*eK%B{j&*rZZb#*R9^rbzE=Lx=`tu{Om-xgGpWYx?9wV z9+S@FGnQ<;Zoj6EmeXTQAt*TJ?d55o{C_i{Pr{;DM+6;RPkdPZBJ)pHaC6ZmPyC7b1ECgoiGbJLUg z$~|GLyIS+<@&PDTStQ2`UY?JcxLes$*ONx#qK-Dxv8+&qNty`aS7yORn!AT(>&WWi zdzLMy`!{Fyp|6oq!+9vH3{)9h=JvPWPxJ5m%!lB=`4d2YisbfrUiXDUkq3zT=Z-p> z4zFB$VtgeplJ4x?iRJSj5l+`ORF;k?{&sx-;qwJnPFHfp1Tw5Mm!yxZ5`t}(w>1?X zW`4CF|5>DkC|((PeCzBoQ*3Nkq}zehgX3XjtB~yoMk8GCCPclIdb`eKh#sbM7)|6& zd*58BF;^;x`H}p9vHjVtZzZK{59%50uD`A~{DS$G=1G+cFCrdDaJ{fH?)``; z-GcOM7Pvo4+m`tG{;q=-eFYb~;wnG6;K@43c=fyJuc+%IA0CWv)N$oyg(?;hDDn7Z z%xV5beKDu0oYD;5Rti!E(}k1q%ar17s1$x4LC%%eW`n^42UZLcpiou3@g$na1u;}a zJ2m$*-lm1NlDV*WL;@WYO^&oNf>C1;{A?%!e((-I1AP%{+2kcP1T`DV6$aLwEPNWbqGpX9aMUk~sUr$(z_kRbazTGj;HqVRA#i#LV zr#sInEti2^n6bRWnbFj2$;%>(KhN|{YO{P0$nUlVD5hdD;qLCIj;Cf2XZ?;znuoio zwbXY-FMs%R{c!8e6Yq~7{@yqogTRuk=J$0*>3dXQEV+GV3C`*;j09A*tPBkm`-D|b z(-k8r=b85L;e3s4hRyI1fkDP<|$s)4y`mnCLODWCxo{)V6*%m1>y{9z6`rnbwN+ zRmD+?M1!X>?0@h>2|y;}Dn^Oo7)}RlLGUJ8K6N1=hA1Fn*O`C41h!BjL7EP_iJO>; z>tj-m)zuUmS6WmYH3NSFao{Y^woYQ|{?(vZ)s4FBy3@12H8-vJeh0U9-nC9914(8H zVBD;@K6}oZC5jA;7?JQ4Fyg#BmWsNRW9C&D_QT2N;l1z+zL)+o%*ifBmnEMnM^91* zUZHxMD9cQ7u(6Vd;(#Eubkzcqw!g;Mp97Z#^eJ4f2`_5ILK7g%c)i#P=viaN6du>w zY=BpDi=!iqe0%dVn8D3Cs8{-}bLbn-x9`ow|5-!xQdHgPB+BKMyOO#_B0l1JI5ESc8@cX?W<*K9Q+S1;{#cK(_CV2N-mT2%O+;<1S zL?>rk6hvY1dID3JRTzSY#jm{ygLVmfBABZr8NwH?a1PyFW4&U`My2iu0W(&QeXb>_ zpK6A-zvR3X{e4vBH2RQbyX-DYM^)Ltv3gY zGwQ|9>VcROcLs?cjkoO^4Tv!F%hb}56v)mxo>yuSa%>yF)e##X_-z?(5vj}e$U0Hd z1M|}~l9RRq!w8wgGfaKg<^61ZdRt@7mF4D%Uej`hObodYh*9+yz>&#j9&W6~C;DQ+ z!^|O*qkIzbRGRwV(C22|IG>#u$R*jNx#Qfq$0H3DAKBdT^Kj>Ve`2UQXphSZ8NH|UvVvP{3?XD=Duarb80f@$;A=;pPt_^T~?Y%fz)7pNw_ zBh?QRLP1WpOeSNggD!tc((mHZtja9Dkjx_O! zV&t)YvQ}B98SibtPB-ZxlP$|y%wQPxD=yUZ z2xi7~^+No(S_Ok3R~(&;+l(Y^8LmQI>J&(P1)F6;ylr%(jJGQa?s0|4txl^ZdjDK%?;!{6- zVewr?R}G;CRBfNyyZ(A7r*(8zv3{82dprAW9~~h|YZV%SrTwyE5$XY<`noDY-815V z9`U4S#LB%Kjb7HK8S2wXDSQe?A3yD-7SyE>(>)Yo`e6&1Wq%I#i@$)$TFt3Grqo_Dz^gBXP2N)Tp5 z(*rL7!%YJCkc7dK^Ok z6GA?vq>$yLOwHT8EV9y&6w;ItPjH0UWmroyu(Vg|b7}=%2j{5EB{nHju^#pI*}t$xWV5fR z-p{Gbl29NajquEiU6@D;cS_;kaTnBo*YiWEahz#K_VJCy_8;Lnvc+2#g1Cv0h6Bn7 z*Mq42ZG78F;arg#?X04QD6^BeqgWV%*3MI#)^(4}kJ_k(LJXjt@etgPz|&ZLO~9&6 zGEOc9RE!V|X}NEc1Oxn~e=aamQRzA&fD#(EQthPX1VsXaO>fQE>98+^woze0t z!T>| zSVs|445n5OE&KCf%OHkHeN(kbBx8*t#}b@W7J`zY2~sZ7S8G~%jR~RvNYfdJYUolB z<{2vV5!57yl?O_ZS(Mc|u-v?mi}p@ngNEuz{QH)z{iA~R^wtT8)H(*}zwLR658oKU zzu(i2n0kBZH^lnv&ZRF=^HksfO!nYats?&%PwsE%L}y2RA_p{RT! zR1EZsDWtUYn?yGi!|MWQk%Q(q<5nrSB(3s?~7@1Q#iC6$0&mKvFg zH?mg~9e1B%L1rVjZW5UhaLPzXkt-KiH_gkbe|)G>ir2AaCE*asNvetnM=csZtya7$ z^KbQalRhM6BJI=XzV(cCNrOG7FG-BA0;!GF*A>=>i)g0i@~FwO!8t;8xN>v~GG5Tb zhzy#{Ok>(-`_U@<5bZ;~(d*>v_tYw66nmG)L433z=25B-)7H7o!^flzuPohSi` zK=x%xzD(ZY{x$jFlPX*q4&(#-TzPeoxYUgOgd{oWI%Y6Qb}XDZQRx8G_>FVb8PO9oLDuXL(X6Q;7-aP z(?^8S7N4Qpv!>g|W@}Z(08zawrei;A9NWm;f*yUx#bC3nFHIsEbi~t5!ag9(8X`@e z!-zP$d-2A4vH9sz>iJ6@CarQPcQrV7m9AE=t~8rzqMO#lRnlv|m)Br}Lu?k0m(0p{ zM+fTYI>t<`^hX-T#_2C08<&h4@sE>E?$*a;wU%bmCL=~yEU4@dNj)PSJ>!*fmb^Na zx6u=+a#_E*9?ze`h!`D)6*YPJ-38dF8*4D16rhBd3sZ|yvN@2;^ zXm1_5m72nCaOvS*g#K3TGw9k`cc10viblpDZ02 zqb|0coF)mA@3gnrO1-hwlNuMTgD5DSV`O6B3xg}Nlcbc0($cAFp07n2ZC#p1!gFkx z_-7AKgSc<5aNazOHFvZ#98aj6X^7=_TI3 zah+Sg7{Adv9&tEZME3>{0~Y+e36aoR5=6BlPHh=dRjXcT$MeYK{yiO1NcHU9Uc2T% zNQx>}eFgCLay5J_F!#^5C~kWNBO1y9DlwugI@VVYK43>gEmc?^b#)d4g7pL|78*d7MKW$%Nk`BNb7?#UO!_`Ior%rrn zZT$KEe9am2_09{x$Eh0zvcELM??aP*%2fpMf9@?@uz8koiJyf(mDVReUN!Eo8fkY* z;Hw6y#9-lOB9nQ3I#UQqP1Q+|KxEM&)mkhxo)G`g1LnvCPB@W?jZ|;YD1PX;w<_>f z=VFTEV*AaDEn*kHu3q3OTx{N7tTP~$SCSr5+tu|eiuCMO{JdB8V*bSzw+j` z{8A;N)R45qm902T1`r#l!7Nivwxt?ma3yi$`FY<@+h3Yv0&j~Mri9-gEj#yyIDhzZ z>Eq2*DmkK>-Q8vW44fvafuCUOp8Yk%;Pm91XFaH_8{P+Fke_t-2{=E#C z2@nASRE9uBY2L9UP`eOl0tmD*1b8}uu7p6}Kwx-IV4NT@xs)3?Cd?{T&aX2NE-+A} z#)w=Fi%BrJNZ<%?We6s+N}{i%^?0W|Y6}!^I%#{qjzTtCaQ>$y5#*vNwo)Z2Hq!Hm zylmkU4_0U3S1uIT>qnQkNi=Y9JqOkqV{F#o3hdb%XSXKuN@L_|bMmT$mb;>sKG=?B z*`yluy(=j~(b^W7qvHz?-17A#DsA1Lpz7-owG*{nBd5V`zy?xl`zf_bvh%_x<(N;J zb2Y;$>eIgPGcg0R7VhQ~gnM|Pw>iz)eOWbtRhc{E9GocI;U3!|1DlbF&2Q?FU;Ik{ znps@3gm{|P=z!AaLPvmKs> z5zw|8=ZN&CDeAKGrCuKOi4AG3Oc^n zjQPh06$-S|)0YCYx&O}T;K%EAMvNV=;EEr_A>JSmNU37&a*gBljqAhVALcASPPi^l z6eam2Oy=lV<5MjL;Rla~HX7yx9s$#NR_pnd9f823XJ6-^!|fi8#v7*}29SEjhQ9pq z|D_3EjEfDIxHGe?7F(h-;W$DqDDaONs3A!DY*46n5K!KifP78Ddv2}axAo!hv+&)7 z{T~9KfY?mZXW!eU2!`rQ6F>IiBfr%pe-pfC4XW03PsaKUgG6NmnJ)*ee9#zvXcJ3d zA6=M9nw(nRnd*DC4)V8JWcV~WNIK$d?=1JkuE8Z~fz;hemRPSjp+tO4u*Pc__QxoW z$H8;I@*LjZPdas+Pb#&iYP5HL^G5d6AL2+9RgG8O=}pDw18c6|E+Gj7du!@Lp}Qf1 z;RmCtQyMH`AIA^AmV95abSrwZfX7kNLGKoM-uZ@Iql3Q#c!*#Kd~B+y6@A2<%9qPt z@;5!uC%sN}$J|CcT=dCOd&kn)K&q0@kAg|Tf1M1TM&W)h!kM9EAmi%Qui@9;mU9)9 z@%#!8mOU26VpHU>A(tb;Zst6)Wok(O%mfeUcYp;)*4={nd|&6 zaPv?JhtC8{##4E;xk+|B^)UHY+q3OnqatzEP?;g)cO(7pPHpKlqU3Xb_{+Od1K#xK zIb=>cR&8jAwp!~rOD`^WPv8^%;4H~;koOz*iPvBgG~}!EAg_xd{Bk&nAn^IV*k>yT z*&od*$6cg}$E4S{ZweINoD^-O`R&+3%`o~}rl;mF=(ssSEBpF^=h8LV_bP@zeOW(_ zG;Tb8GI09j-+5NWP==OQPuaK--oeV=2@V@d8c!ocyksmqN9%r$T%fMwvcp-XC!)_9_dEDz2XiBIll zfx%1Rgtbqv&?u{N{bb!iIxAn>P@FyNwsBF_f5h{73Ag?72t;?~DTZ zVjh@9SL@bHj>8kT@tQEnw+${Y;+Q1Er52jKUYA?chD$HD2Yl?iBN-v{zRQyqCPs*; zi>CmX)@4Nc92y`6jmB?oRKznt-j(*(9!nspX_AWc`wg%LI8>Np_}O9^YN?Re1fHbLrC-Y^|8Vmv?tQ?svDq$B~BUrt75HLg2U|U zA4hD^7)mMR>F!^2Wb*S^T0~5sB|wTHi#@(-9enup6J+Bqn6jYy!EX!wioN$E_ANM zx4%otM-|d^U8jg$@qv@BRx!)@{uLSJcv7sw{VZAtUj)0s3_nZcA( z1ng4HRU8~IdLF+Ide}O^rQN|xW*1juzMhtST-5owFyuq$#)Izl2%^!$P#G|gOUy#q zA4^x+=jQuven6K5Pjf)X8CigS4PtV`hsEz6Kcu3OefKfFRgc4QNsfGvM_GgV&MR+& zvkosgzuuz~g~@H%FGjF*oqWo^{QT#JMqy$lAuHX*jYBKQ7U9_#lkw|J84sDQS><)x z`3mV39Pay+$smGA6N!h6$7Q~=hLV7$sASQ*(~tH7T)lPUd$?mEhCgdYF9IyA<9>~% zP`}iT1wPvnqUM-i7dHDi`{a@o{-nU5lXSa8NkZj~N$$b$EV}-xi?r1%OychMh4^7C z4jqoCCxh(M`Jd5A)_00=-)X5b;+)-07VZBm!xu{b>nNH)T9x<5MRh5!IspXY;ojfVLDdBplumxr!M z5r~y$+cP5p_s};<=l&F2#-to|sg8-L{FRrsQCTJb6sshu$-GwB>13MH^2<|VFV%n9 zacJ#ynQ|Eeo?rpcPa8qP=IJ^0hwj+?I_G){} zgJQ`mW`6Hx%9Yzht7BQAWU)7W%I(d?(*AxIFaFO&T`bN2#?InLD5YrZOOYU#2(gk$ zrE}zxOi1C*((f@!fR+3*q}K2Kj+;vNyZ15?-8=8U#;NqI^2=Ty_4{y8uJUaAlI)Ge zoe#%-D$l0RXFd3Tq;Nn`s` zBWu|diA&l4d1MJb0#$NQCZEz2?}9iQhu8=7mm_5N3dA?X1(NU%5TvDjwowob4np-ACoEms~i*N0hiVFiPM!xKIb&T-(u-S4&1q zU++Fi;NX$=H5|Sd-}*p*#|TannGj+!3;ECY>ZAyag*rEto)d|`ko@_mAWNS3zj`vJ^^8RlBZB3ijJkaYFwvCVbZS?MYDju|EWc`my6;Id8-g$e#E*5gDBZXay zOlu*qB!OXZr!-7)@Glcs%OlU6r<~QbdaB;gYDZdn{#X!*2A^4E{|`~;9Z%H*`2BMS z?sn|0d+n9ISNC$scI}-Vp^^}#x;8~!h3u}GkiCg(W>pe}A~OvYQla7T{r#TT^Za+t z-{-u}d7aPseBSS9$N#_}WxN1O-89?jTU+tre^#CNw4O!C@0L3KkyUxkBYV1ty<+2! zk(6ntgluixO&ESvfMt9VMhUN0c>!mo?Kt4&w;S8tH` z_w@fJ_pP5LX^X$6ePPXaf3TNzxx2c2z+mF%W0ClxEK{QC^z?dvcLX3cCp?BoNrHq-qpq3CI z9`V6Z?3iXTBut#`I7Q5u4c})v2~sWTaA7GxdXo1*kMDOP6K^H+0GY}O-ghJ#tR*mj znE5YsPRFuzLK-lTz`&X$K&p7JTGtCq#Z+4(BgP z<1b;7a+vC>4B#XM43$8Mp*q!^=WfObbf5n5i;m zaB1~4sdI^<1|_^uD${UE=_p-(YDsjZM66Q;V3Z(B@BptUx+FokAJ5KQth!SoQUVt( zg3ItS^0zQEl_R7;gEO11{b%8Yqa!v_a6?TvScH)NSK zbTVnpBwI|SmTcZlwphAteQnSUC5~o#Z_NH)Ao4aFwU5Kk0Qkc&m3!|MDP}9hWT(kw z4^On@9&%2gLIMl*4gfzh3IC!5dt-6?%S@g(#7y(V^xyjj7LgAf*clF|%gOE%C%Gk# zV+G8`{ehH4({_K#u(+F`q3FB)<)|+Kk6C#@HBG7PgySVkp$PK5J za{c+!8M+TV_&2;o0xtGQm<+%7Eb=p}Epw16cT)E^vXZnCPKfw7XeAfmBkX5zOWgLB z=q35`sK)m}of2lYpZbGXX&B!3ha3leJSWM-7SiC;Ku`PX9xF#Y3oO%B5LP15_7>gTEvtmn5f0 zCSTBf?od`quBn8iEjS84Jhzn<%t+!-G%^{vk+H&jm@Q1sd@p>n$R9`xOocLp3Z$G7 zZg3-(o`NIOq15dIDH`gd)A9#W;FDXz@cJ*(Qy(h3vW5f7hl2zY1%Eswk36|TA1sIq zbk>bin)Bs^Fp3+QZ!j~Kg~%b8JB9x$$!j0eJ7D*0r|fepBD*?ct-R|AzS zNE$XJ2Blv!x_j;9kzyXRts`yMkNA+v1Iayq{-mX%nS%8XFwUWg2cN~ zL+pE^Nu*#i3t98wk+d>6!z^LgU^Fp=>7lgTfcB>5VyOdtLi7NatAVkJ7X5Q*>=uo1`3=x`om6MbMQKQ&yVTl z=^DnhM4rks?`BwE7o~Wa+T2{LaU?#PK9@DC{mB2ToRinty4Fld_VgO&{F)$>hX}5P zJI9?YkjxEL6M1r1v*psgYF;wS--#M&yk+$En(>G-|FBH$s=?~4!JFlOc{TrP(uOt% z)oUH5H*d5*a-b0b`?&W@iM|L(j;71uKqvzWVbsN#)i;m1*fL04B%tisQkg6u)~EGi z(7QtYsDLi=3=<|s3x%`rZ-JM#cA2%M4e%ii8 z+=*jo-cT?j-}nU(%l}k7yY?}(r;c2y@cTf13-xW9^P3YQ|Gsci4Xv(Tb<#0J!7Qro z&)VpZm9e|05`Qe3{p4N=PXAJB0%!8A`+FSSxOTg0Qy!XZRIXa*Kx1asIdT%C%EQZ` zEWj@)5w>yeL0agyiou7jOe`n2s^+H_*(DE@Kf7TRFUNd@tSa^n;T%64|JNv3;m6G` zz+nV#Ex11VIjjh?e$*UP`|UBNItL6hjw^Nc~?XEV*wE${3}mjdi~RkB^W-pF1+W+FJAkQew}AGYSL~*x&$- zKWwNn%_)51$Y&?*Zxqs9P0pG66}j!`TH_GXI3x&P**(h#V~Aca6}!DE<2mGwnaJbE zxO@mzT~Rih3=^Jj{B1-Pc@7ahe_t<|uvvK^T-k}HY*r9^+9a7~kNm1DR*dQC62;@G^ZhgA4X6Xc2O`E`%ql~gMcSu{`O;dJ5CF;qX zYHve+n9A;&>Z$?ch}hGKv$UrUzZ;1!Bg_uJnNGAQi8d*plvNquA=RlZ#w0qsHStEa zEKz@O89sR#r3PF=pGo;{X%x8>^F!LfYR${)LD9<7RZabtD~?<2#QWHs5%tUSwvA2n>!O3*c7NcTe3t>TyIm3PeO6 z?4G|r7#y!EbE!70G$G`+I?%4>_dLwge9-f}_(k)!#* zn#mOBPd_GG*%q(-3%VO+{Kp2rkdNQMPm^ZbT*%K&Yn};t8j1Tg;F7{+&TlwyYC1aK z20e$iU)fyuZFAVP`u4}_)SK3icQlf|D|kKsWvkJW&wOdcO4CKL9n<#8QK+3Pw&ymW zBzBCP&a;yEPvfiLVA@8z)OYD$BMLxsl#9DT@VLrtjndoJs^9i-cO!;w-Y?}9j&}UB zlWuO^*6etgES#X&VlM+%;(N(th?b0%z3pP(?hw9jO4V`=7_urK%(C7+7c2>ww2>(t z@opL|cQgv`59U4DN&NonnoM1a0&C{=b_YsJ=4Z@<90V`r0X5}5dG8oRkc{+Zx~8CP zchei|5}rVODJwt}R)yphB~;uqVmZ6T(&0L7Hi+`7bunx&&;bc#l{{w@sdLKRQ$Sp9aEi}M#;XuoaJ!7~XF2fv0HwcLldp3kZ}Kh%)l)pZ&CyobCy zPCbldCIOiw$F0kbnf=1l1!vWmLUdd2?ZjG7qrUrteK4iy+n1PHbQI@1tgZhzeYjHd zTsz~GMu}VE(D^Zh-fsa(9Wy{@+;^z{osJ{J>e%iCjF&1J=poz`8*6_+TB7#9H06IJ z+sMV<^!ZoL5z$^h&L4!BwNvMq02WFCKG7!a0+Y~R3K-2KLnc-VC;Zae8@t}Uc0rGj zm<;*AcFf~0R*xQJqBkS@+tl5LJL_h{=a#1r5*Ew{rv->J`BB%d9C!sA30~M6VPU@~ z3>QehItP=UKhHJ$CS!JhZDBmT_??YEPZg)l3zFAAQp~jyWp-LG$G-c5@gFBXKE?*CD{pQ%QH-Uf+iKK1aNP$L$md#I8fucbc2bb(_x5OjEP z1^`ExA=v06x#IREye1^jIN=WDJ*dluC-oUKV>tH=N(=#M#4#qt19-7%ri@GH+W*%n z;TgcK3(#;p;Fl1G)=0T`m+3PKdh zRV1YJ73y7Q77E%r`!>lZO?@Q?Gy>#Mq6+St9F>!CN&&Cnp(-2xKs@@Gl?8BKmN#?X~3)QVHa*Jq$$2YR$hAzm=pt; z%yLKw+s3XhbO@AAPhm68Ij+^8edP;XG);!A7N2?X5q*{@R;i9L*G{d4DvSr$_54Gn z;Su6xlLl|z#@#G_#wil2G3!@qY0^jbyC8aa?GRmG(=z2+eS9QE_m1(xTT#Txo)yiUR)iOeUq$h4;8Tz6hoT4P1N z*uJEgUzj_6|Lld)I3HEStcl&@kXNqfXToP3J(-@wylC_RP2p6O;Y#@9!9y5R?z9(h|G(9dQHai{f)tA~#N0uDS`XSA~kcDFT< zu^;I&YrxY(A&AO(8{i2lyo+G6*7P!tXN9VoKmhocmcdk$K|W0qr}Pd1OmrrrUMZ5S zGFLbsn$X0VFAxeCL`>DJk-{~$H0Ets8Jw1+Sj3jjFIZ|bmSg;bujKr>%vHhjZNorw z#;xe-Rbg?>WU~o?HHLEy@34B3$j+XTYQOdo!#852&weK(b4^Uz#nk*1``z5>H3_Xb zQ|oK&nZ=yzQl>6uhjvBmSr6^kWnAXWoO;-^8#34B&bXMnEwbP1m|mBUo-_CS$DY&2 z`Cc*A#llyZBX`vPy>jlHMSwm>-iyrlst;W(gHLhf-*OvNkI*2Ui@cj@J4xkZErDSz z@Hs1D4}vCAtz_beu%+-6ZH_4`{rQXW(e!?VDn0hI)&&&*(IWEWJ~3*{E*V3NMd89G z5!}=9zc)8d@JK><-8q?!yvk4F{efdtstCANX`_p>wQbzQb0Zi~mB6F2D=|aLA>GU+ z54_jEn?&07F!T!o^MbZ2_I^KP-lniTJ__tyg1jkQDv2qqNeah{s2FM4*Lk33lQa9NRaz=wZ=c?BHKrnFZ^Z99|sA;lhY#{v(%4hP`JkD6U(aTRR}lz#sv+9WADGl!_`BRkvq#^9qTZBPC8&BO8#%vcZ+jf`ii=e45HrPM%pq%BAS3|RVwASSV_#` z9XfG3?51Y{$QSQ8ftOGrF(zni8oXn+6^%iv?gEawE>G36RSXtmXn%kH>UDcRa$^qj zp@AuSMC5dRVJ8OY*4OOs@om1#6#`oP-ox9^G*ZW3uOi)|pCda|iu9EhYQio}n>G!J1hzQMFW>n^;< zEQe|CWW5>0Ch-_O3(^=09v@^5WhNN{Zv#MGDJo~@%gB>me}&-%GEiGeqcMKF2}tk) zlot$UxY_v((*RpSJE^tp(Y?zjtC=2LHsnEwB)5@dZfz8C8(?mQmP!c%h-8?7_7B7@ z>hfaIR2#|1H})8@3K^$t(tAQU^rgDr(i4M}A%)uJxIjVMqaptd>N(EhCfz2>V0Iv` zpXDUc4Axq{-+Q*Gra+*)B1Ai?pT~+8eeum3=05TuL2Wy3>(9zn+0ORnuiMuz{rx2C zG4fhSI5Lh?4>-Aj=zN!*(0cLjMohr(wsar(h0o=0`ANUu93H&dxhEk0o~5`8BK$1l zA*}m>)RSLhvWpk*!-(HyoWfq-KbKi~Ol)^~C1%OG{8G}(H(&3KVvO28hgbHRtckHw zM~{CyKXEZ)CyNDmcWM1nT$w(wzu0EC&=OwDL~mhn`BS^1X+jXJKM5I0cwh8%7Z8k_ zPuAw$Lzcwdr2+`ksC^-04nP_3R{X!~{dh`0fT9fmh1 z!mftm?xT&f<)va62*whUES`WeKzC4J9Vm<*2-m{Nr_{r(6`9y5f1S7RrzQcPQ0Cxz z{MZ)e5{(=adU#;1x;D&~PJ?k>z+fp%k_}Abx3LQ#ZhcFcpAIWMi;AR0nOuM$V`G8< zoUx&t5WLQ!!oT-*|J36+j%4GqlIj)psJcl!4*cu9t&C!Wu`0P7L0?2^fCd{&)(Z}_ zfk1J+0P8R-#0F$NEQ7Qup|D$A-zeM;HtbyWRt5~H>41U>x+2 z2**L$P^rqtIX>nLpNSLUmLZUVkvILazcr<17sO^LrjA^ZL;EPpzEuC5;MU2c8DXISTavtTSK=(YWW*gw zh4}8IZ`xQ6C3J~g`bG6)C8~UPtLantGG(B03O|C@LmTMLz5K0z7jK{f7{3IVF6w2d zsNCbw^=^`Wv7>y$=NzJ6g=D9S_EEt0D?plL>ZVj7fZAb`CS*y|SK>yA&58B9I$AIH zW!MjfWi<$+Py-_K{1R@M1JH&3H}5xNutVvXK!w_+ej{&tW9d(@Bo2W0kN`MSC6G|0 zbMoC_J=!#$NHiVD`~$|J>REvs%J8iQtNKh2u*F%h_FEvKmNVg&94jV;c+-3Kh;$z-t`&;T z3|^lL;LoDuy_9vxvR`P%FL63F8JdhYn6w;;be>rwp_EaY+4XQyxfXmlox&4m{YJ&P zaON`Zv@Hw|lxLOrMOfUPF;f^ocYdF#`r-Py`O4R6sUL^Ugv=~T{D1=*>NxZwNpQs_ zYtT@7N`%8lhr`rx*Z_g^DZ?kiDCDw52`_9MHW11hLiGMlMYO`1rKtEl{Lv2;eC_$? zcZf1F7pzcFkh=oUkLP8L#IZ+u3$zjiL=fFnxC9+Q;aQ;gZDAi}STa6sOi6`{+{8g3 zXZxL{dO!BJ&Z#DhpnXpgeLsphL~s-48KtPWA(1s|8A4yef`g>!wvt1hLKQ4(@w&P=>I0$=5k~yCL6k>ukByUl zPJq!9uI}SEbMOq8P~G^<@m$5(kAv|M>QhfR0I2Pd*oMco+z&Xw8}pat+TG&d zCxp5_81=v1kt^DIw`nPw7M zf@<#0-D-yU9I{^L?~?6)ii0wU>;?~&)>Y$RzUI+k8QG;B%~ms|c$wdgHlx5($Cj;2p1&FbNpC3$*(G zPClcPqM@z#5^62T=tP&;*|GytqP8%q7?T9xMa38V#?$l9oe`)of75uO>wGV7D9=Gt z`oRR|SE~lJ3r3H&8_fRr27mcV&-eE08aiso&eR!h;OiT!i8uI30pQkeeCC@74rsqa zzGs|Bw_$$wC5;xeK|hB`?=PLcH*Oc?i;Fj4-9o3k^_<#M-PCy9yW$P|1WI~k-wyCZ zcVQ3vyI4iI48q&6IvKd^n@cc4*ZBpL{@ex-xK)7HZdK$GY1-FRyEUDbzuT-J!kR~y z!1j-_Fj;=%1LEiy=PPY2Tw?hx4}Ro^cf?%dSn+zmAT%yTziA#b?QRt~LbB8Up8FZs5-x(q{_WKP9b<@XI7*UyU#ccsKO{f?=?Y$X#9cozD_v z@#AcqdGMRP2g5(iTJ(&BE@9!7d42ElYvjt}Wi~*VB$c{^cc%|QsW6P?%IEPFwH3@- zK3;+$C8J585TM+5@!7}kmtT1tvAKpVSwR~dSL$C73761bey64nXfCc|fwk-Tgd@6p z2^4DUx31T$ z)HmqpnW^KQj`*iwv$&BMb~LqRO}O^q=CxI{$j5vCo(Zf_MD@Q#>#sjQT!c^cAaCY< zT;KVCJX~$zTYa7=%INvf(YCKh-j?hcwp}Ew_254g;VTyL?nOmf#|ZYlc;^!}3ya`V z58kWy)Be!*xc=@BeWSHYXiCA)v+wW)!k_F0cY}K0R^?95IQga!7D6 zVd7OH;*XR)M~qZDc*ICW3K?XYyjXEa;?s!y!yD%P{5~mJWIA*io+Ag3fzx+hiFx)? znK-N}rKxf3Dhaf>3+l_Z5Oh&Nahh@QdaB%ygDWueo42Newm;sg3koK za0a(ZA4*OXIu$!NBA=EB-4BZn+4yv#iK|fY^Q&4IS2)c>|6|3y>+aFwbbp9f1z!M) zfLL;ZK|`IxZ-_e`3wiqR3CIhn_ntZuCvg)44l$-iS;^>+Jb7-rkB19F&@Raf2JA8j zZr@uZ2|oYt(yGLx>XcGHVoQ2(@f=!6$$=neEWMujX}^yIq{@lifC$w9R0Kq-4-|)N zc_FgwDYNka-GQpEIfIl4;LEV!OK!3A9-kC!h#aKG zV9aPifK+HB*a-2eI%DuuTL5T2tkUzJsk|tE`BMj^Cg@J{^0Pe3BRi%sS|n!Zv)tqJ z!=_a|*b4&GHv9RU!p9UgL2BPpDhm+(9zre31ndM}IS(--fu0+Ap9o!F<$r&+rPXXaJ<}h6e(RS1K;g1R4J3K3+%6vtF|yKpbcTT zgf`0ns!kT`Du34`4_!*pK}MsOKlBE~FYf(9)W)M5I z$u^8lbFp%>;fc&uxAOKS$1LSRtlnFXz2!?BARrW_)5E-W$L`dArrz#0gh%b|!olZ; z{IUTsX8PO=e}N&_{@P)6ez?{u`plwE-hENwm;|ctv&qeRg=79ZQ%?H2S-sV`tdHd< z{&9aRJpWD4e)99P$sd=@*%&NNvFEcsl)Wqb>+nHCU*EoMjmBFmN6$_@(;gTkODA)S1X#5cCWElfc+=|0nj0i)$62QEz1SyMR)VKHl zn~pjcV**SD_~*BhG&z?r1$dNn%T}V&1OZB5qY5CmQ%o#M*!fmiw2*kLd0GkQ1Ct>c z*9#Gr1!Ej_?Yf2^(r$WTN_pco{wEUkwJ7C(Ju<8=T%Q&YUMjd@@QS$@~5^P?!oKqDTO8l>w z*e)tb$H$%0{+>HoPIc|OkQxTvEe6vo*@G$Z z|BdW9%PX%?PRFsh_si(D$BI@zhBTuTkM+#gk44CGp;@vXkb1|~Yc_hcP&dFp5r{rVut8JDyg78T zhGhI2k395-2M4biVcCzg>{7S~ZR_1)KQ%n^5Aj)M&`xNn5-JrLOjBcT-)r;49>W8W z8ejNFvrC~q(F16H8ltxrNsuu?{wKz2U-ULpp{L?^w-S+=-jeqsBo7TxZVGT>EYyP6 z5TXmF4A1lQ9;_=w4Vj<%e$Kw@?T>Q?B|0ALuJ-_!tL9?D21lYUVn@uU*l_bL%eyu2 zd-fO3UuO}dZf9!%8xAIyvGt2Tdw2+#im&l3C;u0Lh)lN21M7gg*B9E0*E0n?zk2qhYUBEfm!`HjQ2|5GkL*6&oO@*w&t zq9ZK34dX9u7hMlTH70KnAuwkGLGTo}L3gezD+ltar+-rcM~T0@=-~K~Oxj?u8`OgV z5C~NPupq9V&>VW2YK*9`q|pVCGXpv$HUrCY$>SCS-*;T9jLJ zzaRiVn^7cWwK|X{1|+wSHQap)y7Rcc?$+mf#NqSVjD=cg@7mwZSrY%SK4`Kd64h9| zvYEKq`5M@ZsIMyt*wOSR;1NW@!KWcf6z_1P5*cn#Z=XoR16kA-28(>C3k&^dK*lC8 z7SAG}smn@cC+?9*LVXsFG8j5o#sC1^h8vdF29t7Trl;Msn z;l&PbF5FgmyR1&t9F{u8t0(C#i#An26!=in+xh@~lN6(q5H1xs5rp6FoW38t)yM4! zwy%>i1=UV_kKdb>5l96VMIsL?y$T<>-maUuS-25gIyznBXhP~a{ykJ9a`W`_%LeU> z7u!_G;o{CIN4GokgC!vu*CPS>CdJ|vIx>_~QQ2>*3-Idto0y%zcVD&fSF7#T;O5y=n~jfFgIL0J|s`@YO_ zD>TTW9O_~0|1t@T+6q8qIPZDeh(=xB3t)GyO#D8WSeJZN=DQL^F>#gyaxEKV!pAR= zijY69F&@O-Qt_1as7VfGvc*G2Aea{kj+63V}E_AUHwD7%Z`1HuXWX z*sMcrP^qAxfvB7^huQ@Wt>QE3+q@Y{d;x*+S7-SJltuTv6LoFyU;0Gkr?^XP1fRt6 z|BK)%3%q&QlyRfA_{`_xn-);u?Y6)>wp58?5eEntE0J21lRl3y(=1hK&jCGFmF41O zDu-lFi^}t!jO)ClfV-<8|2-Y`BHgw`?QNN2k#d?7+buNdR+Yh}9ZkjSQ*NK5xSZ~$ zph;H}>eEpjv_|_A_CC5H!)Mz$9Q#&jEUG5}zYG*4W5ic8-$Z=Nmn)hGc|J^&h`u8= zY9^F<8bcx*XWmidyQ}=r^aR|{u@A`$!c;o$>dxIw&osi`vDMegB)eoL!%waTWSVtk zTFhly?PpT>vTU`o>|L@PqqCfIvs^o}+~=}R?Pq!MW&3Dl`?+MFj?NCu%?|3w4&gIT zqTvohO$`scP~oQcs(oP*(!>eMy$S~A@&N1N5-u?VGhB~l4#!N=awfenz#wuFk3P$n zYq^i&qvWbiqXcNV0$bQ>4pgoS8rqD>>wr|yG;U6!Cy7VuC0Lsmal;EU%)qKrF_1EJ z!xrvNZoZLeZnlL-?Va_=sQTgOni6~YiUJ!E9b2sPAS+s_h~9yir(^$e>mF{TYOE4ronBmZ z6x?^BRufo=@y6{^aII83i3VGAY>5ntYkQx2!;5u?<{%q^`QwFidQp7r#(kn$Xg3{| zQu;H>EqRdjjr^K?Xee_m6Xmn7XWr`hdqDv^{o$f>< zZD4B@bm<)SS}MqyhpwmPF3?$ReJV;*D>$kOqE@l0UaS-n`UMfDx`f(WDnebrRhw3- zf|zXa{7>~@9ff)!Ywf>Yl&#|GD7c4! z9qZLuE_(xPJScZXl>_+lX-att9qd-D=EGwTQAg7c?TRIrim1HY%P3%Mv%~|cw93D+c#NNlM8+&R`q#d+ld%eA_i%LRb9fM zy|KTlz%TQaTQYUKonXNj_=yO6K}XLJ(JMsQC><)lNuiynPCSQ=w3?hQyTc3)}$p+lQoJS>4ac9 z!G5jg-VVqkDtNP=buAZ-U}K#i;%2IHzW|s=_(uX>59E}a`(2t(c0DMI*7!z*J@#V1 z%a7imft|$4Z>dLj4f+s8y1z#StCvu<49y*FR#ac>xqL8GwtnUe`-31XavS#oL?@+! zW!mWd$f|XK>)B*0pFqd6b%z03BS39jrh#o$)eECdRZI6#5Y{Zy8bn{yOE2~$8a6Ap zL#_nVMa50vi)UoIkfaKySX4d!(Fd?a;3%j-J;)nv2Jm^tHznGuyCk+B+1u7by1<`f zSd=#|=qC7s2)j`Y?hqRgY#3EVT)r7>i4M+Od5p|>Jh%UNrvrQf^q~75Z_>cBPmhtL z+7n~o+I;<;{N8{TL^mEgM@IqfxpP#oDj)Kk2I`J?G-+cn7ph-V-Hi@1{xo&iOyN#< zVh$fsFkKY%d_CA|E;x>VH14IpP=9pU(Fe5R)zMtUc8$PR1u_;_uQ;HJ=@+rc7}F6y z_=J_nXf3HaLhluhE)~~N29070eQ$zH;{%8n1$#F^!y2@4%%Cc5@Ix?r`(!0LW2g`4 zRSj)N*x+8Fxt^xh9b6e^{eg1TuCAhjuAMGcc@Pw)qO2M`UjwS;Lwc(~d_H83{z#$$ z@s5HXugARB&J(HukA<*T&~m@fibu8b-cfN^FaT#B*hR}#OaljX@+dDx1hz&FM;`<> z4oGabU&#kkP{8e*4|6(kC<5+9y;F5`EAquytwm*h4G60Sce_9#)Z@bxb6DC%v;&6A zC1g0Td*Wk4BOej_G!$F(c{pp7;T+Vlkc-82gO>`xX!lV7-^sVtVbh3MtG7R-;uh*z z#}x~N3u-7NTrLs~9RugRP$4ocEf+@-8KVl_U|~(J1mU>=@wsEhfGzvP155|1VeGa5 zrV)I>ejNP}1DyF?@H#gSwLQsk`~?>lc&ytijG9ozPXNTKp_mDY?eU4XQ}4^lXK7#$ zrMxw$3HhQrtfnz*6q%*-EUoFOb|EBxq^Xzke5PsShQ$Mu%Um7x6}hP`e=xwm?oj|_ z?N~xPU7f*f=P%Sxm;Px9T*0Z*U!au+PZWS8%#i9<&*Awa3a)u=z@t|of4K?ipv%M{ zvTx`VW*8u{`o0}d1#;!}W}js~(YOh&yd7SaW2AgXMe9CUjP7`n2d=n3skqr>^l9cK z_Bpy3Gu6p@NVP|kCVv6lYpJ7og5pJwA@sl82#;rp0*=oG9=}8b6XrsXL3EvBL(JJX z-_3+bL|9i%&t^6F_4CjL*{L60V0CI+!r!-@%^eM^=;)f+Rf7;m z-@iO6OOx1a|SYA_M|WWrPpIV*DvXy+wo|QD?Mm$R#&;zTUO?( z<7Hwx&rsW#kBZo-EsUyu4e1fcB={1UQLcvjgiu;*a$T#wxMsRo^C_mUSzsNg6}IoG zaXdHgtS??rk8|t>4=r`_Mt`TU{sTr5W4BPxx128E{)A!_t*RPUal4G8ci2Pz zQ(uLzo6k;S=%3N9pPIDnoAaf~gqqwoeet?_+*3CrZfl{nG1g<(zqhSTw4=7A!dX>y z2MojpR4pDw$D@~kFUr<1WYx+DeM0kaw_*B8`@w>T)_2PFAJ6Pz1Cy9pDz=+GcPbY% zp8mtn^XKX7KLhXoJPhjn8S?Juxx=5K$9^gGz`{L$MSA`UyZ`I5wc(|AzruTeQIG8r z)_z@8*h{*;2a@+L-QG)kw+AcRi~P2C$9k5Zvd>Rcj~@n(5rZ83kB%?hX5GJjV!!P6 zu%#c6OGEau060Y!5h=;StrN*P2d)`3J7uH`mC5{&yX3?{`Qh)3H{>!e_7b{OxFWLx zk>fr!3gY$K#(-&g1tB*o^0*hqxc-+{_K$-a^U_3^X#l(H`#-`4M?`<){~)AubW)n6Sd+9Llmm5>`k*f!Ah* ze1q%wDfL`_hyBhs41QbIFbYCgrWpn*KXD9X~B`dA)+la8|znFs`U*0{b zi|it?99lxfTur)DG^u{Xman^7SAT`vJM6 zkPr*KUu#X)Ck~s#O5<@_O%%gE6_c^lo)6?$i}}I3azx4UW?OTGM|H-joPW=lTby80 zv$r{!ZXwFlk1)KODokp@O{MH)+Peglw>Y|8+8IE46sGu==tV}vv6cEfZgKX#ZKSR_ zH=5$m>Jo52QGLEBC#%&pxNeBsEvRX|)$M#QQ-oXS6Y)0pi?=y{xktSAZ}ZrniqJR} zz42Ea4-od@OhNzv$N@*1Uvs!PH2LU6Qc5J^!l_@swk0G9<;%yzLp|gaMZ$BWLjs)w zQ>3J2#8y@oWaT6xBF?L+E8f1H>fvf$T3Yzy$2VPF6+L~;vuB(G{q5f_yt1-3-Pzgn z@%4E2Y$PG!TG_kfI>w^rr^J*r2$+_ZS9RRvSQ!9eQa!eCuSLCl`84dDtEs8p`ue-t+DdBd zm5b-y|NTq45)*kb{Or(BZ~Cp2l+<{SQ_fyqZm(WVo*-(it}be5$g8Nxo;??+rlF{$ zd^{@pqKc}#w~vRB(FuKBm5GUA4>xmPFG^WiQCD}%DNmPxK%a=n(3zR%IXQQYPm-=* zzueMN_hh8M=21m{ewL1|I)!2`cU;WN+uhy6Nl{5A^g^(!o4qx~%*NJ2Q%m_$R9H}u zAK5@X=IW*D>IwsrT3>%xR@UvlzRuu~(*}n6wsw~KC$uIf$BIkx3yX3-Z?5O&W*U%B zIJ?+Z*F3lo7JNFuJLt57=}BE5PpbewJMU9g&Wgj#4@;Djyk^16+WKh&B#$?SaJ{6^4 zRg=Q4VnyGef3R)OzsdlP0_rIacYwYu~PIcg!*iJYdtno!>8=1G& zE_6kG|FkgPR_EBFrnC108MRbca~8&WYNEYi^$AVXJSpnul0 zKTsjPzIUB9R{fqMR347Mj#2-x6c0Yzb@YHIHRGeXDk8lT1S3BzC*NLgosAWKl$>#i z>Ffw4rpA9H_Xd7gYBf!j|8-xw=26q)3~$GWj9X*-vmnih&1E&iMB-uD$-%cQv*(rh zq`}Nu|0riGOLp<~JMNJm*YBl^M|oJg?Jzsbu%tV@F{l#ceCy;NC%sV+t}W%~cgc!# zBRE=~T;g%%mGlRC0=tZaMewct$zmZU6i`a*NGTzu@`Z~7S+47W#RZX{qcHuCeAwxuLldGe!M!CyN*R8)WM+-&{)wQFlw_FMPv ztKe^s_uf~3>-qEZ^S54rMQ)1$=Ly;BLrB(a^w8(g~vx;(DC zSM_<;zE7H*?&N(r%%{XP4L5x%M>_i{Gh*2B%Dmd?<1nU=l)!5a>Le@Q%hR(8<%N+B zA=jnX=Y+Lx-g~3<0()mMefcn*^BwQdm&rGIVa~}0qFMPbU&Pq_1y`B1dU)5+<~{uD z@WP;upqvL~?i=3b741Q#$^TqGCYGG*w9et^DLljBnzh^3Q0=JWP=6(SkKERz-eu5n zcl!6|YS`A5?NQTfRVgDHhaa~;uBZ6UPQBwj^~2TSSoOKtla*IX7j(|QevP|xzJC8r z$zj&Pid}bfPvE&;hd*C*c6&~8rMrTEJ>EYD4_P}rXC1|fGo1Bex>`%|HRZ%LRYg74 zaLjjbw%8D{Y^!x);UxVMCrgQbPpiiosvok0wP^QcT0nSba#UcQc}_l0@8wtAdQ^s^KtKe_Wix@ zeZJ?Mwaz;K!L0dV)-~5-JzwvbCu=yw(56Aoo08a9C=5v4?_fOHr*ZcG0IJT@c-Of9 z0jT~rKIN{+%Jp$VhnWnf%3d9&i(JCeMn4Kq;}d(QXTz4sU511nGbA=3VV^evKxI^M@E85G~N+@myeh87E*lo*l6 z_th*I&QU={6lo^DgXN0PNbzCbX*E9w@{0Wn6&Ki2OT+Y7#Kbw2Czab(lZjc4CMuyd zCiSm0!fK5G62ep==lb}|*2n`(w~Jpr1&zcf@Wb$Qg}qA_HL zPT=S53>e9a3x)zy`Um5bK)i5eHLu~lFJ zs;v*N)-_UfZJXk_b4_*#!L)%7Ej%g&{VTF4nHU7L7y-ovUJ zKeI2p57g^?7soa(Ixl;E#Mk-ntA4&&x$M1~s0+Lt`~3Un@;wrMeK3aFCJNnHfj^P>pfwPJ`h@$~3!g4iM(LOsH3ZXd7hK`^9s4=A0Tt--yHH4o3W~ z+8r5d8KY*ywkIOuYz+5Zv7X<3p(E%RQPlYP@~~@%^+B^^)Nt}=de_}9Z(_%|oyJ-A z>fN5mr;bUl$+P_1yL}mg&Z$U^^CHUo10~JQnT*NvQt|skEdZ#>G=5c@-X9r#>Rf1> z{8j6B|J9P9YiU^HqA}@4tC}>e?vjyzJFn*a-Y2 zx``^yVB+WbBkb+6wsrM~;;`n`Lp~8hWkUA1P^nYHRs5Z^ey86^Co7p5TiShbM80Fi zQ~FyuS)%ga+wW)23kl5g8TfCPzTEA!zW-igk(H~SIDFZ`<2xK$$8R+I@oEPqbqam8 zJ1HHuF!46#?2*v@?&{aYPYWbXH3Vl9;;&dXK6^eWfoKB1y&C$=YI?cT<8I&)Nyzwg z9_x7GyL-s&dp;6crQgpQANVv%9=zdha?oHyYeVG#!m332mncUm}iNB8_f;rMbW+|8M|Gyy8n1AxpLQ8Yu;>VuWNFc@i|U2Op@L zYDduXF%*rc^9u)gO^48eg92VdN?BBB!eXk=2^-smzFxWIe>TP-OC$hL1k@z{I_yzCyCBUcJ>OU{CFe`ay??jbwNB*=^jxeREbt7iwu2Mg@SmJxWJ5lo&LLT=^|1qm0;jLOQ4>Bx**&P=$@Od`)p z5zR_7&Pw;mx_=_97M(RqtZDc$E1y`?A2a*iqYN6pa1@w+#;}dJRkn??mAp3et#WqR zqDYbm$2$6(=8u%+Si;y=VIebbx{O(Rj31*4az#HT4-n0*(9ZR6%N)sBluZQ{ z=D@7-rX6Tzv8*1KQ;9{}wmvlG?N8^CF$v3D=fz~^??lt?8B63;fQXj!$4>JF+@h%) zqW9r%&)InWXH(C%LbVtQ@c47?JEZX&RF)hZjPZxL&D5qoD5=SmUxO%X4}JAScu0w(W-eBX(5DxznOw|5eE1PQ&bGOkq;9hUQN#e4#J1MwJILaZ0EZY5{S6d>%(er1RS zg+cdLG7MGrSbL&)e23~Jp6AByiFZh(<7!@gRM@IIg zzGgR;Wdkc1`yU&Z<2|IL8G_%&jlNZ)ulR+IL_JES`LX;!mQFt=RB_ryd%mI|5>liR zv{anj(G0Pou!RV-Tc+rlMX50|!7*yrDRqbz;)mK!wHRqDSGen`)xK`DD z+0~<+)#GAWQ^t@_E7db%HFG943%)f=*)=PjHESz1IH#5yqbBC;MD-N4iF&nrVtik) zi4L-Bfn-vKBvE;<7R5%xyqzpbCFz`<oNe@oOOCNW95vcqQZ?*HX?j3IEp3--ut_89Z7@qtBj;)(_iZCD zWfQ-6lYnWH(1Tx-NKTVjSCho8`Q}O!;gd#sv}S6-2Kg>-*;R;wU-LOiUCj+eX-Bi# zYPPm#UD|<p1#drlilYlANiGuBwKBDk%TpUQKu?a9@;2x<$K=RY`xm%8)n#z-H{e+9%9;& znbVQo)sef}k$>A!K-pO&-dSu4+)3;#&*?NSsj_fy=PM?yuIjwn>J(z^LjKYTk?$fL zN^1I$NPcKDuT!iiUK}-6iRVk)nNyJ46e=pjqr3`<_s*k*zK}j`Q%tTCJng;}seH6c zx};i}`S7cU^sHSgibP+DjWq&nDgLsl6I3TmoIT%Sa0QW(?Y)KjesvPsi|xI;r5K4J zK^K3qhX@b9t&qC_A&*<+TlE|&5d|=FNAB_3eN}*{nI#BiH_nvtO}82sw(4wE3Rq=R zjki|w^{-m>^T8s$M;u;95r6a}dcaYic-?_P(vx3A?M=z#DNZJ8#vvK!C{CqkNIYx3Of4z8Ck)fC|bW9(1r9Hu%(PkVUTN(TBE^P**bvvNRL=;Pb%`{2jUd zeGS(FjIcm`*at`4z+%h@^j9huw^Yv#W7^3WzFi`Iuz*a=Ag%@uF{{b;(}5>nN$WEE zMIWZy(RC4f&xWW`J^98Vsz=1B$B+z8;x}rnIdP;e$4q(M#97CtZ(oR&bdyqID3!hF zs$Ltdy&J8k8f%moYc?Be^&e}`9qa5K>sG7XBJ8?HWv>?x;lWiLtQPp-Gwvea)$x^= z9Hk$Jt=pqe+nzHY19#Y8TV?((z?*);#W!8E%7t(Rkyto>yaN`ZB05|HDPIknk}%|S zOiaA%v9!v)IPS5BetM)kjFbG{XZF24D&ZY2`ME#ncN_#GkGiaawuZDG%s2H2{2m`~ zN<#a+8ULtBa$m2>CmYrax!8|~o> zLhu00cb~1i0uhxYm#iU{#$zVq67Ul6ucCq~-g7CNOU#v0qQeImk>};q(p(wmm8|AJ z!si#|=4rMj^$O=z`Uf^c2JvJUd zMP0&raQNVOm=cRHL~SMYo_G(Jh)bQYrbemzX3>m(^;C8hgff21KPLnpH7Q&bM6A{! zuNiHvn!(m&plh!}*6>)&BGx@8)JZGW#%3hf=gij^0@j!E)>nGg*VflJ9`4tHx%F+y zjUDq1E#|Tbr;V+ujk7ZlRt@oYXUM)OC~0D&6tleoc?RnIdHWS&m3nTt`Q;F?dAE+AVZux&5_5(u*adCxKsWI74S zr30zcfU|;k(fIa-3JFl$kkGC6ku34+*KkjGL5Dv;7j&T6DbVkSV3gP`Tnwu{@##Hb z7y%cbIs_r(;V0vzQ63=4Xsz;suIa$DAZ#=+o}dh9XA?A^ zPi%vaG_!f2j5yK(@1maWEfnlOa>K(z{w9!&7lV&fPcwGB2`Uc+g+2v+cL9CE22Q^b zpl_Xk`7kT*)dLrvz4~0aIrI zo1lR}ki_>h8rTjR_?#Ag?o0Xo5#k(43muK`1efnS2J$aLFe)MVCpO}QMqBKGmk2HV zjJM${`sojF!?%-!eTl*yH2AL%2_1r31W5JA5#PYSG%nGte&IqdX<+DU1!7+mbPU_g@u0fr#FNqFzE?NP}D+K+PK+8k*eB1YkO8&|)Bd_ygp7K^^KT9`z}HvBeGU z>9ueoMC?1^Juj$H>iTi=6-wbbb;DKGSAy3TAR8KNst1t21xQaC^h@e;miw1H{5#uQ zF!t#$e)t_y!B5=jYmnQ{sm#70m_VAAFqr@Xd7$k)Nun(0K8bK4*tfjHnZBKN`Hh#1 zzdH5%r0%jx3KS|00uJw0{>CST?F#WgoTVO6wEqSwe)wNN6$PRS4#d32oXgOn!*(Q` zpe|-n%$JWLVG2ZZ;HAWd6G%TNjN;!>Ne6r?j9m9W`P96R#%6QTVN&P7C6TRO23le| z1cQ(w*bT?Y<)pLGtRwVvyJL-A|G)Uu$ws`YMn#|JqbwTR{boyx1losfVkN;H$*`~f z?9Uy3l`3c0;d!chgRLao0vN3o%0;aVa(6|b3VDAGoYa`VkDxa7e3(Q>k!u;Z)BSlI zdPi6F2yIh%D)QdCSt99i#{>hRe#Cih{N*2@$~V9DEb73^uR;!{^7_dwnIU{d#VCoi zIQ2e~_76~@)?*Y51%{T@IDLt4xOLIdESlXT=Y>5YwXKI?&{iMvVzTJf$YApf@XFx{ z?|@p?hQ9I+w9bJWk?%`bBz1HuL(LupU7ptH=@o!wr)i#d}2}IOK zYQYF}`)KZ`cfT^^JscQFQR%~lt-?u5wKtYf=;*AYn^t(Hr*NLJaI72i!X`$B7R*VKAbpH99qdH5*LW7)2Znt4_i2ML>?mDl9#Jyw9E^Pm$;ulJXi z87l78Z&?el(efi{Vn5g5(zvz64@>#YBr9?vG56zntu2hz{672Iq9}de+A&Gs5VR2G zDob=hRs;o3h;t|{n$?3CW;-Z-Dr}h&`a`2#mIRya4;K>tM=k_d5HLYN2LG@iV1j)7 zYyb;#@~{9b_}@YB5B&Wv>IaY?z;=N50ob<;97Xus`vCi6=V1Oret*0VfIl8yc0m39 z-TMHi`y+IK`T;`s$L0VN1e^{qwLd}!I3vJY0Mh-7=Kz}nC=K8_z~%sz18nYJFn4(P z1%N+*=j5MA0VD@_Tu)CMfN=oB0n!IZ+#i4w66OPt5kR;9h2a3{0~ii~LV)3njI{xY z0~ii4zJEy^K#Bmv0Uq~<;rKW-P0uBqn++zVQ01*Gc96)}6 z&8et7`FEb%+*}bAdn_g{z{$nz>-*Y3PXVAh015#v1i%g;KfvtVU%jxfFad;4RZYR( z!3IFOxcErG>0q*wf1C~gI{`s%KnQ`D=V`Adj7$?z(60Dmkx`IGXf$U zPZVSTyaUWmQAzgKuaJPEfRL#vz>77t1OPaeR+Wm5*4+5)wYTT1MY`(J(kbLQC~su_@qs-@ga4aWZ+ld3AjqDzCr| z*fb!096agqH!6OfkU01)t{tDKtJrTz1rsbWi;<^F4P+n;w*MUQS0?4I9ksZD*fE|SG4vw z7ZQG4qrUseyOW-V?27zj|EJ7YzFaKL-**{MQaf4OmkXz>vUrLZF)3Q)M}reRnU@Tn zJFoWrH4fH&HCRGjh|)8Vd)>!OWYcu#yhgXXVfRM5^l4Am<@e1Giw_g)gdK*XSt65r zG<^5=hdQF`wmiMPe{*4Cern+5Qk~>nwz}Q)&gVc(=JL%DT+ilo(;wj;1#aM8+l?p4 zHw&8)02db8HElgIS3J<3%Yi}ock=Cl=^86V9*sBKkpc_$U*c_&+osVZE=0a4Jc^mK z2;`C#u!_^UkNT3LCUm$XpD|~+lOR8uR;Yvf1S>5?^Di#6)Dd9}^hLNO8KJU=4a2&? zVYYf^5r1)^f!D6Au2lN|6E}Ac7Bk(W@~O8j*z)D-ktkDkd2vEV2k&@G*yb`X)qS>M z;e2Uq`mwS{hh+s%pDU|6_qMP+F=O^!u84b0aa2`5^x(LfvmZWMS>3)@`L(tbz7ye@ zaKG}Vt}ldzvu=dBiZioqW$Cza>Mt&wGjKX-S^9S_{MNpc{{NB-JsbwkHPrsWg;ZY0 zZXpcH5t~f|Z`gA`dakRun{$YVHNN8!UujIuK^HnxtNhKfC*$Op_82BP`|FjST%?{r zpdwG2N6G2TXknH)OkHaNNh_Xo-r&nYvq6ALjdp{Zm3itSRdQbDl6+Q=?gGD%QkbkT z57FZ>ROgj56`@`y#3C-v>5PcQnp-wscSWbJIT{*$FjN1e55sWx!xt? znDq1}Fxlv^d+S8(EB{hcz&Er^H%)A>`W9zq2GX;k9aXcq@p4oDddViB{q2GujDeN=SN1`USXR!NH8o-<1uT<*HOtTf-0Gx;sI+{P`g zNGorDr~dQFuU@$mRe|>!zgE+NG%gK4&isZ%TZAC7zOOt_WJWt4MNX6zk7ulBzzI_$ zGQdckfT6ixBIvXP4*ERYlDNw(W7Y>Qi^1Hi_C(i~0j%wu#7_z6-}R>tYJKU?7@v}= z_p^eDK>4Xxq9V;dZuLJ<9LNQMllc@mi_B73S(s5|_(}Bs(X*Y#7>yT^w2cgM`=0*Y zvkfZ^@&DiALbWVSJ^q|x0p0*Okh488dc%s1_97O@+2j~{)f#@V269X7;zBuc@fq`)@<`RB-XmwecQi`aXz9nqQI4oRlM9v3cDUIwNFQ|6Ro4|DU*!HnhsxBReH#Zm~B6{@r)cm%LNs7j%A( z$M4WILxpfBUsALxnDn@?R-qVp68u(kr3%7UEPhi2uTN^X-pT+iai`q!>QKyBRi=?4 zr6sSihq`ZblN1d}%8jd|&>985SpHp(8#69789Xur$=3as;Aj!*tndF3;0$Mqp30|~HHpvaeYyqd$ zTpp4423mE7I0rbrSx}Mqk@G0ABzZY`{rU?`t(U}e*-7NAA8T`Ncle!e3nTcKFGgD8 zaU9hgkD&OaMCuXu@86_R@_fIbB%iIZFyb(xcX+1LJ)H6#@7HQU!r{4^5cSs(kQvOq z#;JeW?8o$Gi#vv)+5n}-X^iRJHrc24A>ql>1iycAVM@;3|JPjT$xqXD!uVPE4;S`y zkOd|-q6K=r#Jipo^|_VLoq+c58?JChzMA}bduePiARrV+!-{!^nYP7vnK6%vWx8cWl*+9_y zgO>k=r*!c`4O^gIoJF=}P~`Q8p!s$z{(yDVf*TY>uSRoSsw<_(Y97YJgWJaVeYD;! z6phsXT=msU^bVZ3kLMl0Y$fq1676?TFSnHD0|zzmPF3Rgq+F+exrAcOE-kUUj@m>+;_ zydfFF;4T(BLIkWOGV~iW#5|MSZi(zw`3vWZ5YEiVhTVwm24BOi$T;LEJ!sTRSQN`; zxJF~JMG>%EFK+pO;{Oymx)2&|3X85wbBxc7?%wqmLJ9EPjV?k&XY2;J|CA|KqUW5J z*^Pu0dk3Pq#YD3}>X-C}g<=DB8LPY@8~ZUlCGG{R&*Ff&WOz^vEN+mMV#wb3V-)0s z<)wH-5Rp|FWkVb{a{Lf1egGbyy#&HMFkH_Jj$`%TYLEYm3%wH#G82y46ONY>04w}K zmiSX7@!Tl!!aFhRwbIqdQ>e+Znkl&bRakOHBn?_;<-CWl_iApg^pOb^1U0c~G>k|`Z;7+IiE|2f`7D*u? z8yZQ;Ys;WN$WVkCyoP2L!qXT@(o5$vV*VQ!W@cq&cVy)*XXRgK6_95aiDqNN!;6hg z#|A>ne2m7zqN)xJqLjgUpNBIDv6h$1N zoO@uM>*?*i0Zr8?$>#0Pz1_-P$TC@4CbV3pR)|i1im-qGkeL_TkazWlR$VzC(&()7uU8iAzWXw-eNYsWo`8#6^%cX%L5^F#gk)otul~& ziBQvhW z#q%eA3_m(``y2!iJ`l#7<^*`%rVscw8+Ojn!hu{*18oq|j{Jn>`U+-8g>8qs)$%x} z-h@&?o02Rds=TPFHG4pwjiU_>-kMP^US8UEB1)U(*cPm6PD0r()L7}3+#sgiMpM|( zECLZJX>ebvbB!t0OU@|d>j=9om6&e*i1yOhG@d@Yqo~U?M*JUKSlQKCz1mrO+gVT9 z)hOQ8Y}(bT>XB<|JixBlW%|m|uSVgF_1NJ4|;MJoUcdmS4+b~l(z;Y#j+FC+A4699dg(OHp}72-mKP}b0m ztnPIaJEcDuFSlR`rL=FAy0(JsJq}Ua3ZZKbF~=RX(sF+S@&|qBhceg)F{=-{@DJ&B ztkr_uoL7{2m0%2_0k2hJd0Y-fs#fZ0zn+W%B-fsw*KM{&R2o!+{;OpAcTDvD#9zhx zQBViV-TDoe-fGYfmB3s>$3V{|q~;ojypo5yWW(ZeASZshP9hm_zF{hrK$3p;Lt$bb zlVKC9_C3Q`m8e*qhFI^1acIaIWaF0UDu+1P458UVjEO#!$oC>m=%XRxqZ6x1ejL}0 zB1Cz1P-eQT1)IH)^9iR4UkxsMT^y;@8dC$6dlQw#&8e%M$Jo;Q71pr59Y?<6J8^km0V!G)1ZFYmhIv8orI) zLR;Ohe~rMjdnn)^S1EhVPR9hbC$VHd1?rFm7l{|pDZTY`xvz4;d)0@#rT!?Mg*wiMrZD2NA;dd2#+qY>y8`j{ z7y&mdA%G$<pn&ZX}xs=EY|;T+`P8!!uKRk)k?beqvg8C0}d=!Y+OLFzdg{Pb}@nbI#{ zz!v%%W+l{mB-XiI)ggY86jJKpw#Sel=l-VxOGyn5t}pak`KBb3d)@Cy;*SYqB*4D7 z(mci_aj7xb;AO7qnC&viis|xa!(d`xc6+Q50mQNaY$RSg5dQ>Jx6UX$q2xNfsK>YJ zsXe9hY*oVTBckx5Z}=*6C*klBManqYU=LSV^y5$#s@b(CEox)BE7a2glJobhi#_s1 zujkE%*Igb8$9(?Dg?j-T2YDMuJsZdC8{gC$uI@H|)|eGZe!j@#IvOXM99z1a(1-$m zHjpK)T>m_5xLN2ng_$>v3SO=LYQaH9i4#Z0j)>rxm_c(9XYwD{;DS(ogHQ)<(LEJ) zq+T>!V|S#pu;cMxMjr6Ei`N&m{VMkzocl0P9nsm3P7wS502dS_ks zHy6^=9i{vomEIk-jUA2OJ6bfmz%|m?5+v6`0)b=#aRhdW6|S&0jvfu!76B*n-gA7S!C=VezP%`IYzenLX}*1ttzDD_w zX$uKSLtH5ViH`7gw!z!>X5<5*utJcLYm_Rf6)Ss z;v-G;f|^}Gzhpq~`#^S5xF}n@xXJi1N?g1x95nC&7=iu>83hG~ySG7n&I|gE5A^9^ zqh9bSKGLNW2vG|T3ItVb;^AB2;1wcmY+`3V1@+5-P#!?@fuLD@Ft*kn9^ynw{76^( zm}nXoyWu<7jR2!?7iIbY#J5Mib&88PC2~9Is|Rgt5aRKGd0rl4JQN<5i+=|kweANt zI^qyX<{OGOo+$^2&hiWuf!D+RjRpaHO2Ep_CoNCW-HyO+cobXbT6N!{r$0c@QW9DgM?`wJItq_=pnu5+8wsf;a&DfuG|)SAzHmOdJDcC(GXF*KgTY- z(Uk`86CkMt{p5rnqg&yD8h+wy@733WEK}7L>c^cmgZ^f)hkP_2o*mQ ze{@SKBsj|!-d*dD1>IWnp1?-Cvjxo!`}(<xd1iKqa`+0JKF_=f-DLd`XPbxwqB)7axbT&SioA+Tzj`VTJb zYJ83^9Fh{(n*v?qK|w=v;n#vt5o|UM0~7W2zk0TlCc}#`rZ+~mf8}iKZ_E>o z)k+41Or0}|FF4YrvPPAfE>4hM2J0=-2JsFF45C!fpRw$CVE ze;tJ;|8!1;%H2H?u?l~J>Rl}@*65i)$(%2e%*QoFmtJ||}h_m7l8{_bNuwB7FG!uwP&Cd4r$Jqo2s zdpu^Ha54Yx^+10BP8aC)82?+Z2jEM1co3jt0LCfEivk#DV5kkK9DqT9!~q5e*xcFK z2~gw#(cB*<0}4JMVFMTr04zYefcOs3HvsPdvr|)*1`H19_yBtQ!)-v#2Z$Sx>9Mjg zxVxAFbsGR->>Nx$>1J#D6zKQ>I|C36fU|*t_W+gwa0Y~IK+V_CSPd}QhYvjf@BuCc zlxP5Z4Gkjz*aEx{@Gk(iTwj;~l^MWZfLj6F_6Mo}q5@3nPyLskk^Bb)0SyG|KY#)O z=K^v+!0!O#1ByRD00Hp&gMiMChVCwA^70}I3SxZxoB+Maz{CL!1lmBL)cYfV0H^`{ z2dEhk;sNjnw0Ho70p15lAHanGe*M8dK>C2r4!}Nu`TiIm0B}HOS5s5=2lxQp1B?%# zJxNJ^fYkut13J4uy7%v>CnqZ`BP}Q-$Yo`rVPU2Y_?ot+teJ@_P|^YQoSx2;=QcVD z@?t=F2XN%S>mERRK&A%(qMW?6pPwgSc>wAGoX5+@0f=5@WeLD}fZ_p`2PhtZcbq)T z0N4R+2bdlIV~#&yXKH3B2ondgJ5MjSk&zETbN6>`_ZQm%7RD#S4VWE3bpY4_YzJr^ z(A-I>NH~Ps0c_`*^wQf~Q9(}@@Vk^0T{v77AUvSL1N;u4y65&%f7njX9{3(4ys|t2 zvjf2HPkbk$V>})oll;oR)_xU~vBgIJ#hRbYM{OpS_;#f%P`< zCZ2eO&WP_F;t`Ep43)ADv_JYany2kZr7bLp`+w^7CVbq>we!JrGvt{bbUaz=i7I&? z3oJ+BnuH`R?I}C66_y`js8w65mz(ToE6x3qYF2a6H%6(iSghCMOrZ)&%lgmPI)YJg zX#Si*$J;A8;9u0!PhyZWxD{?#qGjNdGNWpEIX;^HPk?h5T^-l?p*R;#sm&243i6m- zY&;}vxtc$dTf=hRr_tzc2YNlOs>$V)X$UBH5OJqE{R+i!|x+=QhLWE84f?0Dybv$)$ou<$k6- zkO$-EpZgMz_l!j=;SqvNCrKUvxKypq`E7S`U)#PnM*QS6;Z6?ZOt7b|yU8gAfew3F z_NAif9F8VLds%qC1I+Ta&(ELdc<)v0=lg4Tums03p6i9-AfM{yxm;8n6vbte@29E` zlIj!_N*-CfcqL$aC?7@9?BE<9!G2U;{9K+=Gi+P$Sr(*1cB*ov=HbRh)=*IIt5QH= zyKP1H#nIQux~MXe68G?HwzS%fxeEE9-$%zyQePPm|D@Lg0Pb{{E|T--2+-^O{K#7NSFhK0+}O5SOZuv3 zkvW~KPMFs0Y)s;VxYH-P2i)^1c~a-|X(foA?F<=@d4Y}fNi_+%&afWKJhcH=!9u7N zwa(;$`9#a2ddvjP;={TxebiOIr{3y0MK-7!g*qo`4Sm`?eO(;!kO%sVbbtrmjJ&2! z-g*T7mbBdn{oS~ktAHk|CGL1J6$tEo^d zf$TWoJ$KSYIywGt^o_lA%KV|oN7Gwx9*T9Oq_L7Cal!N#Dc=wgu5RU7~^YAChaL5ZJ*3+*Nv57Eek8l(xwl@(KD;Q zA`wOZ#uQrkAy1at2+Lsj_)Ix-dAwfc6{j~2HlH#?H4@Vm*=&vZFm8La zn>f*(37RUhSXBI){V_9wB3j&uzu(6f%|Nq(h3y^N19!wu6XO8Iw3=snjbgU0%^Xp* z&8SjlSmSVEw+X8$t_oGu(Z?bYA6hNmo52KMBFlt|T}4HenUw7FVpjDE6~ob)baqBv z?)VBdJC)h&mGe@Oi3$y`(b@c)^D-H{O07thxgv^R<<0_c|#p7T6a+1PB9>bv? zbV<^??Wkb;IPMU|2~r-;sQ)b#)AX!zai}xAs2t9TK1QDD-WWkw3syE)?(f{Nm4B(~ z!8t15$^O1mzIf9uir`mA_ngY0xAp5Ng^x3AOApw#tu#;$`Sve)Ih?J`g~ZMuk1u8V zKyAEfT=*`@O=h!qp7aqowXUYE^T_%cCAf|wq4auOjBdbiQ_?q&VW(se^CIV-q;vPA zQ*TsvRKrgEOC_Tm<{Oo7#;Shb)CM>#nwS%#b>$NY71_qdP6m3>*tXF%AY9YNZE1-`pu_^P=bL#Hk|2_Z+St%$k=k+8HM% zqUH0bEKv8dKJntS6_vSfKM}u~PD*GlzMMZ$Hock2oNO)?o;cL-yO}M(Zz)$)Khnv$ znJd?5sWhB8`fE?JKB1-BPW`LN>div?WJ|5rU$>Hg0Z;ta`bhO-Ys%ZD5slWyjEUpt z;L-q-w<}ANt*vbnCoX=stDE?3?ZfKd+;eW%4m8?27bm`XcHOT3NNDTc zSO4z2db@Eo+17hG@jdYN_A?Sedmo0zj}XecO-#*pPyG8j>D#ca$&mK`ywT38KBYFu zr*>KYFYH2R)9h%c1))#24dPMFMvxy?s%7+C2)DLge_~D)wQ7!7ibnI@u}sJDj+8Sh z%#7zUyY+GL%qRJfQoMiPgM&IJ$aq#S!I&3+5xt#REn;pKFtJ+t!X-LjE)jB^KA|&ft=Z_p>InDN6CbrlX^BY2pA zsc^aHEXGtE{2hPi#CoAp1NCTbdLLc+d$?%wj4H|Y=eaA#Q%N(1K0iuPyfelM-*(B# z{Q3M_^(oru^MJ4E$f>E)+C(uAKZ#d+2JQ@Rw|MZ@$_eI5Ma%@uF_4a`6jM(U9q+Qd z2!02(JmmF$A9Vz)MPeX@_Jh=)bMXkVBOQRr&OP3sDdNMGn9$&OP zMo|&oQBj#uG3`-tOHm0AS5Zl1(J3O)X-3iM-qD$v(b?_Mz@TLQRdfMaOp!=Tu~AH^ zcT9O^Ol5ma^-@gjRZKluY@djLO%d&odN6tqJHLlQO*{BO!^j4x?V zGpJ766ABB3g^N8??GmlEMT-T3u_7eG+7$7Vz4}nS^QOIQtRb~+wiu!iac|o5Oq~)I z=?wcA$A>4~jQ7LUPqlWFty7CNsK*r)y`)@g>Lp z8^9GCXP5e9muF>Hc4SvCXV+e5*OTWoism#g$7Zk*EsgM(zR773^=LJ4@4;dUAmowoPY&7fW{oing?UNw&g7QB@+9D_3!heE0|&J_Jw5Jtv%I``Ym=+{^2J36v9>iINq>M&g6xV5clkC|+jiE1yJ*CV9mc zK56sz(!tOqlM!<{0~6aF9m`eS3nJ%0Mt%s%RnE^>Bq66DYo9Nqzkz^?$)Pd1Hf}lW zta_Z4MY?V&FQD%_VDB8P-i5>86?zvs!Q{@c-kmK-OLvkJp$8&IJe$r4L_K}GURKO( zk}uRDx8DJhAtz#EkK%EpGIUHvVUQYbC^4mQIEkh(xK5VfE43|r!*8UdOa8__xkL(H zYLOmfUs!5!2)2)T;zslo7t2+jEZAC<;+b+f7i*!HiH$UJSqWN+*aML>qcTn2R-R3Nts-L^ww(Y%q!H zO-SU93L|1F>z-7#j7E+*Fn@oS1+gcO$z~a#ARERm9$)#-0C!WfNm0Aa4(T?A>{c@G zQxF}B)fV&n9N*Obps4$K#Dh2@Ik5N8(y7CN*EP&S?kYJ8MDw-i>nWhbs}(B9KVPGO zJz<6Qpp>flkzz$es>^Tyv>|j<&ZC*(t*c^?q_V9L+^t@=2z{&eo}!S%%JWRDtgxXF z9ksLwTsqxZ{d2pX?E$m02-Z|n{?4(#iH^}vyV3XSmLGptR&^(8 z4PVB-IgoM{2v@5`6~{&_r-g^1%#?$Ymbnb9jlp{9>wenua-hYW2ofV!&JR}WoNJ|T zE$6C)@ZU=Bhqnfow_*5NTEexL(@Oj~NMDE&8+EBV;*hcXWYW7;Wo5U9D!2S0#!wqq=H!ihe!=UUz;qSqLHA%XliWkS-Gp!TUPn8{ETs2m72UaN`r zq7y(1yQyN&uk5!-v1Y~r$6#p?G*sSHK(zPTCAL1GB0d<*YHB_IP?cV-vNoV`H=so| zs3S3`XEtcyKWLOYXwp4swl?_mZqQPqj_m~*n!pfFLzg>z=x5Q8)!LBD-H_|}%PA+K z2X>=EzTpJp%-@c5FSUo=UVtC_6MZpmmfEVv#UYC5M({nHvccDK7-NRtQoI$Thu~6y z+kc76*qYFl z+)S3PIdAohosd~AmD-ErdBLFMGx=nkWTks-z^pgbbRzRQPM(ueR!!0Uq8&~9)7f}v z3I~boc-4<%nu|e`6WpYHX>Fia>QX zDc^8*&tA-Yzj~#MJ%F)O(Pw z=T8V1_^?8~%< z4x&BmW;X0zUt@hKiF!FjayiX>IXz%GGjBP&XE}F$IsbmSfO@4!U7ta6h4a}=X@G-6 z-b%%#do`Cs)dY#aJ);WYYF*DK9SpklLqe8Zk{;)UR<2Rs<4IBIT(sgGmdS!Vg=paQ ztj{^GHnb_-rIMEE@>-ds?-{OwD49xK~|vCXNfk;{6uA)HdVOZRWsj*8FYu-fhl}|FhRyVqXVquiW5G z2E)HdoUM+a=lVX{DHp={8c%hk_C-!`ljYrx#^6rx!7%8CwkaO6=S?($#h}H_F61Jx zAiBGnI-`$I7kaXaUHBfOTv%#y!{{==3IVgh&*yNrGMxlD)Kb5en#8fqA1T@2UWERx zqLR7yeysgj(*WeQIIH?lxu#8X;3HLt#y3ZRU__6Rr4%1!g3AW}+S?(WJ6A4znzsf^ z+wgyJ_?BkrchrH-*KU=Of{M}pYpl@$F26{OLjs6&n3SLl*jKG5t80>F&e;srP1vC}IIoii*-S6p^Z^sE7>|6|teBV&zU?ul26I*FNX&amRhf8Sgm$=a6AxnEA~4 z%+Gwj{H@cvft9+wFJz+H54d$MkLvp&Fpbr%zS{l)^K2~Kruv<+xRpb`?D&P~F!FCz zky%r-fw{vUCw(kdUm;E&dkr^E%zjvN}{&9K)VXFf6~%L~4@ z-~7e?+svNOFDks_7iY$z_kQ(yver9v?XjarwGtfW)B-f?+tZ95#&6aQIzdLM3NK|O ztNBX0b>4V=nd~O>I=TH*jN|N$uCK^4_3Hy&9oV;>KHsIKq^_xvt5>_!9yn*cM#gS-4^hsn>b%|E*ZyPe*X4X>*w+w4~|m5g84 z9Mxwoe|%8%%XaSSuN8UEFA^x5wu$&$)|NJ2@@%una}%aXMPz%@^~Jtmr$3D|(scKSJgnlJx_!ugg_Mkh zww&{Eo+PO*+lcDUIzp59u0&l`c zuc)2L%~zJnhkyAQ|E2BrQZ2z>yW3~qF28Xj?1|!U_UHSbHd~vZ2zEBjIVuL3-1ow+ z^Y?lxJ#?aoFGnR$>F~5BpJt3h{XIkJ9z@6r8%f~_my0w%9RF#xg%IP@dsBjPXPV`c z^)W)-xf@g>DNCI))GI`cp4~joubA&7w{-tQV%k(u<)pQMDzCtb+zl;J6|yH)6nh@E zPH5O=aTBrzrUuM|)~et0KWC3SQptZkbJ*48)XPh2dF+#Z6RR9%rM_3GDmr%Dw$Gj; z8QI)OoSo=#{4T0>!zodIpMaCuTB-apI!a>r7F@qj*AAI)KjmQ2WLO|)(r)*eVVma{ zbje&sb9;rmkC#BxV+NuM%n*U1bHcfBa#rw#TGNsxxODSPHp#IxnUi!Yi(Yp*~cLH)H=EnCmsurvs}aBu!z?@5Zmwx*XSTDG;k?=}c;`}zXj zXq&?uMzq5ME}~P=$}kcZaIKNomZ!o3PT^!LEa0vgMi1(~Y>mEQ0t>jCRtm6ybF?!0 zJP_$F)12*_k_jJ~rLnRp9)TnT7l~Gh;LMSyJL;iLzQ?ra<1nh3c!F zw8ooRb!$uZT$;69bN6QUjxN7tpGQu-eS7o3UaUU_r*Ca4ev6Z8?k^|SWNoQ)E9XG6 zzx+yl8(a5VxrJT+tF)VJ9Aa}LN=vKk0rQMHO%X59L zu~II+*Oa$=Hhbj0JJ^B^l-(7lyV2uCVY~S%{?u|lHea;d^-OE^`;`I+cP>fk)*D`Z zV$?v=)=v4yc7b}4C;5{ip2-c#ThpYX4%GW-%2yvI>JsD}Q#naegz}fZ(>dg@jN7I0 zp($qQYI2NR^5HJ2cKe6DLf+8KsMmeTVd@5bee^?b^GE+Ij z1RT4AUgX)hue!2S=w^^9ZIn}#IDF#V(jfDcxS^c*7fXr3!Palo$)UFX2k%v8XpUl> zvdy2Ja4hhm4SSNK(PNT4vaigYLpX;IRxU+XU9&7fSjSdXp4u%L>d7nYn#GM?F+sK3 z(9b4cRKlK(x@v8&_|*P@>7Ck;{%X?~P8@ECza+XU#Bz8IIV5VLW)A(~+LmQ&$&G>j zrF*Zw!Ie`4*wZt`7@Ha!(tb|wQU6l}#&Lg#U7SASlqzATYI>#<=U(95##5mLcY>UA zCY>Q(^T^&h~r*hAF!Tx9w?j-^8B2cv9#?ZFF7nD4Tkb zi}q2o!fzmB1m)Xh@CYI_-hCg}R z&yn>zaA#B3vL8EF2UXh@NH{9?I^Z?$9xlH1@WtR#Kcn8l&ep&&nS-sU>xcA*0(oCH z+`n!Y{prZ()-6NSV*`o#YNa@%Ak!tIL#dWA6=H2cmb#-i5Ae||R~iM|@N#bzc59tj z-u8;$W%PE=^_Wwu2ZNore7${C{KBcVZBqkBOKw#OXrB(?cU$Kub+`EF_Op!juWg^i z4>#ju2`_^rHzhSAIE1xINj=?9_rb09l*ZqWKbQFu=*TrZ9fNRKfy;l~zlqnK8H*}8 zXmeupo@HZW)1$ZHsSh4i@FA!PdxW1$;gKx5c;N~MjrgMxZ)*m3&V|W}z4Bn}NTx0- zo|1^tdWh1iL!oNg(&N@`c)W=^+pg`KV?uynzMGBP#| zi>&{RlJie^rd#TdFp)$QQTE9a36@k%R@nCChn`@UAlD1twdb=}AtDkitjgJB)CTX# zSC3=Qp;$A=cWjK^V&{Myr6J6TF=WeE20wn9b$W}z>ya1D_nu!j6~K)V`LFGI95D2y zqVv&#14o zN44~?Xmbb5iVbYSng|3p`WtsE4aMg}G#gCaobWDHecW!0{x}>-#+`3N3RzfjBqH+G zjwin~?Jl)yl9PD&e6VM}ey)9TWv98jpIyPY%AyBMu>M?8XZq$) zE^(lY(5lUIo=&Ksd$hm{DP??i+5*`2UmxghyzRm>M};!AMO+!aJd45VJfx`w?z?A!!*1jf!K3fz|*R1K%_;7ouRfs|>$O8`oF^ypq|TO&{<@a_HI{~*kPiRT8J4=ntuoLAK1c)7KQqXtNSH1=kJE+V}=1+s8ZQS&69Vj{$Jh= zL(H)4`BM-xoTs$0?|jwmlgxj<8$Nxn_MfnY{>C#8d{A>w`;Hi_V?oaF`^)n=!>-M& z=PzWo-m4w&OxuSSu-h5&6mo|9H}GAG+|*m78T!S#_-sJyA>bAU>!Kgs*k=Pd!||J0 zs5(V&BB~{J!*G??>&JtK9)^zKh!Usxf9Sk>3^~IWzwDwO_vU+}*=jIBW!REXT%Dai!NFo6bTDi&j0&-w>N# zAb||1_edsby=0-WL0m4HcSBjZ-==QGlWyVpHV?5vF$ikc^f&60!z{d1L2zQ2;$(T6 zl*Qzs!j*71Y@#})z~;DzRN3d6#=SamxFNr){78yYh*fEy-c;48^{!I~sv4)JOi%y* zHdS+;B&vM;!i)Hz#bgEGT<3$>J)lBtME()P4!9E(380^#NNDJ(0rdl)0QhL`F5e9i z*I_4*@2lAda1DfHLoB*|c&NUOIWS7QD-!nIxdVCFa6O+?ok+Jc1l-9pi3O4BzzV^~ z#dN)!-PR!Bn*ai`aA81xwz{D%&_IDK|JbHW+YiPV*xT5K1e(|yKxG2v3rHd;JWyuz zOtqZ0N1C`h0jyP4CxEch(h{Mt0cZyB6wpji(tr+w53!ZM_nwN~!6{qVC)sey zZ{|cd-?ZM?#sI<+SjSm@2lHbuU4)~5GY1n04@icb@Z3lvCp$RG*Q6Ufd2-*Z$>f0*(wyBNUtdfvYt&C(6qYLA?oJ`)`Wfuq83Texq$d=`Qx*0B~V( zT&|;!z3qA{z`y!?PzWBOlI%t?Ny;EuGZ63R#RB5 zr3@7vDkVq+)I2EjMMZgwtQ-_SD73)qferu{289#KCzNf-hL5N{o07s}_4h%phHFBc zE?pCtG6(Oq4x86{?n?}-I%#CBuf;H27wW3N)^bO46EI)Vc~Q1O0lHSEfR8}{eCY9G zac!-;x;h~bUdKoSpt*>%XZ(u_c6GGxxz-I;AEXTG{r|r1{^!5?2iR5C{+9|VhA*#P)89Uw4`RQb@ZrOYp<`=H9X7uHG&OQA^vU%{&p*E#>)a1P z?0d$(ew+up1b-U-_&WWp|K*!K3&{#E&(vPI0$^9*)y>erK!v3JLeWKV{Am!xZb>b- z5^x9_-zTxj!)GB`Vb9V%)Te3k*-L!WsV7d!MJt@0e7c|Z_^$5)*tJFT@u_FohH@{w z4$$$6@_zaP!B8PrRZT1;E95cf9}0GL4}MXOCkoqQu@!7q%m@y%AFl|MCGw#u|Au3H|&kVU=s-2!2!Hgt4S$xX3xmYt5t*Ib{MttUg_Gc|P-1 zEq9Y80T(L1KS=;P*kM~Qu66DO8of`6BNwVP&Cl5H>ZF1%8e7AxA3OVsYiUHLWnaWv zl=YQiUA+@)(e>@`T9dZX$%N}#8mpHIVt6b*k`t)xVHIA9t=%kUY#( z=`8<^s0(7>4zVstwzAtxw)1Iq+;-f|d?POf2)A;bXr(C*o95josbsE{O0TG?Lz9x? zeZG)>kz6q?Q9+DOzTvu`A0O?!7%)Zms+sG}pr_TO_s|s$mxk4c)>PqdVpletz+vng z0!f4qkx64qFPI_{_&D`b%9yv~FC{z$MT5)n<@PMSuN{ZJzOFm4vVUpmSQ%YxV@+HV zU9YC9mwrp)@if;Q;4{qz0Eu@rY)6mVE7PT>|yO%x+M0-NcPvp+X^ z2zg4QBhrrh`uvW5!pdo*ICQ+UkmzfHTUiWtxa?D9;x~MNu{^vKY$V%WGEF1f844jg zJVXQzUrSOhif}X*L8wGwYZTpqk}HBdkBU8yPiC(W4l0x(%cU|3Iw(riG#-3GW>SI= zGyl>($?2Xx_r{6+zSKN{S%T>?MF*iKgNX{n8*4ma);LLe3;yd^E-DSYaDp!#1Z$^QgpN zkfoZpBkDXuWUr{Tcnt^5o9TUY83YQVxa@vaAurO1xCp^{C^PG|>^2g?jLvC`yHG*E ze?u@m>iB&AWQ_OFk`@(sbOyjKlA@_V3|B8@0u?Qp!xpf0%k`MG5fw~A;Wxe&zOc%d4C*xf#kj?Oj2LJ)hH^;R#hM-ap= zG5$7`4MFUy%rBkQJ{yI?vtO8&;Rrd2yc;OEWb2M5^7K_Z4)25K@fV$?sdN!ja^iY& zGV!s5DeA5lYYDxbVoRyjAw?irTnfo?#4Do7fc5_S5~uMy-Hd!DB1n{7Lib4Ad5+D& z4(YCF59){~M3S*6RNqJTD7qq*U06`#uqA(+QOp&pBH!cWVlXnI@e2t@o)aR~CyxD4WQqYpc%g{0Clt&!jb z8Y~~`DPNAH1QDBcEBGDwDlti{i>F`OM=aT0f)O}-?sD`QI9Op&q|@3vTkIzjy;{vn z@lhyW`s3`>u{QkuiKF_m6zbm=12U4^l&nOvXOA|qF0 zcklV!u%db@(D6s{(Ah7I;puO;9cU>SQ~TO%mHsaFhC$x+*{_!|3X9G7KgM-mXvSUs zXvX1HBS4P&;?CPyPf4d~^A z16&OZXfQm(*bEajOuR7Y!XOQk@Zw+$qc04@FcQNvMKD6cR1EVl%-b+LFV4&`PMezQ zLaY_s48XmFrG>t=rNR1jwif34@XnBnlR3-^db(;bF6ip5Ha6CR;|FaWRX8(XIxsvv zY}R|&z}bf9I_vOIPv6as>)fqfm}cG^?cr^qO&jb2e4PyqG-xzMND%W{Z@bRba!Y_K zyys+NZD2~*@%Lfs>#v@FsYqKzQE4T_y1{7yw4ZP}07HqQ>PkyDGjJbZIsrx>!n|NW z*?OW9UVeg3Q_D~jQoTacf)mOUjBVCrXQ#o$05%57DMS^DhsC~;nn(@Jwi~nfG7p^SkoAK7BPcIjm@wVpA zuNRu}#hA1CW_;mQBxuHOTyBGAyg!vk&g_@`T+L zOi8sblPk7~|E5lGa7Xnx5*XZl;nbDNmju!=1gIf{XCrmxMaAk2Y1l)=f)l=0q;8vWjlbaLg)||gQV?_YMJw#govD(y7q4u3 zdb{yrY^chm$rBHRn>tIBx#k;PbJ)!@?n*fhZ}4O9TFB~Pzg6yF;_gp}cTxz_bRsT)Yg8}4$HTXD6BP!xAIq0hhNj*7 z*>FturHayZoC}M4!(=~&ff78m;SAlght4AF%ra3ZD?a~rG_N^>E9UBQ=F{Es$I8s* zqBt6N#Qz+Vi^WJhs-a7eX&45LJZ;M0i4OaEpm3**vlK>kPJ>*|mu~+BQH2-FvB9rj zt0Cg#A#;WY8NobS{v_;MT5g&AHH*Xp_H3+-9<6coDw>Q%+0e_IryR*-%yZIaHGn!1 z0jHOOmGlmRf8IM4VV!$hv2V^Tc~U*5z+xhVq#xVDgs{UL?#!?P9rK}k%Yo{#Rfmms zJ|$onbTt2+Grzu}vp?KgCYauqIG(0kJA2iL%w(9klPS3GKi_ZJwRXK_ zy8cNV@uee6z3m9NaTJO+bcHk;EE4Z!jo2~~QR%TH$}k-rheMW8vv{<;xoD+`B%DNL zmII{3E*cCJ$D^WMLLxJ1L7 zyQ^6osqQ`2pfnT zNE#S-&H+p?ofcJ1O;gz|*jdM9^{%7wplu+2kX0FTF#5%dF*uKd+qi&|!lauw!L=J5 z9fqC*OdCx@t>9q4-QC^bk{LMIf~x~g9XNjN?JYDNB@jRG)97Y~VD}XiaCVgJfF~B= zx(>WAxb=+8iKwryNx!7z=eKb~MjAMHAcv`GiR{6_fx&KY^g$rKbFx7!Z8ym$ChZ0< zF27e9ygLZOEFDpSwgCDVFo?izf}RHU694yz;(yb>^xtVMnfFDn$p3Jy4KHxpGao5B zf6@3aTDyIJ2Hp44^|qEB@3*@?ovU&ZO=mEkfYv%b`f2g?&9nZ}D~6ffD`wyY!W$2a z=Pw#BxrvhYDTu^TP`*rQ^!y8ir@o~!rO57Jd>JW@=cH)bq>ZOiQs#}XgJ}&VCKN;sl528Oh1f`NkGXfQv@|B$YME6xZMC zisX2#{fCKz8+1;}xh&I}@GJB`=qZ~Wc%te>iHcaqi$f9J^O2%=d2*K^;C>xV_yStX z!YjcGgyJEv8CV5cn^`T+1+67jA^Gkh!N;>eYr}J6zfT@7b8dchs&e#2@X7MT_48UA zTU}YTX>Jr&1G!&9D(ly;e|@%fTkPw~ri{_obzM)jR=Qu=BUOW3)p@OAH}RI^)__v! ze{*gmFx2_{?Ny;?8pl#z3tjAqU(0R68q(M#(Xw4h*80Q`R^%+nRGkBe6^PhD_0l$TaK&Fa1`3(>3>M)bY5g;DPMHauzfagcI}< zHpL*HpqDT{1_XM8;6XuOltU0g7y)7U1K|Y8T))l+W05d4aC&(>Kii*lB)zy`DmnST0r=g8ec=k5fJb`?|T5C}_ zVQPf+$>OqVjk!LgJu~c$U?Mbjbp+uw-LMXJCyP@cY^q=ogelP6nE{g@C?&`w%zp+B zHZb#nB7#!F=BBEu61HM6ATB&^+X7m+T3gl9XA>-|V2$n&83q$!e}6YD!^+AJ!GS#J zoTkYdkVAd5Rj>eq4GqYly^lPkRl^?3I=}~pRM1Fenle0M3tJ`7LfE8(7Q)5|_GF-l zpn`Co5BnJSKL0l<#Q&h*_HSY)+u$UaeX`GMjvpZ)D*-e}2ymgX3kbr8#O&Y0HlH&9Au^2S-EBb*DB7e#!IxOp)>V z=XC#Na4fzP5q6B};5hWh;Fz;@(;tJQkrbY*_;wj5EqX!BA|Ddn<&=Wf#n|1F*}J?H z*4!{S3XTQ@$NPVMv$(~195r1P-nTe7mh|46d0g`Qxy9uBc`^I1!Et_zvzU)PFJ^bz zQRB&?^I|3ucxrrpi}Rdm>vOhhbLfTLJ`h&24_J%DNmeW zUqJC8Tm&x~fs`!2Cdn2@JWxoz5EEhX4xp!%u4>&=k*mzXPpkLH<<(RpibwpX}=WRvtrlJXdy&GsN=3IQ5}UiQGeCk_AeZKMnya2oW72BG8($! zK+Ipo0Fv$W{hcod<*sYm%w?^*Q`H@ZMHFb>v*UaepNo$(b>A)P+xBfR`c6=H6&g_? zAKBJ~j#$(9tSmMA2wo5MkzkjL$*w{e2q*c)tL|0|$|Y^vkGH-@ztv9_@N&&Wk%WwQ ze5zd=a47S!vp+wQI{GiJZN`+v_oB%|uS4v`8QUM+LkQY|j5gi-0Qv z6Y}4pMX+7}6D|6aD*^`V&sZ4{Gmv5MR~PeK)HReK(gng?RMl2N$O}ZhK$we>ktPJY zfYw5`3k18sIJLN_hrtmnS+J3z6@Z2SAT8(s0RLLFlwlV9E1?B`@}E=|vBo?R+h%P8Dn8sic&ujU@Q}_RZTm6-_`V+K*-U6BiXe^+gfF|RAkh=WO{j2_+ zKg&er=H=(33yX@2IR9__8K>ZKUP*gl>)-gZx+_;Y+VA`mf7W>K^8J!Y;LkpM{513V z%h%a6Qw48|zx@|~hW_d~rOUVY%>BHfYrZd!807E!JgxfxzbeG$EYcMRJE*Uou~9_h z5WcF0e>`)~lO2E*(gK9bde1HLXBK_O6)_C^CL)PeHiZzJPiWOCy-G#nn0Vyd_wA=x z$LC{n`Wsal)tEWERw{j+S+)>H-lD$mVzpq!w#D2WAFD0KyT54!srwGhj z+o{4yHfQFc%!w9A!lm=CZl7`~6sY4`u!T2BicStWKkF~jusQvB!O>lTv8Hk>Ru`c8 zLPRd9y6R3ZI=X5|7FtJ5eq>v_8A_(F_@(jMdH!tj_InZ~>FkfMOFIZMwTtgo=#qvi z=mHo7A4Dg89LEdCeTRsgM85ChTz;J4(2{i~_jR7I`4@D#LJZ--(P=(zefsKL;X&CE z;LjQ-pPHl6Xl5wsnde+=pO`wGOd9(7be^u5(8I`^is6(+>oB<_S$`x6FG&4rM#e~> zy2xgkC!TT^-nk#(enw&6k25j2KB4JkVH@t}dk4K2rp&YGb#DBwvTU*fM*=aserNuj zd+{}Cj;xMgm@;+N$XBq|%saZVL`AcLc}I6@kk@BK2dnwdwti9CvbgtJ_17|;0zdgrFjXjFP_Lm1FNTEuiKzna^>p3e^zsQYeT(m_kkb7a4#O+5I07rvJaxCj1NR7_YxA9lT>UP?x9l9}jK7Mdp%aiF#2@bUn-p{t~xzYIjq!-&G;jefr zCkM()2XUn>_q@F+U*4vm7QAyd6N2~$# z-9PZwphq|?{?W*jfvJV^^6h)&n|ITgkMVDpTGuVWTRK${V=Nq+Pf7u#yRkG7;j7xK^o-@4vm@=8TX z(ZahpZY~b#?${j{7Wmf3y;EVY4eJ-`%NOGPoq@Q<`FC+PmW3;>Z(Zp7@huxE-0|Rt zd93+&arD;flCh%JL(LcK=NCpTQ!nT!Hb0-Z3KzLh@B+%q=}p*h(_{fb(}RXJ(HG|F zty(Ad(ZYB0^p;7-p~jozU}BkUZ2kBV%FBbW>u&RXe~Yupq4|Z8;l+L&?2F>|JrydQ z-xoE{TzJ%9>NqF)^V#Q5ujiI7It8~;3%2)sN3>y~BZ9FUK5dK0C&bc0Qv^n@7To|m z=0Dj_Sb)L@#XFays4O24Xnf-2#&vrW0J?-_tDd!)k+BLep2?0FG^L0^ZZjT^HC-*vXbxtcS@N zSWCK{5jfUhEyJrzuy2Jq975dGG*#4S)YUqxPoF*xz$pyaFr~kJy9XH3lvMlP-Y|Fq z3SMRc%X!28H1LuE8ik3Su@2sy(lA@^zWq{TUY_f#R|#tjl*Yz(Sa@$}X$=HYbx%(Z zP?_omIzX7}8Ea{;p|MY}0p~n+Y(rGExofa-3Sj(xY-C!Twy&JukWxLti;OtrN*pgUq z@qvwHn5qGY3NKCp!Kz`T2OMbh`E&4+mI+;@y(8EwJq4gk*kgcC1U0h0{xnpn#adthMOI`$smNrB=F4xs~i3by^_%UdEM&47We zIkOoO_qw}73kuxo>U|-455Q6YU7>J7YYlxbfUZEimX>-t`8nLU5e}qkXJ;r7uRcD8 z!2BAT>uo7L0vmvs3+J^>jo>vkAYngzU~S#X0M<2*d&SUkEu;im2l|2$1I>0(Q67}o z^zR8J=!HQ^5aTDBDo!|K=1dbR<%ubg;cMg#Sv!|1Va|0;{Jg z)1YMht5fi*_sE(f|MZg9>3c=Y)qDOc$Pb)?zB=(o|9D9YR?JsZ&v9YJeC%FlsUxhIxgXyzI0g59{>II(nDIF8MW-k|vB^vjLYrQaQnU<^&w{&kGMM%t+>ch4q{*0qr zM{T{8YH!ac+h=>d=qC0^ky5b2QRfd4bVPeV{@O`YOCKg z6vEp#P==VMQ}cQlSJvdGt($Ea@FfU7bJ*^yLDo%Wg7vw1(>*9%$cC9to zo5HMZ!+rh{&frxD9q1qo=JJUp`a3bt?SFduz2(422&YZ85{*Kf&AHu-+O)(>qJg}t zIhM6`?P{#N==4B`!qONLW!yT4+*xbRu^qs%Wuq?IIZ9ZfcUao@@nK&v8NI|(z7^UR;VkXB+oN`869NepN1%^^ryyU3O(xC*10T3B8GvIdV^%XIg2=xWpuDNXFijw zZ+*G%#aC(cATXMrbx-Tzw`(Jqef7T(Y4Z8Y52%a?OQdSs*-6=S1-2H_Vf#3x8!ekW zfo7o+Dce{maz6e0$xCxQ@=?Ufhjf2+x)@)w-z+Box5iV_Qu$iSGAdWs8YnY=ibyf7 z^BCTFA0?m8cVyOr$BMxbAE9765Hp2Y+CEu6c{G!So}7Cu)J1t$i#toDOIuU$a-uAW zKEGu&<2r(|wYP{ojYuVpt$GtD#1JcM=lgP;#dydgg8pVcJVZ-cX>OnJ>S^+~OLUHE zB{xiEEJf^Hat50_eqe6`V|WuwSPVNx!nIJ!j*ekhYK=L@V_3Y);t)Ry7uWkSiC#C| zgGih4ic-W@;N?<%GaO_XZ!u%wEjaP0NRUm#o}{aZPHJ+p(P z5_HAnOc`Eu(qCTo7WRdVe6n)Cq!8AWZ>jXn*chTIN{vRA5T!d{h1N4__Hl$$5-I&u zx&o=8RnXig0L|tq^J!$D)5iDDN^@G^kTubu%9OHAnk$UYJ#c2bYRJ@5?(#`%vfaa~ z-Dsf+gcU)S;fyb))Vx=4{fB8ZL(w*rHsTti5ZR|4m6?| znk>i?s`TWaEN1e^a$@JW!@S`=VNcLQw$VR%mSK83N~P*nC;rqzWNB$(m?6}|sV|O- zV%E<56&U*NnMzdJ8G4{{&SAIl;^pL?4Ob}SEkXM!1|C*gmnkTonR4W;NDrAr#*x!R zWW!X6%fFN){r*zOfBn4j>o0|zZ?>Ja#Kr^Y-_w^(h?SB%gs;)j<0G4W1}T9{35+j# z$P9m1CWeAzOUeyGXhE{q`0fVL$eO9-^IXeVz4TfRAX7-6dwtLt-W`4>^Y{ru9W_#^kM- zLN$!`)M!}eV(KQGO?VNe8s<0^yb%+mw0&hT=NagI4Z)Ia+y|2zpR_Z&JRZ-GD`%$>$3vM9yc@h zyg@V!$m!LL4n@xbbp4Ol-n{;MTJ4EgwlaA*7C=T=!iz)XKh?AlG)KPwW(|1sG_e>?p5XVp6L2c-9mV**DM5bGUp4k~+5 zj1(@?W0@%$%KqC|xJ!BPCT7;4jkvsuo0K@$z3%%AzaLH zK}rL<>K78kO8H?fShGELIWrMB&Z@VI#jZH>~ksP$i> z5ZY!}9rEUgHQM*kjkoRYx{y6|aBK0X`eR|3NYX|vGQ-MuIR{m8CtiN1jA*P5({Fns z9uXGPE@TBAMk72H_~Be;7{=-6jB%%xFmc*i`kH@;ZWKb@K^)$LQ0Td4JB$lvm_~WIM%Rs*mLquP7!QujM{qLT zJP5AKo7#FR9d)vR5GWtJoha^D<{Navy=A`%N( z+gk_-Il}3krB0wG;y%3%(;oi%lg^5Ag@i=%9jhpGIl3Q5J?QOr`jXdmVcxdbJ^1#F zj87T(ajZlHZfwcEv~_%i7;1do+A6(dGJ_C6Ny9MWlvB4BDr`DLF>oTIyxgOU$5Nv3 zX~1|#j`8@rBORJ#i!t+tPpBaZn%zSV786LF&Ay|~n?b|yT_p#xoTPGynnP-u4F1yG z^~>3a9fjCCwjS?;`Y|T3qDKYe$ytg*p^xE)%Y=;-)-27z3vuwINKzFir|k>bnL?6; z=caQofy4t;o@GHCfdUEPD;2Ni9Q2+6`I$--@(g|Xk3L>CuE#1$soFN`iPjC)m>s9&@NRTOPglvZ5i z<@Rg|q?L?stfnFNA5-+^i3P8OL%DW)Pkn(aj~--;@N3(4Ndr3kDQMG&h_7>OX@ zr%UkOgjR3zJyr>yH^N&cG)d>VK#3DXmF&_l>F7OpycZ$(2;!$PCuoA9Oo0$VKu=w#2gq!+Dgz6Fe5OK1OH#Y)1%5(U! zXK4V>QGRto?W}HqPN_a`_aG&=OnTb3?qk6dr6nZ}S*=>1ese_w41>awmt^gmxS!TP~$eFpDRIvIL|uDt*?RjMF)>T^^3_i+RdV2&wa|4 z!$T$WG;+%MKOB!KIW_Bl5L>&OWtp_%CuXeZuFWF8|X51;obUiPUBscQSq zQwC-H_&PkFdX-c;|7e898YYiGL}i&`_4#KFfJLZtjq$-`f7JtS=;{-MY$zhc|j>n$6U%IkcXuCIZg3de2 z;=MqxNl8ERE`Fuo`m=TVwQ)+vm;3O?PGiQtAG-Vf?CeZpnmYw?HVkAK4$ z4PoLqLObi~3TS6nJJk`q>dnz8V@|y>Q&3W!N9r{uZ@TzbNWFajK~b*;s@FkzrPHyzZfMhAqocsD+)8%%T}t1`dhy-*!fSLim6wz;Qb) zPz($-0IIOHF#@P!acKf;ltm67mh^Dz4k-RSRB`t%VDkW20G7Wk)YHqu1}qn#E?{>9 z>k^>xfxU<22vGWf<-@T$Y+DvleAu4Ao&^>wiM@TZ)*Cp+Ll0$7a!{{bsP@T`FU0K*E15HP9q*C_c1Y=Vmbu!+E} zGBr~JR|i}vICloyO4nGkzTOA8$U}$Lfx!jXhn4~D;6V-;FW^}!rw;yjYy9sl z#eXM+4`ATDL-LCK4jhuwsnX0KRzBAL{>+v!c1J;^JBv8aQjjkAiYLkJmK|b|VP_K? zs4`q`8cGwDLzZvS@-^LWIFl-OSkzoLUEb4!xrgM5wlsZ*6}D#Mc7NEXfc`dl%)*S6 zzj-N9tYJLYZcTDJqgYfv%_3Q1W`aKQW=4)N=j4BlPU`cxo$e(teB44yYNnrYF`?4m z>>Yi$n`(bISi$PDe9THSH;tGyhkz(Cs%3%7M7k2M42DG|%dTOT@QT@HDP%^?Tt8Bz zp&yXX*PG~c6g_S#L{TUp(u=neV*<^p1ZGkaam91hImx&qBjoDp4D5uNKheL(^t|~5 z)!Z;JTV z(hrT{DI2pxGm%!Zn)xwxqyiUC2lz-rmy z2#;eq)@8#&HZTo^y1f)<+l#4+S${BRx(N!mVRCUMY?^MHDxDpw=M z>iVWtv6vx+Q>-7+B(+>M((X5(=uwBQLm4M|u_W^|7|wV4>FAhQGY&F# zo{{M%Z^yX0OzRDU$vd;l0^?k9X<{Hrfu~z^mxEISZ(Nr1O}vZ@$@D_>`Cp7j7}jp{ zi)LN4_tH60b`KH5ilJ$Qp2>VCdF0{GUoT$SGYytRnngax)E~8p>8?-87nG}$OP3S> za6EZBlj3h{^Pb$$V&zl0fyWc~TPLW@ZkB(gQ^jLj(MsZj^qypybQ#A16e6zCB`sHz z#;Xr^p}`J{539=scIcH#Xmks2WG@$-OSSHjgNsQn%45d*^_k&*ZFyL9WvQ7N7j) z*+~nNY$r~dU8T*cNX{0dOgwvnN47nvM^{{)hcwCM-xh(gi2s;J`cO{qKndx2cS$}* zSX4<38y$CN#Ha&>GUlQLMA>qFTvGvh?^@OMJ^2E%rb>c|1%)ux)h4fGNYPmW-d!lH zH+}WV;H#Tg`J)6CPpr)@9!MNvA(lG>wW@3!6xX|~7~N`v_&XFmZ=ME!bPxUo(ucy*{$rybCA}5)HB$pxNEUNhmilZ6H{2;dHlqF9c zCXtU#TKYV(NTTj$?nlis>eVOoC1`*|9!3SXTr_1zF%m& zht7#p2zS%6TMr1FF`OJnIr6_2{~Qku2ginWveF)9CVvtWc62 zoQZ6WZQHvwJeWTUhn_)r$=NjV1p1R7>m>rdSqLK;?VMkh@>1e*os{nWzDwC53(6V5_hZ{vhJk)pmZ-&(~322c@MhN87Qd<+!TTDnWuOqj3!*aEi;tOF84v{^i}w z>%&>+B=ZoiH(Hy#Ekh`wXT?%135%FAxUA$vX*S}R)==`={DF_NWTX7nFl)pe2s7!i z>pRs@h5eHOnpPKhjH!ueooQ5^cvr2XHzK&R?uDgETH^yF>q?%6XQ>0nVN6x0F9e0@YdXuJ&W$PF& zP+53u@yKY;We1(R?w&$n66Xrw^6C8PU2hy6e~hM{(Q&FDe48I)Q2R(=hyIm~8zK+2 z6ix)bZ@PD;Cq|*@(ex%qI{^!rOlfS zpbvyw7DGo{Xv0)BRa9wIX!GEl#l~76wujLEK~uDO=SDMAJ!s6}*aaSfGIDW%-5<2# z(91#Z2mKzjf6yO72MBvfXeMFjs9~T5n@VU1Vb|sy;0VVtxp^+o3c|ipSw)Uvp$yF- z^ntLigw7BePS{t*?y!Om(Ad@h8b#>vp;v@v68gZ_wk@z#gpLlnL1+SDi3!`xn8x$K z4MQ6V2Q<(G>X@0799p;72QHq`04Qu>VRW|E8=6U2RzjC(XrZ@0VjTd%&<)2EExY!Ez4|KbSx^{Gg1O}P}rz^lc4YY-D*b7@i*l;c0(?CxM zi$yr8fzA-##G09T2dyA1_#mzeLS`=b4-O7x>S{I~(-hG|{S@MMpo(#dJlwP88EBERCG<{`Pb{u&u zkF^RNMvas|HSsFZmjbD1rw3oTl8GLloJJ{IqFeo@NH0^%oidIiIXQly1QSUkBy?j|c!#Mvjk zYt-~gi%!i{dtEq#W_ehOd$S$t7czW~yz7XyH0I6JG@=UBnM;gCGT7vMqNY{*2akI` zbWWM=GGZ0f$my}=yyDt7zaGDk+L!;*wWUMJ%>@$|)Zlp`^5~7uS-pFT_o1bURzZGJ z-PPXR%2ywFygD3$_88nrJP~L0(=*a#10pr%j(23{xTwiQcmI*Xh~{{B$dp)f-Bxfu zvR_(FWbc==Pj6vUWF{`T-44_K*cV-DcDn&#)Qh@}el6w=+PBNm@5@=PkPg!HB1LUT z{A4A%pAr_(;vP`G^6MzKLAFpEe=GShYny!cXCKU;`9)7sX>W`3eqcCKF&`yhijn(ZT+~~RNtRJ)8tT$brSXEGT<~V|SGF+&1mK5}b`MCXZHen^|ZiIa67C zV>RV@JYq#mRy-zK%Z$N#XC#SqyIBM_xrvG#4Vc|ws%^2w{#wGKV!ew_xl~>{r;xK2 zxmlybPJ7`Bb(Q5WeB#`j+ZAGIPxfeii?#DE^IA9jaX%XIoRzfaQqf+7FPc?ofZ1f^ zm!>`;mg{|HABC0fAeV?IICUI@MWV>1BQwmxo@ik=U9d=BD;}(=PW3&$ zd)Kklz7?(`ujZfq{^>Yj^fd=fC zkuC6JLv9GHD`3C@%Z#I=4LF0qT6g|@JAATW9u#`YKszZdD}o78*zp7o0{gb1kZdnXg}u6%=G8uUP?Bzsr}qpmx&3-Ek^) zygURJPQ5+nfuV5g){QncX24|-WdeI5=y`MP%)#{S;9v!`X0C%9z0iXfaffapuLKG;D@ZE;QENFPpsA+9&Jni!W4X>l)B)}R_+qCD) ze}OCLb0E%5QyVbRbYKeb4ZzKeIeS{An+CV&*m)q-0kVaL*#m!>ni&A20jYsI4DgNZ zGY|ARkn!w1IlySZbO308V4&dvmjRA}Yz9*_qM%mI{v3k;wPJYoQ1Kx8aeQ;_Rg zPDKNM0f+&S0fL!W7@s~J3kU}M1)eV}TSNbpOZ56R|PkjQJz0#eaubLoNo5~4`>rueSD6M%&|2aE&scZ>2P4#yaU8fhAs8C zj)eZL(g|;+?{;XbOuXPmo2zZ@*l4;qJ-+uGVZ=5vXvcH3wlLltb&a98wd+o_G(xfG zluDPXW1Vq>s#QPa9^7e*KY)3_PZkgFgvzk7M5ei*?m$+)R#~gKU6`ryuf)^ZxHQv} ziT-}_W#w~=d8u6g9%}6D_*ZvagR#YPuSKCH{OsBk=&hUbG36ONnzY?IJW`(3K-+JS zd!ns-g78$&ddv9Sr1aMY0ZUT%G1g_)Gip5DZ}^{7PyIXbWT#+37|;=AqU%1=v&<^9 zQDdzA8gwIG&5E9bq{gGU3WfS;vWf2nr4-sF!za*NM_#H?HbZF-2R&EwnAI&ixZl

rP8x;?_*J0de(;8@L|uiazMmMEScagFR1wS8k1A*{cO{U)B&=!||B?Uwa-6crH9y1zLEgQN|KGkanST%=Sbqj1EuK-59s=ZG$P zV?1cu-fGot;Ce{24Ym5NU~P;X;_JR`#j7NacP`ssI$W}#CH*kxX}UGjt!0FQ=u>CZ zNzZD$%p0E?BwgckX{@ZcoaE+1_bX4Ic(n*|%72&tX-DG6KD+1Fg4z`6RR7R95AcFC z?QiL#CN(u*`to-=2j#qnLyvqM3<_D<5~#nl;nVH#4R2dQHn(UR?p{{9^7GyJLk*vY z6If4n(){q6V1jUG#X zygTz{X{ZCj92H@LA3SVBLK6MmFxTc@KZBf`LYw(BLpkhEtY}hjxlHD1goFqLANyVZ z-12zv(DA>%>wG%R!+y&R>Ss+{E3rpvGc26H_3hm`|N9#mF+v(bztHhiVrQqPI-~f< zQ;W1GPnKbR9MVahi2!0g1w4G~V8i6d~KQvob zc6I5ZkL4*hYYY~w!TA>{AogS-HC#cUfg+S%O@vyuyc?ryj*CXg=97oK69H}FZ$^{B z$8@=S5I$khKpi>iwed7~_bd6_YoGK~5s-x$<_Z-My+K_LPnuq_4#U%|13X~WK z;l^P>W_=S9jtG=>7Wo!*OdOp1L(ls!BNQF{b0?o6z!w>1aJsD0IXybc&(vJYV33q> zldnEFUbKa(E9dtsisZyXWRI#8iRn#Ucr%fE%9>PBa0TKV~}kM z$fmK!$hna#nk+HKjx6+?-Q%P!%b=)_&ze`T=ysR-?FH(Z7ZOwK5PfS&j`a|mN@ipn zP#)XkjwXJgUA@~s%&pCfFeQ61acGeMku{8br}_Nu?G9TX@w^_|DV;@%8)zd0N~pjw ze;bjKiY1jGnX;(}MzeA8L#lF{bo;T96hq=HV?O3sP$#kc>f)E1zMS52 zQ(N{D6QdD?U_F?X2_Z5MKX;U_x^%B%?IZ6;-)qgzz3$t$<;&Ga4WoD3ufIJmAZa#F z_Lo9Y%Q*LM7E_yMv75kRvylH9-vHw>Ko-yzXgxqf;PC}v0$6Np>>-dBkO)u-z!V@7 zKng6ngTEQD2tpYEN)WdLpa4Pvzb}lF!$%U56wpu(m9~(QfC^mLONa6=_;f>6ER2v} zyd;4VE|6m&s0KI#33AEE-4p}kPYw+_znOKNDwFwBrq>8x9R){AR7Q6yxjtJK|Te53t$l5YXJ}c zx9K=AF8>pd10Dp@oX&{=T>@zWBmzYOHUe^jv^1R%0ip!t{C6VwzbWOV#||Bc5M0Qi z;U?~7HvUUyv8=Aa;$>NxhRIce9shLb9&*ms{MI^IFKA)93Ige_$(JO(W~wiQxdQ|aqTwYP@1_|hSaLIBF5`>(wJySMAw zE^1X1T?r-o-?W&HUvIODC(gi|ic);qPfYc8;j+9&y2w~1cjXv^=@Q)|RgGMIA%R45 z8cGZ}HPzcS=~v8sCZx+|-%P1Sp0cR(P>IoE$-Dt-Nn zh0khM>Tnbggo>I+Yd8E(UyuD{a0%-R^=~0WR4gGLiNXE$R9DUkKv<6u^)i+KCr6$0 zJAGYc^8-2YDED{zI%ike?L5;d7Lo7xs)(uB@*EX*Z%s1jhqJ6(A@9=npclOV~o;wX2Y=fcyoB zy7L$EKvuPyYi{et0#z2y0H|<=I{~r=ke+}`0J0u%SHNKaDH3B-JxG1Pg|PA5SvV&^ zrv*_Lt_wH}0P*1<0RulA1K!Y^yW zifH&*3Q7oo%f!vyV*mayI7{ICV6n|0bpk>$1X!Ri{OZ+JZV^kM?HiIZww(EJO@W;N zZW#Fe1G%`Wssbc*5RKs{8L}r3Em@SE35N|tOMF)*fYShOHaKq}KLSA#NSZ(bCAPdw zI*t_XPx4 zpi^i&J9O}$LxITF@3L+uXyAJS^48Pxy30j@x3fC00kHeb+{HVh( z_kX;jW>Ej{>;L|rd60ka|5p7Ed63h-NB^!IBr!MtU4s;!HeES*XE<%Ta&SY~v_uS* zgF{<>Csco!AOBrBXn$hol-uFQ#^+CdH%A=({>uRJAj&;~0;2v@LUmInf2#jGB2)f% z|M%nnvpmR||9u_=tHs7r?9*V$+%{tVtK-;LFoCm6Vdmk zCUvvRXJ<~tR+wy&x~s;{%y5%ircBi!<8-}dSYSf61F%WNB*mJfj+2KfND&!S;~koK zOa&<^6RDuTpcvE|`nwbu*s|9WR896xvU9DoZ+ECy<$KMzh{4p1$JZ2N?QkY2z4c;;uce7`>7(eHSr;&DHh$B6Eer z$1jm;6T+j$AEYjKVOOQCn5-tUqq{GBQ5@H;&tNIYSo>5dsk-viHXB@V*CxDQxv^?~ zO$r;)RkFTJDeT(lMZ~*RvTF2$kV9B(pDd|Dw#EfD*Wheo>3HNE`+>)80pB#Pop$<- z{GJ^huP}|~QuU5%W6{ixoc)JbAGF3Y80?sS63z@>TN>$$4bZf z=-X3Ij`?d4(vqYyhGYILOlKOy72|E!%}VS{|Mga$u#cJR{0gcBX6zOKuQhHbHYt%;$8B2wXwY(}axr$@=-jCro_yAKz zMoRoGk>G7y)lt0LQ;c9s;hI?!9d`4Opq=>2wJui?=~*Og0b^8S7V;(wZk}1Hp*E^TxLhI3N%%_RS2rx)I+_>Gk>z= z*f@-if}1@uAy{24%24|n?3y=Yc1|&aY?Udnw;vbC<$bus+QeG0>4RYP2&)&1ZJZR& zqv6SlJuD?ejCYb4(Xq*{HSQxAKF4e0o8iD243-FO8wt{CLylv4LSfBF^{kaHH9PcB z0kuR-ltWyul1=jhlys4^FEjp()h9iu-vDf$`tL3^gGGcNasc2?TN118KNT*^Q zym|P{_76h2aU?0^UM`%lO{r9oRmkC3MljkGy39#8uxhu*wb!P-ASg41IMFf25E)S- zE<&xsS$HO2LhR4M3-9kfjO%3k?$mJjs?3>GNqStynm`OxdR8)`l624=&tjMbd#*iN zxz@e^evq*4ZX2G`$i7cFp5Aknfb%C*JYy}JKOB-4D2L$65;1mtpSAOq$rW>LQ3sNw zpRTr8qu&@Ogs7YdWdwW(H+4xg=``y zB&0Jp#Z6!(YHP1v{*L`{4mWAQJ^w(naL4QlhRlL>nBXn*mDK$^5aei>*(Rz{SLuaCYc*jGbr;kC8sc`eXwjz z63#I0QNEL4wqiG!%f57A1Q+1tDFRi)S-h*j*u_h*!Q%_rPADStqLVS!B2kYY!FdE| z=9_wGb&d{hfBap{u$aZYM(V0VDi|1o=g-F)%Pz7)wERkUlE+9o8#7YU7_)YUoWNUs z@N!*PpAmk76}+EbdckNE8T#p3c4_;GVNK-tDoZ4#f9*Q40JUMPkJ|1h3b(FOnlus2 z*-K+)@KSj;#m@Qt?^r6@*1PbDk5ZHI7h$=f^~*BFv$`-A2O zZ`rnpmo56m8u3IdjS5ZclhC1JJ!~Q7APHGpGv{P$>`Mj0gBA=r*JBM4seOk1>!kf6 zcRAvK0EZD`Sjj47Li7%*Xotp~Oh(2xVdvwZ*U%}YKx zB?l+0JGDgCl1xCncBQ2CmacUqArj>kcx~oj9C}&2wv~@w3P$(wkn<8$D|)MJ<=Txc zTNB!pUIr6!mWv_{&?GLwEK1gsu_`SiEbjvikI6YmKn~d;hxO2T5~aZ|846E|Od22W~-cB$J?QV(Gbvo7Nd!8q26SXZ_jGft-HZNt+GPSl|@=koWH5mGk2 zgn`Q(UxoRAmN&J;>K}n5ZX)q1qfgEc(Y=R zhFh|>ba}-`!tI8pPuL(r z2`9JYe=0>rcF3?Ph63!k?am^K(x|@u=GmesQf_HAdD6}tOJ5(9WGPIw|D){>=Mwwb zm3WnlYY2tQNQgrlH~B`Lqj!5TwlEwc!2gxGw?lDz<{h_XW95x%!Z{gxJHpWU-!kyp zO9}(_B8>DU6BK*|4uH%pE2G5#J)~%)oU~+TyajV4_tzvL4G~rB+0HBN$ys}KZdMUW{KB^eU%{@ucK^2UrOa$ zSt$e_8_&kCSqPzrS zaS?s0fZW|hH~vWWdVxxek6QR2y{xXdQ-TSvMcqyu)hRqW^c{^Ti%_>D&tmveFjPKz zY=}%R;vLIC_t5+)li%vc%ay8m#8d;)U!i~a`9>2UIIkP$?v&IJWy+anM=x0#FlFlaOktPkKxm26Hj)@bl zA$>%e%uSROR@hha*RSnts+@Gi_Sh-gY8cu5Xm(y~Vm3l}&7@wG;P7E8&KbnnQba|9 zi7hBO4zFsckfj6 z=~GD>tt&@Qtu$#}zqvJ<-5OWWns%=>w6Zn!b!)mtt0S+?5s@JkQcf^s_6X2p{5HoC z>Ksg4ykpyLjZ}V2&$m}4FkgoI50ZF?mA5nk+)QD_f(lI%9`|8c@ zr|z}vDZr5EazqB9i6#FBpHh8Vo;-j#x|jZ0EL;7WbVN))>5a5%oL#i{G-;IjhsX~{ zrxBAV7dM}wYh#F$eA;sVCc*y;U9`k5C#Ri;+t3qyIu61|(ielMRdCX6MF78XD2nKhfReq!$dd z@0VD%nMv3zz-)9n?Rfuk$x)X-e285?NV5JtY7vxAeEn!Xex~?Bba-!V+T3^_$~8W6 zT#8m~qpOO0u@SVbtSf@eSK4IFgYRP<8@p)luh9MR*BGc7L*{~M@4)$JM_Z*Q8WD?3m^snRB-NpSDh1Y*nNI5sK?oz2cvqyD+L|cj9 z!fbzkRI2)*g}iS-b9;-%g8|08mRU1z=*l(CUUI|mZN0(18>aJinmo9{Jo~TwlghN3 z{}~iPhyT@CF+D;8V)wMF4jCX%&v}r7f~r+e4Z*rFf4&W*onV0kbas%}L0gCX6V%8- z5X#kcE*KA>tPb)LtW2{M~Q27#tUnd;$d=)<_@)H63*V2_9s3 z*d&2y6l9@5Scf3gbRr6ZQ;>gx;M6}WC5{f3Q-P}GA&|#%VcS9kDq`7G6)gm?Alnoc z%!PV9m?B*m=mwq&Fp5BhEZ8I<;RL<1;1z+|*yL4tzv zhyrpch^!!yPL<8prGpFxsw&8gAN zA#ztSJgb2C`tafU>6jFFHo&I=@+zpXAiFj;Mu0#Inkz_;pv8i&3F0d#sSuXhu`>WP zTF@h5`~>W=AkBi06)YK7uC4?D^4$40kYhoV1%WnfQP8`0TfwsdLMf~;f(i=)B-HkR zNfu;6SPBIF5~NU&10jGF9ka~B#(XMP#rFpJ6U0t<;8`5*07_nW_c@SG=UD5*8`6?> zi$MVebv7b09Ex^8bQB6VgF*?iB|I{LPXnY-A72m99fO1Iz>fi~FrW^C=m;e=P%r}$ z<9}2HXM?k%N#}xl1~Ke@4_(`R`%KtO{SVHH6VO>Fd$pvqS26Bz;qp!H(U8e;2tAhn z@0+O~X$!N@9fSPSr?JDw{@F|oX{h@9HRJC^!1RPaUp?^tc-QaT^dca0$nie@nN6zv z=;Q3y_`fdZ9`&wmg$69v(3gR(axsjW%Zy>QM z-MWXbN9Q)o*h<@SgUo(1nyd9Q-#fzMDR~9kX~r?_0kiC>MZmM0uP>`7Z=I~K8MkEn zNy*>mER?1$xFi3E!q^3Apo^R3+XW@_Md!R82aFmhq!1r;iDnbqLjo+`D`nDLhBg}f z?vmB^en#o`bUkt(|0s(o)a7aHavR(h+>DI#U2a%%pdi(>rjLy`FVR6-(2Q*^jdl}q zxl^5WqL@MzEo1{XP--q4(}vFd#k7`La4=0ZpS`@|Qlaj~#2`I($o>*N7sRWi!0RvH zpxT%vt1?Gi%yeoP?43#_O1^6q4o?-M_ujI^VqOigcODKb6l=Ow^K9i~vZT5c8!M5f z#zw`$YP_d0dQg+Ceybe$85}e(qVR%0W9#n`lJzA7WagU5uBGhrLULG0Ol zp5De)u_6up!eaC|$sa2a$XISFZobw$mgqGLi{!giSOvCBlZ?kbipS zK#^pV+cQ)+AFOL?Saf$z;z{iCUa1D}t}S|=mA)uwr}DfLyi?2EIPbVO#b6pmF`n3>>>7cFY zo{nnPJ$KUyDMv+)e#zH`D>_E`MwOIc-SkVENKH@ByV$9oft_fG#AY$nN@eZ;>i^?yM9-wIj%>#6><8l z_Qk(MuW9txB5m~jWvZ*ejxooTxBD!wR^q&-KZ<^ge+)XqzM_mzTm0Bu>FS&$Mb8UFh1q$7xtqy8 zVyrK=MR?z9^+&AW3o%lQ5av3MdwPV`Z%~%daxwI4I@kK$W%OHTcLpuY->qz}2&Yve z(C*Z7Q#d72A0E%9-|c;_Wo4OrG%CkxRNi&+JCjt84w&!TgKJjk()iSnr6n(X?B2z8 z)dbUMXd2~}tb*P#{KZ)1u*FNd%iInMj%{GG`P6do9=B&3RC$f9hKf5cZUy!qHQ(02A;iM;H)USR--?+x7QEyPh#1a z4OrHdfb!-NEcc*s$YC%4jt{#Uw>@?D^YjjA{;>OS$w6~)RxG()w7cz0j75&;waC~H zrH5qoO}6)5i*=Y&*kgUrD&!lOMn9HsRv`FR) zhlNLNM{CW_8VPa?1qj9Nkn@+`$pvLKH?=RM<~!k7*Eczg?f>@Xkc-L{-j1J&+U3$t z?{P#B%!?KiS`3^ut_-TFF`6;^2 zZ#B)RF8(=q1S`W`vB(=vBcGAFD@wT}GLIn7AE9cFfMRcqmSYh-3$jUVUPE1R%;)1X&z@lJiip{imrVv=jNwX_$H{V8UseLWtx z_q$*g$|n<9jrk$lJU-pNdH@;e(s_6f9U5jdH=SMSKKHaRJ(tz}r8}Kv%|fgizxHs? zJzg`)Krfyf>%`veUO{5whKGYMw5@!JBa1NU6__@}&roygn+)B(->%(vZAcGkekQ~- zz7ptlo$J<~iAcb*j;pHn&?HWeGqEf(9=T93;Pb*ov7ygGjf5=Hklr~bM$A}(8iTj# z4y_7^d=j#{iI-_8i|GlP(W63^VqEurACz~s4#J|iDur8hVea*;OjdZnTJ4jus6$xM<#lpTfv8~4Y{us(EG16JN|2Dq5eI8d?6UD}D{&6o& z!Pd2+$u~0YG-X~cs+oHqmvs8agPq;$y)FBK=$WjWL4wwEU*xzOuMU%)xq=z%$20ZD ze~geXSD$}UKA!FPbBE0FHx~^2l1<#hPtUmCcBy?sa>S~iPZ%m*EabP%*l8Mup8^bf z{~HWXC#Yf~{DFHR0S_h>0L#SqsktE7AOIc)Rs;xyL_Wl)z=aEJ43R0Y7CSr50hk2% z1XByZCjc`9@uAcirh@=AS0;o)3g6b&40aHJOTp+1_zLU_>3kqeuq6Xzg3A|17J#K; zB4I^*F!Vsf0s=(*0ZjpDfysem!MzN5{b~LL_=M+lNJ;@!PCw%Ve=hK28Cw`l&mzE+ zK7c6D={$d5FwMa0JQPV-EFQ6Y2%*a@@=@Ai=50-yyzh4+7W)d&6rT03**6qtvng6a9W@YW56 z;h@c_5T%;72Rm~e%&kp;Ho+JS6bj6lndLhj+X8L`GcY_a19<|wLa`qhhG7>Rp!APF zyrN>AN=kNsP2g~S4FtBPaTMGEz@NaY7EC=jVZa*ZfS}KwjX**RiU}QD zY}_Kk&E}W@e?k%t-v6zf?ct#w&~&^|G=&Kzun+?@0_(zq z|K>DL$eHo^j?=L%@FC5$w*oYU2XJ`UpT{KU zrIkK73m~%v;Vp>eLG&M<#KBh#Pw`L*08igxivr=2`af&}fIkWU5r!%0`TwuW00#cH z_WXaJpvr(@h5IA>i~{#-Em%5LmpJn&H)OavC&piEoj`vsx#P>9RYtdzeuWkj#Df$M;bdtHb})Ckp)tc@kqpR z2r6I~D0N?Ub5pI7GUqNS&#Gi+LjR6H0@!>;~EB0#+r1Q^49z zOQ~for|CXn+nIBAxUQ8huiqR+J~_tDlpUjZl(!m#Kqe{abUO}b8#7ox)F(u1AcI~f!drGbM{S9L(`-3QzoK+~DX;J8n zc4+Nc5tPTbQMh4s|MrU2bdnw=uwH$pzrPW3Qk#e@V(b;Q&BD9^hp1v=k|(*?`i;}=G(0^W0zf7{P|0Pb2nXO0K8%xm@ znthUJtDbg;!c~gBnY01FZj^qX`)y6t#IhMSCzzp4sb z$`)xlXYItje=?Kg+2f-A;lIPMrz>#;U|3h5AORR|F5V@3(C}hyZ@|(I#dTw2h9SLP ztM)XP9OlHB#Cdw_oDC>$`WbBoF#P$xRdM@7G{CTrWLuQc`TNn#g<$~0A5GP`{g*t5BJdi(1$6}5MU<~ew+=}$TJasSuE zD~=jnld{FE4Bbzf0+taoT`7$v#x9I=1{kh<^HKZyc#ruY6HP>{_hL~)#F&L(Q%A6x zWPyy*u(YUL$v}P`cfMmJ3>YKGHp5)UVPT;jsw;-NGix#5NmD^1@tvzW0MltyaA*26z320{4+@) z0&j{wcvW6{>`s=ay`zFuC8Y#!ohmW%8X5jLTw3>XNuCo&L5ev!f|+>>jOQ!?p7Hq{ zxj$}eVV-}h`-m9#0>LOHjo=rj?i=04(UmTu%T3mt&&R+#p-l*LNAH5IUhCrv-D)P_zUb z2bN>7Ljy}f<_s$6Azt?A(OrNk@VbG08d7NBd}gtoYHIfP_xH549EZ3Vn1MkE1dlWr zq`}7qw&ZQwbHI4~yPk;&H0tf;3c0lG1g-?41f29u zS}{$O!fV&2p%RD^WLF@{X`BT1oF+;qXJg<^sDA>e1lXL;nE_XVoC&tklPyuehLAJ+ z2Q5L@1W^-U6QB}iyQWo4&_{tNZRQ&6+Px6sXn>X$)+T_HMrH;8n*fzJZe9bBoF+38)Cz2(D1TQkcsG ziUfWHA(NMq42mX@Blt?eOA3BaaIAuF9QYAf5*(iZkKhmmrE|*nS!M*Yo1kt&!#E%$ zkmJ^^Uf|{gsdbtk!O96TCs;W_<^=mDVB@sL3EoNoMj%H3Mo6JW$2bEs0xg2$6HpOa zqRcD}A%zCa2-Q(Qi$I8e3#=h|2LD~bfBOIBuYX5E%F_A^%;`-J%`(G*?tcQc3J$n6#F;q*?L%6(c zIgwQu+efKndy^M6PEC3oS-M0N(CMn#!f|;`m@UpsPI&k*bnm*(`*Sk%x~u*7xnI@r z__1_)q4t#fTx__ZasqS7p zW3@b8A1?=+sDKJzU0)X)T8fr;#>9&$v-ja!mNU0x_&aINGeR>Bwip!c_3Lb}sL;Ii zTsoV6(BRqc;mF`$+m-6rvCd`9m4z?7H%#2K*!P*5`KQN_dd;7%P2UIiaR>z}H+7!f;8c3MJAL4`zllBi z{u0mZhkp)HsCi3*>dDfJXBRrruV8HwXL^)I4&GzQXhe^3%vCS)w(?m3IhQrJpJP)PI@~2nR0!ApJVoUh}`tE=x&DF2GwDM zrX_<>(U&24#>ojl@?GUk&S)DT@KAi0$hAV6rOL7&`>d6WpHX`^y*9n45Iq=AhWf% z?>hYiBR-L0(rPJ^&lKw?mLPKsSO`9xiNg&ESgB=h$PjDqgKLMJXMLIM6IMv{P;0Jf zSx*n*m`j8_5xh^L=P@vvu;QR%WXMZ&uKnyXyUSjOe8Em{sS)SD%iZIT7ZMo~% zsLctA`&9C5&5viwPrEJ|G8OT72HR})o~zo=_{h0LBOgG*sx8Ixw%_9HWxjXsc-%-f zXCNfwjlDj~{9@dA4X@zJtz$Ye)wB4Sp_d(sU9V(rS2AQf^T&nux8LvBn1-cY8u4Il z`gAPym!kXXW^RhQQhq>1B>8CWMZIf53^k}uXf3~U$zi?6=It^X@_dXUi$yF;drg~> zgxA9-=PGVF8t+jsi+D*#S=0V)i2hX{WQ@7>!|aB{IGKGt3%ase8dFxzjJO&)49T@!hz`x!fz*si_El~yyIuPmyDGBB;A*Kbq1+WDy1sJq) zRXnUZK!^)^9N|k`UcL(=SU^bd6zIyC&vA1G(F1Z^pm@MbAA|rBSH^ALydJV!5OjcW zT6Oh4nBke;`+-WurskuNE(09~^p^PLQSgD}`FlgO41fu8*+6w5mjMUBEB5q?nz4y4 zyoLkl0PO+80pb0VHv{a0r*L=^2e6ywKX?|O&Yl4m0tEsZ!b|tRPpbjL0gXY#0lvHN z>OBo!fOG(P5GPAYUI7UB9}{JOfbdWbZ|Lx74qc)DB+7snrvngxhCr6Ui@=f7WC{2P zWC?uvU%u|s|MR~m%6<>~?Ai^xVdcB*_U=C*uB@uA0a35+aQ%^^4O7ED+x9iLoN8@r zFF)CF_S`?iK0Uoxu3qc=*Rap+J41Je@9jBr|Ix_kzlMEYy?*l+cEbuEzW;mJ=f}@q zFcyfTYW_X!V;tVo_&;~UF8+%#F7JH(%uInYy&F~^-rIc8`w!h^|Hc?o!#@9yi+gq{ zi-9p#PZE0ed2e_(d^+``L)O(hD<7O+^NFhEGZgpeoM2LU>9sb?s~6G~@2vA_Z;sg} z8uhB(Je4RT&$;|SQ*~-L?9aT<-iuhT?lea2UHsrw%Zj^gYhUkocNDyR0K-1#V=fR8 zO=DSts-z;lK*f^7oW(o+X&jn+4tQ;i|Avrc$+;mS{>F7ThHoATIe;JhFoQ^|A^QvP zLdxKl#mlA=W!#l!EQEAZm?XfcRJ7jxL)NxUOC=XC#$pswFKc4)6=HET4fZ@YVVqb3 z!cEINV9QP{8_F>~r5cV9P=uZLh>i;L1?|8X$2$#YZ&w@2t&Vh3US1QUy@UItA%TH%&zPUc=^V zwy$?KmphoetrbpRX`|D>AavY++c|R1;YfnOSIWr~!69~AFJA&N7sPQG41yyD>dU|y0(D!bTBG5taSrr@ z2^)xUfp3E!;p7pu476!$7pJA$^I_u#E(18BASVU&9H6;F1`UoaVY+urjC0zBF3`2V zeak2;3S>IitUJ{*I+_Y+8F)%u!$aY8fHP=wrv&0@%_pKDRR@_ka~lhAX21~xfxGkP zw%fPqc?{5PEy1KfhFpvbXHPG?lvH>Rt$lqYy z0AU>tKFG~|_#lA02WEO8(HnnY-&}Y0@bEgX_!toVp=1P%FOWflA`i%I!SMt~k_A&A zjv@FGz|R@v?>ahSppFcjNRV#x@tO1V=?Gj!6&0bNwwLT$2*XCOE(9x1a92UZj5)^` ze%v802M1GC)#7d2c#Fe>AspA)l>q6s&!5vFJqM@N&6~;VcBg=eXL$k}GH6iS3->pC zZ$P_;(+Ylt-Q4Fx{0*)~i0ttq{on$Fp(W@d*}2mnl5|iS3?aC!e|W)26SRSxJ`)G} zKIGTn0|w6k@Z$?FD3E=F%vwVOAF_4eM7h?tsBLp9$3l~;+Eabd@|7t}dTPjV04-b6g;Kv=V)wul?5Z?pq%)ei0ivRir z{r^p_Z9vU7-FbTFC~9(v+38bL%V@7@UYlE|BDpfNmNw3P{{)uNmeKCoO;w+HALviH z?fQK1w~OURPb9X*awX*syY* zk6PROd`r}3QNB#6n8g%F;H{b`AVd{Ae`{RxK<=evpq_Ub(sTzJ8qR8M2lF1nV zIwe2VT2Z~ZM{SkyLNzj;>3ZaNs^dMwOEMdj-gj&6VM)+?>m3zk$LgcA<@rZnTe-ibF=ya0LzSW< zm>1N6%hZJu1MI2!@&tP<4vP;%fI^mjVrz3aUcIGGxDN*HcunUk$!HIsDOAwGflu9~BCF5Zi zMwzq}JMA}{*1 zyiXL*)n~`Mm&q6ER6nHLAA;~*Qcxcs^n`Y9Vp9}^+xd?bz1;NBq^k2F#TF^!ZW^%1iKleVO!LXGaj^!ckz>MPgkI& zww?i5qHrvPFn>G`v-7J4J7p9bt}U1m8pS>_DIf@iV-dOS>SX2eTPCmQeGEAf_LveX zbhZ52B4^AoSBx%{Pu2>EhaygPCc19L%`Cvk{|4@I#U1d&QsxD^o{ttMau_w?Vd9A>m57gsqqC5s6YL!A*}X z2|>#rC)CqsKIYA8#>`^fWDGD^8Wl{uMrNg){v5IGN+d@&REUhJ_Ml`@R(endGOEgz z`8<5*Jkhq?$gyW$8cGb6?WClxB(P6<64QdJ6^a>xLo^pEmRVg9HjGi!q|2nf8V#yP zx$|^G^L-~XMHyNp45ZHT`U+H+7N0b#U*4G;NQq)(a96F7(Ppm|<0%+c=Y(=Z(2R+Z zdL06b;Nm6J@ewXFLdi2|Nr>Z_{4=DHeXJd3x_^=`@y(7jcTz_ z&V}NIPfHEVn`AN^x)?_<5=8`ow()R^C`g#U_lNs&S+N#rD> zQS$UQA|hgQGZ=i;JuHW&0y%*q^2gIo)~mGV!m&Nkgu+^O2PH>XR@GOgkZZdIQ*F;r zN78M%c4QHLFw*l6p~MVXbtGH((`C?dj>l@5s{Fv0fsA@Bi3LqTCZwW%5Pd1sJ2OsN zK^Y_Un&isO@)sRhrLxgb8} zbcZNHWvsKb?8EiOX8~rJiy23vYzz0j9ix+2WTc0K#3M)oNlY@mw6FuiikW%ScNlN~ zxJ@H+6-g%i0g)s)6D2E%i)yZ)HBLNm^dQ06pUwDA1J++7MdHI4;gh>l{|9?-9uD>Y z|NFmYAN$L`*VuR2cbc&i8Y0>>Buhy{6q05TgVfMQB^03)O3^-ql$Ift3Q?4386|1; zdz8=jeLm-0pL4Ere%HBvfBpKetLy3y^?bf=&&PdvoF{}&MeA(R_)1~PqGlnf=%{#t z97l>w&C4jyK#Zh0V&w8%HjhV&Q0Th9-H%&FDy8IUdy0^`i5a4Ua=0FC3$j%37sUu! ze9f-v`ot{ftF6$9%(M0z6J|TS3d~gKawG}v7kinY#1*${2TV}oqrzejaXeE0CERB{ zOH_)TlBCBfy`yu8feMthykbuql5}&~t>Thfk&C zJeE)FK)R@%Dpa(2!mvh|;4g${;8u7bP#6YN%{|%8*sdBi;FYyrdeM!m*RMs7@VXB z6*GDe`86yi$|7yFK~2j8lo-3xGIn7r{4ZzZt?ANP+miSD5V|fTyMJqTjeI~ho{3{) zhPeSN%NPIZLgqqpazb*AI&=b}QKAqhtu1ZIC^oBjQKc@*smUq7l}8LKRH!Zd9gP~z z2_cJOa?{#&ooZR17M-4^jx`?JNRVBN4fEa_k{8sm4>P=vT+2~z-A$IvFLg(&E?723 zb5<&9%Gg@de;)!h(hnpA}_a;v~UKNopSm3PMfN9 zVa4p@@<@bdYGgD@=jlubqlhfxc^g$^;Z%8xekklKvE30s-+^K7*sg$RlzmTL6m%drt?bYav{e+(I7sXfCWN4m_OtM;B$25tR)==`!T#{^GEvDS944dQ z2Gxwt*iw>#G-O<7qU-eZQxvsax`c2&@K0KxG9et7Ahwa0`5|G|qNa+oR%oNu#&fc( zqvx6}{dkc2EZ9`nEP7%5Bgrh#XSgDd-Tx4LoBbSV|Gi75Fb{) z80)_U&)$-v#Wuf%7NbNvbR{}bE8Zh?DH&ZBoP>){(rHP;748lVMh6na<(0GwV#MNJ zl3ltAc$P~yG;Gz>H-~ji8g|GL6ZD21;?p4X+9c~10f{%s+B{5ryy472J*n^R@r1%~ zVG2I5f#g-W#vV!$nb@DshwbyQ-CV35T7~Q362dSa4r3+FF<-p#_>oXMZQ=w9Kh^ej&7ss;r+$mx*$;u zo3Jaj5v$N7_a*u6$fMzC?$(S-dd#7NG59HrZ-Yp2>S@n5A*ptrCJaV&^rfu3_Hj_eX|4`t|t2@a$<4z5=6|X|UY{ zwYPI6iy)aB0$W~UKW@F$pm#n^3V&g{iy*I2XzG%S%*pji=e$09T>lXmWPjP!6}@3l z*kX@fK5|K%6n5iufWPSGU_3}OS>)6(7yqDL$ zX%!~zmwZV@YFX$-O0XY7+PW)v%f*o6K|+Vt6P!>n0z0y$>0qiQkC4VAnTGgsMXV@3 zlAbFv5YlPxiX(1G*SYuu^r#a-sQsIA)(_2H%sL!HEE6flnTn?hL^hj{Gp@9~@~mr& z+L-2rYFo7IutoRf`yEi0I@MM~@ON?lLb9_!J?Zpc8f^0V_; zT{Pf>2;#{KOM6MuLC$-1>m(0vMCk287_U?r+Y!YgUM=eT&LtetxOL>{Z3Fksv4`Uw z&;Xx~FZO5&v-9-v&e*$GSaW^1#09sKewuIFjmq&lLSs?RY&?-hFhB^yCOEE)<9?Ov zgsHBjX()SjhoUK|pgfX1f^XiR&*v?{nqqf8^6_PoH`${VTBk^~?&jp~OFk%*OAKQz znK4KEB7BL-83Uuf-U_>mx3>9z!t@T4uRlVom>ZQOt+$vzZnWNOW3NCZ?^Kpq z%)$s!$?I8YHVY?&;$Ho{x5?1mMh>UWye}Sx8LNBnMbz`_(Fe*?_oo~lOkwZa#60j| zJ$Q5X!Rxz{DLnV7Td0y{g2D*@x2V*tP&52LeKYJNjKRGr$KMs)l~C)|+|(-}Ni`DO zeKx9X#KQ?CqOo(GiM>~~s(3h^~#60)Mv)z!zv%bI02VLLJlAG>aP;Qs!xZtG+3 zGgA5#jFNoHD?_x9>0*C@>0XGBK<}<;eKfg`XhMFxG9k+_OQg4);^8a3*HOA~jTCf) z90^9Z4;n6^k}uQxIq%IDqU3vY;XXR~_GOAZAEQdIu_%0YdWZDcd(X7hNZ}Ns^Y9Vk z6vh-vA!M=u|!m&lPS_sPIlSz()0HiV?ilV@KVfFOg?m& z*!W6qf#f;L7?v$cq>L)iM#DniY~ACy?l)S-K-!t;hCPz!_+mJk2oV|H@?mV-+_7=b zv!h~#qGrd$(*4Fz+W0d8<~AZUY>KM!#KmcE@_xTHxIZo`DM93smR)}x`(c=fNbGPD zyTuo&W|2$xjF*Q_&KOMyv&qky!bcaptyv)1&KEysBGzmoI>QogLI;Q=Z!ZqL`&ckZ zE+h*CLf^RP&a;wd#V6|-qB-fq_kX{i5PMH-74KjmKQ_HD5|`|VlUT!j*UTrBn}}u) zp?AeU%-kP*>4!c=;3q3868~P(ROGoa$`J^a^GJhK?C0y~m-LU~3kSdLiM9SMEQ%2* z!=^~CQX^mNrpe^cZvjPOP;w44z(CINQMr0aP3jc3l~i&c6w zVlMj1`e>#|CuOZA{oW(lOrK4nND%jYVb9IZ{Qk;a{4LM;+y0&3!s5Oa-}vT!_S@09 zZ^9qGl`sBoB!&L9-fJR%H9#$x;Q#yb67X5g=TIRB5OZ_K)3j0)GX$oxD1M@z}3^bY* z_@1K|<$kCYqN!36|z#mko|AWMJ{0ulmIBB&rBhd_58 z=mDT@fDi&7dyqiF_7%c78+6)h*P21qfZ;pLsi6!GR1k=zg7~riNC~JK%Xg-MGy=*8 z2q7@~hfRJERE1T463^i89hkz;od;T)Bd`gdnKp7lJBZGsFVb=@9ThE_gw|jRs z1YtoDfmu1I6fmg=ITu6`&}l#y`S>v%G!oDrV95SQ-Uy)GzI_wqhoI$4K^FnFWBGDx zC>DgoDrg=)YrH@X0X-S~S`apcx=~OmK-+L|w*e&s6b_IyK;8hs1I%L}3xgn$mgWV! zTR^=iD4@69+yL@2jOjt?-MZBs{QHn?1t|i2SBouNe>7ZAjX2y0F8C)BN=sd zYe7o@`TE6+KS=@*oWaEpiUI^9s5E=n#qu8~_|`PYq5fB^X5)$fX~Xw_`K{nP;938j}3x^~Ukg)VrB0my@nWAt46B zzt+#ZkG`>e?ww!JPhUx-A7i=e+|ZY=g2|J5{clDNI?cwvc(8WC&K;$9kq#m6I|#BQ zjjTO>kSTn!Dvv7h+k%lPGt=2+fi+DivawD&hboG&Gx&0vQm*PLTH=Z7i3TS_icG{) zqWQU4S+nrGc3sVvG-L6=E;a3w(d%dyr}{N$CRUmnh0YTk|3dc}a>RbQ_crVH(*35z zT*AqH+0Fx$O7AQ}K@7cE#J2^tYUX%pBhd@?FWr^s^jgH_gil`{wOVHSZmITT8J}&- z0`RKp13?zi9xmDuq3)ao)#E3!vt4}_Xs9X$95Je}E6K3GxfWDa!w>J_l4dwM;ogizHo7%^iavc-I!u@qhn3CiJ$pS}CdUP{py}>;tk^m_ z>w=-hd+K9t{3+)itiap(tVN$h?YQ{CH&mr#Sz+{8gz?UM3%75h^H!!S8QEtjBZ{OY zV+F1oM*I2Ke}(V==uW=TR8O6<`m%&pqL8(hMmqjV3+dBNjHf9oPrrAoJGt>(nAWnu z+dfd<+pH^eBC9hT|Ne}JO7q`f}w_e`jqu06b?dPdqu&f!Eg31CePy7O$DAJ=j zBmRJE>S*(T=-X?O!}5y1C2eF@T%)svy?W8nWf~D@GzbTtbG27)6A!sUs<7i*Dq_4Z zdli3L(|avYFWr9tZTv0yE_a*jm3L~j_a}XxhT?bU@qBzxE3sdp{4SY=?L%(YwtsL~ zbIsvIH?<~1tY;cu@|*ibeEnB`o8m~Q%!2}=H##eH#u0rlp1ZX0J9BB^^+9aKUi2q2 z@ImqiVQO>X4@$h!XJnY{r66Dx@l|NpK*|?U%~b@~a*V7EIx1Ni?u+AnI(CcJ!6YNc zrMnz-)%Dq<&T0{>a!+Thm%Z_Aug8{t7w6?R7Dp-@)K_svL@~U!T?2Hj!nRfPx%*?( z92-B%DAdp zz00Q1Lh6HB)HFwVS*LrXtt*Ex#qUPLJva^V8pl!}`qyNlT7Fa9!1m*`nf9t&hgX!# zoCwXOUkjJwtLRtS*3xAB(I2K+w4F_(!PFGg|6JBS9ol-I{+sPt=w{bU1bIbn6MJhD zA<}qsjJhEO{o-1nw*UNdNfGso+!W!$F3oPk4>ICz8}N1p%et;?{d8-l$2D6YljYlV z2}Lrpj_9PQEet*+^(yQ>B}>MWWi`u9#4<`nN{Tg9)U1%o6O=N9-? zo-lXzbTbO@&8XY2CS~cRo^^;zwaJnbZhY%f-1;CxR9fvrqN|WluLDa-*7ON=z(e%4 zr1BqDqPr56tViZp{IdtMsAZ|qRug%=#)~)xvcUgH%P z{K@5xlzUmD*jZ-Il7W{>;Ir~Qn{cRm;I-Y?OVIG0SpA~}3Hf@t|JqsPV)x*OghQ8y z#p;tc77cz{`Q*y@;D_WV-9s}6+pmuKE=nDQhVN(1>VkV`)2?lQ@%#JN8@StxwtjuS z22q~nJ&yNqyGoPBY&^u9aBIlY5k2z3HIou<;^D$o<9bH4FSy0yWIhlH!_a5jb=~g` z)Uc&itd3~M=r-mq^LeGT{bWR6KSHx`DB2Q%?=-vE$jymWY|kxdwGm>8iStIa%}WTH z*$uQkC{|NbQ%FsKEo{EK{;KG~o2nxO+V82Ck}|`0qn)j}kMX@LW6xJTXCmeQ~K?y@Lh;?Zb z;mXPe-UqV1XD~L)ucRWDx;&hw$)v)ekX{E0hd>_2utyoagiBaV8uMMk5oLY$2UEAB zgA+nF41#F1<(Y>DG2tQ+IDCsGqDzG&NY)FAO*4;_F4L};ta-2nKO%EIe}lraM`9G{ zJsO@!c_5E$HujVv598S~Y{XrcgOcf(j3Ylso#wp0y6i!nU|gdOuWzpJ^kqSHLlEO~i=F5`DQN>6m=~8-E3kzToOcWcvFPtZ8OLiPP-;?dj#DMv|}d>MgP|<#@8^ zwTYyO|vMZ=Sy#Vf6-E~>D>wSN6|NY zu5SLiyMFHX?3;9tzA35i)-Qg4lV@T3cW4|;LTp&%VwUsB&O#!xkcSsmU`usLi-v5J zPG&1aOUrt0R_tdl=$BGXj$de#v085a+3~OXn+5RfSo&}Aj`_qd#B|}Q0W1%(UK0~t zct${@4Ll>v%=KZFHpDD|%oTP5fKJK zU!Z$Hd+;v-+QT~l=pML!9`M18I8XOr7J_hw)3T-iFutjcF<6@b@PY0D?E&z?ssvnL zHDUx%4`>fWZ$Wbax)0is3S1AHyTR`S9w%c9BcOZmIKs;SygF7kx{$g3hx7sJA+d4s zVnomi%dFE`fcXIU!1Vy;fccORhUW-8Bjy<&oKc2m24Gc!oCm}#z~%%{zmgfUE!hJS z8_x%l;3ct&^Cz-9?|OpOjisd_;AjGG61$oWYn*`SVZ9KbJurUS4zHS;HNgH5>;S-r zhHU_OFfaA>B>>}h-r5Ms4|o=U>j_>Vkfa61hjb2jpDtgC1lJS5zV8w$q<}pf9X$1n`GP z04#Zg=Pa~XgO3Pa61J}Dw%%?~nhhBaFa^Q7AP8{4n`2#s6I5G676(=bflX*{s{we2 z;N5WYU~K39@9Ve)hCR{ z=s#I`jQvIVRI%QRO>=vGl**JZt7wAt-wtOI`qIqx#t&wym_`?6*(Xr~bt@t=hO<@F zEz6k;i)4d*z&OlX!yWEQ}{O`(qh*M6#Ii=w7GnE`rQ5yw~V{LXaM}gkbrUzi<7XTJ(@y zg%GO{ziUNAk#y_R*EtDJu3`u`dNkKOL+TViU*xvBugi;MsaGdbBrAky2WI=aa<&Gv zANN0Em8j=pNog9TMrildQcq-@ig7D5mYHy_j+~1SmeT0B({tQtg^lEK-3!>a^-;dU zeH^5}hc8PSWbEG~LZFSgI{9SP(e7APRyp@<7_HmO7q{3%d*tM5fV>sj|Mr6FjwSRK z$}a(`gv_qwUJ<Y;7}JvZfJRHVhT9LC5VAEXlN-G0g8Z@EzM?-Bxx3?g!==9{x_EeR?=&_L@v9&wr) z>&JQc;J`0E`W;m540?5u^4grl}Ek&uxwM{tWR)X&6~uar9Pa!sj{HXe}GLA|*A z9okP$iRC{vSZ)#iRJv6R>4|k|k1x?4n^Wz}6)xyOhlzS;Haq()(-cMa+q}1-oA1$l zM_Ul+diuGhW$b|$`Z3}?;yUry3*V@Pot1p+V7Uji!Ci1Lqn#72{7$Qrk7#jL3bpw0 z>S|fwdFlbz-a>(duQ;_;q2kCX=i~NS-vg?o5;uGnStMh2QI73I|03_U*UGuid^*i* zDZ}Eohr34859%Qmi_RYckv-@Lu|r~x*1T{!>ch3KO9KlOrfyPGA9GJBY9?snU#?Gw(!o=&^S0h;%j|DmUe;wQT-iv+b4 zh1WE>117^Helg^HO)okxU!$icbcU=d zagMGXsd@Y~JTMlu-QN@2r1jjh(%G(2vM6p;SuA&irqbh-ak)?9fG0L^Yp49-a~&rw z-quhLllCVyxm7I^+pzNWiDh$lYmHp1gv2AL=rQ3hwe*4sFQqAZ?aB+*#Cv{=mYoaQ zpJ=&eKt)WX-uv-6*qIpZdwS&)*qM0w%Nb??>`e52l7%0Jorwma1m2VD-!IfBiPbUc zPdsTG`clssn`Fp$hrCg^*pTZMyH01x)0Ym*>kEHvTyNdIVraEheaV-NQ65X4omO~7 zxtQE(E|svmB5iAZMNn)^)RI+|bIEFI%5+!S{&@6mgr>^VmiL~a+xz>4%P)5M8q>3$ zud0QKey8JEhrju5Bvi zi*{fD{xy?3J!cyBiiC^o*Ttc&Xl|APWfUry5jmTLqUO89TFRqM>LZPZOw~tlBHyrh z0qfwUyOC3SN z2U~AfB;G!1uO22HSkgsdG@Y=%w_>6EVa>9woGdlgON?hZ4qwhXX?t&?^Sh0T87A>4 ztQowHZNZ@-G*Oefu(x&$%A&Xn4f2!gwrb+#uEd zWMMrUSd!##U2m!`wv6eoUg>jL{k6F8McnX^{*!G3g0quJIU_Gticp?^NZ)q#>%Glp z&y`<%3r)H~@)NM@o)DGj)a%x(q5kG5WwPM?O`RbDC+FZxg^$f0=0~RXTrs5l9l!sJ zgDruBZT^je=g05BrY5F;N*@6=0CoXzSA)N{hI#4kORVFm+{A2E?`#A$H19brq12jV@ z_#a$`(Kiq?bin)r&A`F`;4(Dy%(F6ZGmOL+FL3}|HZn7WDxG;~24aS}G(a;DGx){l zhvD;M@PD8gh#6QJKpAZPFg6EV{`aXkfHDv^urgrrJR$=e10_Q?0H7JxoI?`eA65?D z6qHe$0o&7qLu`PX0h)n{ft!Jq0h$4w%`CLRSP#$)#0-&V2nN8U8bF!mVhGR-lngWQ zKa_m44Ri`%XkcX!8s=Gfk>w(YLc?I38WISU4CoBQ=YO~vh#6RU9+Ux{ft6uM4txyr zcF0`;A_Eo!4S$|y0}#i=tb=&KJP-p4gH0c37|0k<7&6WP*+9c!h=(LK(6Flqto@?F z@*86l?SluoK*JEX0#iQFFfcJV*c$xt5dQ+BJdiOUGN?a5$^Q#D z{tq0y%O%^S>2rg6s~b+ws*cfk;wEPS)Ii!wX?kU-ER74i9iVmk;C~l${uc*htF)SG zypOx@Ti|-Csdm|sx=^Q5?|)ygSr0XkkL;rV8wUsH#=W{T_-y^grc=RKzH>x`537ek{RbmCvrPLo04*Vt5iPR#7^-vyh) z9a3}OQj;sBt6y2aaVRtYx8&C?HWOEBizCiQKlhW;Apeb{;tcfHa= zdV(YoUXHT6S|bKg5s_@p@t84+P|G&*AMeSbt5q`G#u3VHuse1aFY>P_l^jgtsjTn8Y8oRJNk9P}cO>pzbwG;gEg3dYp$-0DH zy<8Kqr%F-_jf|q!C1`kgqP5udw0+e$A$zn@6k||y4r@BOPd=vNGGDnr@<)`%v&ije zT~oHfhZYNc6S@Y@E%jmYyRr3eTzbXZKLmB%m#L?IR&q0PiTxCm>(Zk;{n2+<(MCZl z`Ie@qTe3~l@Ct!{@@SB1Dqeo&mvf2n%VZbzZKg>p_ci(_jrHZQgsSU4-B}&R?>&In zBy;Zy?+QPEZz6R4JF4PonboQM1x+7m_6AK;o}s4#Ef7bIzQkTlRU@fBA)~=Wn#+s* z7ii0$%QS2ywr&mDZPIw>)6?jswr_n`oLnO#@3vla+p;Zh531GMs+WBss}cO- zY>@~m%kEhrV&(d`26ABa2|U3c)T45#LBd#piwr_WxGei;rh9k%se#m!k2HCuXsJe9 zhAJY;#^(z6w4Xq9z5did8c0&eggA9^B#WwhbXrrxMeokCXP*wXq}{Ph{KRr0A~+)X zq)BE;*HS4KQM86eoFLy`ZTGo^-HFbuo4E1c7F@deo`_FtZaFW4vELI zpI{(Xf@sfecOD+oj!;6135LqTEM_Pbi+Wc1T&ZQ-UuGbO`L#={y@N70WK#TF^bv>Q zeFx;eV6^+GBqF^pFXP-EG0N${)4;*MxwyrR9ZRpC!ivL>al~-a=Ycn?3ClPW2OR7l zjj&BJb=1)=QN#qBE!>VHl=ED^JoCN&UA7_fUR~t378bkTnQOm7Pb5_7;Z@_HvV&E6 zk=EVM9y^;<*|Sem8TtDZPNXBXlF7O&mUj2ppFDs$opgqovx@4e@U?|1$|4JMv3Q%W zmvl@{Zw|8ee!24NWlvX9^c5u*8ex9q`Oz4f5`qjbm%lRZyU5~NYKQ3r{hFZQV{5Eh z@ZR>!>oH-Qr3W{ACrd#n@rg+2Cle;A+6{hfyBBPhR~|nwnddD zJ57OukI-*^_|m}f7@(nh3)^-58Uy~dj8hW6Vi28P3f#8fKXDu2+B~R%d%(z88@|T? zWPiEJ46y8Ebp-&NKrjKhWB9bg>KlgOTrWB-%FE-Nd!dGq@J5W$`Y)5N4W@P$C; z8h8})b^xRQF?RhQGuJ@0fU|(G0Ix75osXge=>pFFFKFZc|D*p~KY{^*xH6DMEtCSf!>eW>9KQl8eA?R`uWS zo|62pdYb05gIAJQojTKHwQlI|E>fQsSd5-+V1gUOug+$#TIX>214D-v~DeA0i zSQ*3wRs0lj|DXA#mSd(IOf(}f4O{*-zg)New3y?wnN7ogf{!r2+=A%H5EV=iYKC&a zVOLM;8uj?zh2oq!hG2I3^XK`-!Vl9JBVC!|wG7&R%#ho{sszx_^U@6rXkE z{T)#_A9@DfrG@8AppLWFBJG7H86-s$43&f|(0$3#gy3V!BP~ryVS-A0Sdz(V&(*k5 zNdXHABeuQV<1jP+YVWS95IPp?rRj>XpjT@mW_eqw5o$;|dk=L!_^5b*i!GsYUF~J4 zY-t0-r<#a_>uUs&r`L`hVRk}ep;lE(Ii8ueqEvFagykyg^Ey}sRy;FVM-sJ90k>@^ zQCCA6{Q29F8ahqF?XJ$vk_(Q@$17Sa^(X$+(=d{P!K;i!A-jNb8+k2g%7 zX}PGaS-3CYR%MZpCmj*b*y_!zt9X6t9Yn`ZKTVYO=@~>M`{WHOvU?}~E=J$9;-OX} zg14kj;UoyN%rn(bwST<7BIq>OyzHT57-k2d5_K(C=+)kMl~tea7&iZWeOvGJyH9s5 zo;axA)q7s|`MyJa&X!I`lF>B(>Ms?u9#5UYce=uc9bI)uvCo%|!9@*M zD=aXE`wA{SxY*|(-f*3EbliZ;6JFYIbMpCj;Le0v3Fy0UT5Jo#1(ahfrrN@eVNhe{ z>&f7`1&=YfKbHmi!b=RERq#ca_dmg93wJwwFW~Dif0x2N51$G6M!;W&?qpxRpp9vuJ*I6mQPrWhRknCf8 zbx<7X9tDcixUg|jv_5qIYrFvzX*AN?aH1c-jJ5o^4kerq?(PqL4Xc^+J1^RPj4(d& zN6vW`^!BFxsy}j$)rlw7i=O?Jb1bf$t^DcxN6yL2+@{U>Q{Z~;z@i-CKXT5Vs#~3Z zp0Ul(a(4bva~=qC@BLA8)KVY3f7M+!_rYV-tzW+u zWKTenF_nd;lx6J4QwDc zG}eKu1P&+M3+5I^0n2>h=)&=aW*OMT4*10=+^egv0XGgDPMGb15)Et8t!+)&_wG8c zTn;UO?jGRlYy-rEg9>LJt_-L+h^spV2nZ%exJrUU{J};F#z_D~DDi=-%ErztIM@b8 zbg=RrYA76>3|_rTfi39JKA3*%7IZkk8u?SFs{EFk!w_!WdIylI0kyzJx~cjkG*o~v zYG-c&!#^uGDvafzKm(-e4LQ+p2SM31v;x804%+*Q_7!Zsd0K!VR8m*>Qh^JFtLMC98A$b+BUV)hx!O8<+%S~^VZ@dsGtV*`A7BaX7BFLj zK^=_QjIGU}^#TTLFo&~nb`09E%+kpWjHsLPH$o>OG!gFWGytD0jL;4r4hApVV(qeF~x+;yNQ!e5G9hi+9NqcQS%K0U5)Enb1ArF!{pbQ zk_BoWr(6{SM(^yV*mtIREer2HyeR7B!2eYLRX0*YoVgS`vUV}gg%ym^G?Y9VJ#vbO z(Ps{M_wK?yJZK!e0OhjA+MBJnPYkrkZ}zU*Q3cIAfB1I5y^|7!}0Bf87}E<|?J zS{6mNOT^YElc!fipQy52K(lZqDH&jY@?R{`idGxRk}}I03SpMKd4{ke1RWlxYia_r zUwZ|s`(CM%Ddy;4`NuihC!3Ei8NQVBqF}z>Z)RL$EoPjgl=4efkB!KYZB*IOYdnur zMT+@r7ht>mN4>vrE5;74%nN^*ui0sNh~%Gkfq-g9a>9$(76mVhi#?eey4LTM(D5S* zueEe`d%yhls*FX1x`-^fygpZFaptPR@?VUn8*$64+d|`itFy2wKUp~35^-jSkp9@R z`!y#by|UFdtyIuKwh$U|1P|^U1tD*runj0q{&XoIw&iiEa_Q?cN+(Wjov~GJ%+@~r zho2_j?cfNP({^4k6@Dg$Jt}!Pe~GtJY&~K~KY+-Onjp%JkEeKkzqtMqjp-T6ywz&O zYJ4FnDx%k-A-vIW>D38~H_a9S-ppg$+T@<_F1+3F>OA_FpMsA{Be%ug!g#9%!3c}T z+7Bay%eR@UZRwPD;l!(aw(8aW4ZYk*JY8IIwzy)vH2w9r$<>OnB2-~drB%%Q=1;X7 zd#9w*65Do&D_gb&x)@z(bzB@f^?3ER_g|jax!a%V#I6y#MUbj#c+o{TxnY`W(15t8 zrcO7Od1y#*B@{oK%$aLGpx(EABILH`amVw4gCT|w80z;d&IP`@EU5Qebj)Tnc;Rl_ z{`q>p&%}V^k7nK=I4ng#Y5sLVEcq~^OKa~oHNa$uDj-FPJG0-N->cDgJq}e#l3DxH z8NaE2Edg71WOg)fVRuWLIMJ2Z zRb(dqR;;z&&(AJ<6GWodP$@1N+I-fBSZO8kyP2ZjhKnDVeZnc&@Y!{`oKMu74sS|# z#}{lF=oLJ+c{eqgFt|P7k$cNE@MC4YUGit{<@}()ZzV!mB}!ss8Il=f^VO@Wz2%(P z71fJZa9DTet}?I|S1Z?i6kh#!)}j>?C|FCc3p#Qt=SC_1-S(yX3Oz61qJ3N;wo!Ov zg~Bb*PBY`lUHb}0kR}w1F;vg7s}z@zSLjfWVaVWO@IuQI%+va{GaaRuK0OxF;cT`k zEjw`S*`wfpN|@Sv#6V3!Bc}83`V$9nrRO?asokBzkEK>LCzBl|%{GXrA-+NpXa;@i zp6t%mqo=GaT%1E2*8cXc{64VUO)hN8_4?IgCL-VDt744yb@`k$J9KG5W4sjNCCC#! z>wJ&G*_GsTc)vt`hprl#CobHD#fw`@?Hu+|9rw{O{20}=&a&s=^U9YpRq`F5k$|NO z(~f;Lte#sc@LF`JAmSvIOdN2Pa@lDL>)aybqZFj0}x^ie`yBaD3%xiq2ydNIEtZTbwdf#MCutMrfsX`X} zt?@{eYl>ZO4aqwskG0|9NxLt#29RAN}RNRjf*QI6}IKJ-`-=FGN zeS4viTTmAP`tO~UGv|t7?q%Km^nU8h`Es!{(V+kK9-e8c@jbI480KD=XD&1pK)v6R z=g;Pz&0K7`cP4II_wymB_v3->^iUN++(h5m?8GYvRb|9H1fN3umZ7tsDV51&Ig3_s zw`z^bA*;7tS;^oe)*cxY$W^xBYdxJ!dXKz`)O3DrN#1H}w#(7ykno%LAE;ad^n)D! zI{w>-t@}h+!eh-hhD*8WkMhwO@vp5Cactx`uSS8)BELV{_{IukwFxToq-9PL`?e8D zci>W*KXq9C&f8507}ao@eb7euJkfbHY)UQZl4`b^%YJ61qDmM>6=jL}8L}up)$lYM zF?FnFmTGb;N!Pu-dK(pbTX+vEekUfadou3fk=lzZ{Jdb&Fe3Ziw5iQK4ylu{OLyO- z#7@uF6%^PE-N#*>&%kKB+~#YN|E&#~eGp@(!FAf5e-BG*6m@?eLuh|$a9)m6is8Rq zTK)ZDm2uY@%)Pil;nc-hRuvVpG5ysXBMlmgND;$@Fp1^1o8+hp!~_u)GDU<~!K0`k584>NBOBF-fDJ-Ma85BCD z`n-_y_*^-a=q|$%(`2~B;*bv91JAunGvf=ST}QN@kZ(P|m-y`Z_El30IEsSd43n;k zRe0N0S;NMhAms=#{c>FTEp-cH28}>J+03zFWL>;+?R|=D08L4to8d}DeC}W535AQ) zvnIyXA9&te==Aln#OQ~VkEUdb32vptiow+#7mk}tkuV6BpenFKJpE7&*ULg!Ok2#) z^1>2{%GX#bP1Me0hSDEq;Y7OZF7qJymX3o!aYgFGZFA46MKmWA%esTX6E!-co+)^Tun6Ejt0m>rGO2ovLC(WOm1lAvg4PUVwIVR~U4#m**~#-*^1PCAZb zM_9o{_}NPH2m#S+ahp(E`q!_;#DxfEXH+7-Vtd|5JVBC-GO!3MA;l!2g@jmiMg+)V zl*3YQkTzM7$XEd$K}c8%zCoTTh(hP&S-6mm1a_iI80+fSjM}m72%2PzU{qQ7IsrZv z!O2i8%y~F#I$#K)jq9IiEesV*9c;1E8x zPZBvXg^xS8YfZakG&47zj1KkB;$^p%1?)L@4rD zK2YP}*>>+b$cI{p2K>XZ!@8o3rLSI@YV(L2rS@M4JK&zXA9IV2HXx$$d%hmpL#Q|s za{EXHCl6r?NeM`b)y0gr#j4gRgr3duCa6pKX1v;Z(F52;@=Si!;n2C(-6@KZ+i&OY z5JE~ixu_y@H&0lgSSHRay!-a(TD_wewM)5|%8qK4;94;hfvmOw8%#%y1^K^EVw9Mg zd^bFnP9TK2yjxF5dAvu*(rGb^tjZ;>nRRS=D>VtNBro@*<`6wuc<=sj|J%&=lD$}d zf%=9Dc_{3lAWXr5qF&{7LP-BhJgx$dr5?kot&iv8Y`LUO?RmsQ+Z0)NU5{g=+|;*1 z30XSD@m*-P*9oiCvfV58e!pGDNL{hXGfbe3ET^O1p2wS0GKar)x!dBYlVuvvsN)ojgE;1(QK^qcbia8}u$C7m`G#x`(p{+dE8qaIpG>$8OzrDIs+0KP}| zT}OJu3}xrK>`#?N#nDUig^};g=~xzKWcIY8X{|>{Ew=IO&nIV(=(9O|&SJ&V>~V#4 zCAi4tzBEC;_QjNzD9mWv4oWkw(e5J7f<-8x(c3&w(n zvrpelfFKRRAQomvBE0luJC|iFa*`c-@Z3J^oEj;#HS}0{#yu0DE`pDw5 ziPm{rb&y3H^HkO9akK-t_$GZ4vaPvk1yniX_G_WqlxJ89n zH5YC+5k`2!o6mGNsnA+-ypjoOS8)DURGC+TCkg9?N^K8I_SHziRKXDmiFyRzfN7bmEZE|NXY$X zm~~8i=Wy0ud1N6AYt6^jl_P%R_~%$+6dOZE2w4=&w&2)fOeG2xN28N0UNhv%*Hh?t z=V81Wg0X@Pz@7oy$&B|vI9+YH5o~51rdgrZ z_j#ek@^u3`=<&LBRd+kzy0w3cX~D5?Ul_Q0SGmoGy;r#UBB8K!W7;)~=X=&g;VsJ7 zZ@Y>tTXk#I!CTm{&H}|k%ZmhaeKdyBofJ~H!1mUFN=S?VS#wBoHI-yMOd8WoN*~6q zEjL%LAQ(AOhU(*R$Hx(C9!KtY99{Z&!?nk;gOB5WJ!Yyt zNpO6UxaP^$9Zw?gO3%N9?0OmGW=2}bJKZC!q$9v=S{>cd9&l%unpI&9*I&w=r|aCk zL|05bc)ewbk8Qzwb*`#+Rr`}H|Nb0b>Epj-SVsL8twcW-6sT`ug+p1@bDQ#eUHIqc ze4nGAu?v}eMgM0x70>E^Vb1z4{1vYxl0?Wr^ zmin*8fqQ34e$53c43tXxYFemX7`*#_kfTbc1nT^@P=0sMh(y_a?3&Jv#*J3_(lciy zM~q~8)<|z`2tt_{dHyAvb1w)Lp*s<|LlMJoccDTH;$+Qp4_8ZmE0q-8BQv)~7V9_s zrDvg@AjTtOU~dnH_jbTj+WVJdKaNMRN4zD}ZN<*(xAiX647J*p=}h;3C0gO&wjQ-G zMnuY~{bz>M63og<t?=a{Oo9UM`7CWrbOaHO^I9E; zhKi5KXpCs6jVVgL_F#{#bXqucElB-?!Ukj6OBE$J#+Ys8%h5AK#ih3SSS7nXLutoe zQH_TZ<6kYCi$E7I7!?lGaZQ(>Z8teE=qcU4?~d6U2lg9%c7nn^jbdYTUAkA9I8t%l zGV-_d31gX~XEin(Bk_Ky^B&W>%u9@f?=!#!`gWrvBT+I zIP?8>apdP!(w(!D6>r|J3w|f+kG*wYa?Z$J+EUp9o=}rlQ{6i$VjVl0@U* z848hrd5VNZ+bCeE&e7vVZ2*9;8;KA|KaFd z{F(m$H~il0=(IVXdC&QLCTH6a<$MSsmI|qy&q=c_=1>m#pr{sds*rO?Bd4OAIw<52 zB{`o`s{MR_|HEF7ZP)X@uiNP^{9>O7?EX1HY>{s=!VUjfwFxD#d@fo(F(9UXichG& z#c5Dz`w2v}bR$uW47^pJ{&FB77`N&B25@8K`aXfUUb-?-aphr$tUajW#{-K)1EFqb z0Py#`d?HW>DaR~dczWPBcK|SQ<&R;#StmG@A;06l{yF0!?;9=;3s3wQ+dpKD9mJe@ zZN9`dS2J0gIqmqTOylo3PQKd)yOB3>-BBKZ;K^h)JRlAmp>*LPfYFdr@?pIUk}nJO zlp#l%^G;-IVRj!bdS6*Sb3{j2~ZmEc7yo3}enjE|M68p8+O8rVr>k?1dKt`!7 z=M;JN47E_}{BQAz`4Tn=XC;Z$3bF0aVzaoBx4!@#yBY{?5N&jld)T3puvO*RhnBY` zOEgvKbqa5j@p3M5JbWtrxiYY~!Cnyo?}cTnyn554F8KGKs13NoiLdl15h}_K6M<#* zypAxg5FiQFc2O_?`fY`3U0}_2rz*|3|8Zlc^tq~8f4(EqLM*_@%pWy~8SYM&dOsia z)V1V7WnGTO(N9I{eh`qL5FsP3iNv%`HmIaRDWt{X8T zic2HpBEpDdj$-UQ9OVR%m1yL+?34l^DAW>=v?yic-0?iL&jAAjHi&QK{cG*>_%J|X zp}sp+Gzedof{-ePkkLww8z86N!idF;u;SrC7X5jugS^t{|&hN#I9^w=SGkjY_gv5M2xUvHr*PYn73wY zA~x+Red>Om3!u!C9^NM!%8$2RP>gdzK;AGmGV~@bU0za~7vFiOnY_$SQ5H>RYBqAa zsJQKajn19)bw1D;Av`|k=4gh=eJpGAEpNNsZk&Ji#q(;)&(|AtUG2|u-&gm%X*D!( zP_2EaX*R(gvF~>6glW*I$;%xz&0P8NM*mIT_SP4fGh83PtaDz{bKdBymdOzOhbEF0 zS?am@Ubz?h_U0xj?yk~N0!{_f$mzdNFE$K@44XhkT-TpcKO5VaIRTXfGIk&XO3}8? zoHbCk1MqMdUmj|VdiK;TK38yS3&hKkNo(bt!*i`vUOa)!hnFob(=#H2T(ra?=aM~> zeXW6sHDiFAcAWIOQ*ca>Kvt0a3)#}dih@}4I0eim+qfA$97M*MY+W}FlE6)52;sTY z=vZdzJ)YQCAv)Y9kcbu)jZkuvE;0#NnRK1n5EROl#Cbh-%--C~MfQ&Gj--kKh@a~n z!`Nmi{7-P>*_Ui&&MB;XW>6(C|Ds3%?cfA17pAmCNxM;wr_ zWKKiX(E-iVcGB*=d-k;nvs!n*fC`56Cu=Fdz+7zbgo$`xjWKVd1Tg}cJdNv#MID>x zy%mR5@Rd!MyESiBz0|34_j)=sNE}#dG0~>v=nYgATXMHPUC)$5i5t*)1h+DHBAldS zIUNPzPkVC*MzZd~ z;$^1Y#&_qFM24cc8wwxVo;l`EgV7Yj*xXtrH5v+%Ba(Wci>^~Z?n$$g4|IyMr3JFT zo*d?$a=rSa!|n3a`Qv{efY~2gOj%I(@Ya5V?5c<&u`ZW3fuD8NlbIv5{d&Eg*;u9^ z_Yz?nfqvB(*pZsP)2}qEyyT5Pw#^~Cyp$pPY7v0hVT?&@%X|%{Nec>{h) z(Hc#5X?|Q>xdO!RjbOJj2>_Y=0Ps!2cG(}dL|=dBp)m%9kY=Sl5(svJmbpp`IE1bz z6Z%$fuv?;m3XE_o*?O2^01#R#k?WJ0ZBNrA0(_n?*n0+3q}&#rr9}LV(60vP{=3=I zX|E7=1ObuhS%6_H*@%f@59`l0J1Qs!t_B3XnU_5BbWlza;Pr6u$*+!t^wcJWMl*np z4-DpmpvzmS&VP5a0Z?7Cw=~} z#;N=S0Ez9E3wiZr3eha9!OdEa8yqB4<22jK)P$Vjnk19pp93@Y^_c~USnn<&T)pQ!tiXvs9B7hVRMOg ztQ1$!tl~|HV)bbx`Kk|0eq44KA=1&tmU#fWho#|#DRk>wc;LCpOoEV|$vGY4JN99F zeI&2kPxocHp%WHYSan0l46R%Pi+z7~5Md72qeZ2up{JoP``v+9J`s;=o8sH|Aaq@9p0{)b7 zUT*QPQ@0Fv+thMUe~e6O_Fi|&Q9{b3WRLC%Rsr26Uz45hXy_=+_vdiExA7~R2U-o{ zbk%uo{5ZJjmSaTh;1;NB7yB%CtKE?)xmPVYHA>;S;QHon%t(y{?vg@_6rWl4wR_@k zt!RfP*0RVUQHdid=BRn^=>X5ze}VPBMODG8cfF-TKj62TZa}dY)3B3WEz#Sha+G*L z7B}6Gi|=Qw>&1!M>?cnfMRGBT>W5`e~Nzg^ObeBQAr;|lQ?W(-ESYuyIc3n|1P3| z>$YMW+pV4Lm2c37USfv(Urc98pQp5=w6NrWeT+W6NPo=N{_TgF;3G52LDzGc z_MRp4oo#%RcXI~t{QA?b78hM{PNIY*YQ?onxd$&?rc4zRmZ3G4+jO&Ys(rdl+%zuQ z-!^5@P@NBWbkgW1lA28=XP&QXzL=csIJ(_o+HrkUl!F7y`@)mDa6t7Q)B_BjL2RB) z+*UimdvnexGuHRs#$+t_INGyWCW!JrssH7t3W(^9gVC3n|_Rsnbnq_ zk#Sf2j>ZW)&NEoDf=;H0C3hvYyKtnxd_UFOgpM6CqG2u5X8WQq_Lnbp|2!bF6ze;v z0F`OWd49(Vdt7h(K#i7|*-}JIQyeG{>n%4pmX>J2X4h3dFi>C0;kz>6(Qwp`LtR(5 zC_IlI0n>B7fEF*b$la)&Y<+pc!iI*mF*|!aR}q5Hp(HP{;hcq>Z(8g#o7g@!`5rXA z%TN)9kj2P7<#o@rW@~zWKgnRG)5Qm)Xp@R%VfLHCrE)PO*w>#>)h8)|UUQaVA`Q|p9OB(Kp8-95)UCIe6 zS110<&Nj_+Fj=?gllYU?70Xw`8384#;iAVC#GN(@9Z`>mO)kFTy`IMIM2V;t19@^$ zk9CrnuPmmHTdf>tEfrBWD5L~%bfqq1Ursp4iROtas)i5zN`Css64=l>Zi13}`MMbf zXl!H^bEsC>Dtt@i{HBt8Z38ktM-g|D8TeTJR zz~6+||9&0)$Z72ld-)}Nj6(tn$!7Am($)03sQWIP!tY${GoRVX(z4lJ{unXQdkgmB z)SuB$Tp!~Kx=-~4ek8VuKFahNdglfQe6Q7;;OSJKfqqeEI|*U8Cdo7>cVO4pvg2Kk zQ-Rj?w4(xmu|SrdDgD@gBL}L-zKx!^03WA%%7pgP3rgRgy5!+y;b?j(J>(L5n81g^ zY&?YSsG9yZLT@bc?=89i=uXiutdBFUImy4uKqpFkU?szW$X!)`z0u77vQ$Yl8DVN^ z7<6qO4#@^Y_fxe-fM0ayQwQobxJuIOuX% zMJO(ef+dsb;^Yu2a2VK-Dg^SYtR%MZ_uyXl<-AHSX&F4@f&eMTO?GK@n7i-1b6mw+ z(ZGY%$K_W(Rm#2HGMKvi_oJnrKJI)Lk$)_Yq)ydM=4(7HVG|frq%Ts?Yxj)VJ zZflxcxi-5xJ^g2O{IAv2J-Js000|_SX*ExCDo6=K9i5OIzXi}LsYv_-A2IUPc|Fl9 zC!hP*Co=)%*_t7_H1D`%BQlxQNiu#ha6^#i3)Kl4D@NxDgZSP2)NP7_FOjJufV(F< zjYLhE@)g^i6D=ssf=1jK9W&IAAgCS!_^kN8&yqel2l2Tx z*i*QmBM3~)x~9Lq2Z=kAl6}VL?i8EIVkaJdMn=KWVcZ&*WgC!bJ36IkMptSc53zLV zy);erUNpG-<)bORa;`U5^K605f)xT25WtqZe`XE4AVc~beP-|i_kx!C8JFf8;?6cH z^sgUX9Uv25%sL%1)n+o{0wUedrYTaQQUEyP?#^w%1@ZOb^>4`rftTO;rO_8%0^~&$ z37U%N-MZ^uid!3D(D67YpRSYhC z)vb_1v8m2d8qhzUn2DWJQ5k-?Ox3*5XeKtLEzy}2{2F_qUOkPE9&EGK!AzQOfUvdx zgFe-FR%fsYZLsz4b-cXsBX;>~z z7kclmPBdR+?L7R^u8y9*yJ{@|uxA!nv_v;NT{Y#r==7WNn0t+Cv-T~2E%RA$ckx>N zG3Jl8juk-+wK*Cl67D9t$RsbQ)=FuClCAO#opj>x@*D4G?vyM>MKz~@@E8p0)34?fUaD3ZX zj|=0f;PjK7;a1q>tq5Zk1_MVn1vEx^Np!X#OTkcfAt{t_!KPS$xLM-{x?)o*V^jRw zhGffT4+DB1u_a@@Rc=W^1E7P$mI5*ht%;BrIjR_1uT&eM@?lG@03{_%EiMgHs)$fm z2xDmtM`&Ab>w0YK1#audZXZeAHYnIOtk^bc**5OqHu7(+$qedA%r>R@uk#udz3TH+e3 zIv|E}WWQXqH{LE&cb|+=w7kWsmgab2D$GH)8G|x7pH``w0+5a3AYC`g&~&-J3$W+2 zkE@Oq3D-S>;nS5AEAsissc^s`h27J++0VoT*dG*5GlWc>mOU58d(Z1?)=q^~m}%ht z^N4fOGrv8!|Qk^Y&yAT#Sy zsv67^EolMp0B9J4KAOzl1;$vS!oo*rWX&!fWd_&jqm$D(GZzL|M5SAu-?#?%<-6g_ zl^ZIxu``m-e%CI~^v4c-zItVESHXq+dsKmxg!tSqmCUYBmm+iX4$PAO{%tArK=mDQ zyC$M9%$tf%nV7pKLY%;*D^hr_s* z;Uj{0PWorMn)YmIX7{uGGswt1rpI-p*0(g4MO@j23`{tVFi+=xw=Z)e^vboI92;ek z)3>Ug#LEIu*^i3_rs;-&^Y)=a6#@0sd;kPZoErhuOyZsXyK^Eyn9YskQ~`*QAV3yA z7+so8S59__bE^2w^wpRyPsoLc`Lm@5W2_y_8Kvy)c|lOj2G^eu0u%`j-4lEnd1O z+(GV15@zP-y?*(ls^PSCLz_)jy7YyC&0afqo2`C@hN*}&or*-AH@N$5)`Dt(_+UVk z=netG%mOag>3`4X7;u1QhU29Zn65{DN*n~!2@V1=(Yj=l8f@8LcvgXr$2vPDOK@nQph z5eyG!fM$}|LXO_!;}Bkg7~}815QHB&r~fIqVVWKY!KWWZ3NJk&qn&_}opEQ!$M|>l zN>u;TyKlP&)d9A~$s6r!05BJ|x!Bee zw|MbGOg0x3}@rK%e7d!iF9QM~NT}U!8sfgn<-_ z4G7t5bBN&|(1479Y*6~)FDXsQ)I4NlPW#9Zsa$(c*AB0oI5JR@T90W;y`Y$QI@m?g zB5Tg+nz$?Wm3aC6qFrn%L2I5T)>Efw(JAfJpa}ncdM?bj5tX^ zh`~=;O0|(mL^lMy)xHBErz4(7&wY-0K$QjHP=hXlJO~KN$^*$8oSd)`D9x##tVsNr z5uBZ;P6YTb@Xiq&vX6S44#EeRpd|l`%*Hn}RIYJ4abb8XQA0WG6V8OMM&tQLpEsS$ zSw?_(t_$S|k8I{uoM4Fw$s~J$bOUkvoIGp3!`pqx5_Jn`ncA{Wo!Bx-`3|U_J2psJ z+KT(HYd}P<>eylwJ^@L9X73b;Qt)aRpcMvlA|XB&Dk!nAWW;+?Hb~>pvo}Pw(Vx~J zOMt`Z09okl1_bcI`T?yFjzeje29)6!Kw?6SbToOZ-<;h#Cajoo>;>|CRH1~3>sjh+SNh2E_^PDf8}^Kp-*jZT-pFeFZ}!0OY3ptQUR zNMcpp4wNi`r8od|9X+oJ0M_^RC@|6eXtwBuco0+6@}i(I(TN?a$~a{rEPHP`g47Od zumMX?s^DBeObA@oR@f492uy(aehyDUZi#%OBApWCdM6_9IjHvC`sd|Qh*VP=zWBR6 zmn!bvmJsvbohoXM^68gV^e*@t5$DaxSuU~nOrEcGE*7jQT;33ebJTx?SU4H-mj1B1 z6#Yf`CLEB4-(&zw-JV^<`KM5z7j=s$>5r$vRRNzoJsTca7=ZKf_X9{U=!ZIrQo|f_ zw*6sBN`pUh=}>#tWy8$%_YkK}5J~b2*SVmJXq#KF+|dR-mNd%G{~KKHF0 zG;z|Ts&x}xOi0OL8%o+tfP|4@FGVwZ8mc{2i3po%Avx=#^ay7K)GYvC%A*w zFApmvn**d0loHN~ZsaB*Dg40j?`dl(wK*0Vlf(S@rjBCY_afv4_Ke2gFb4?dng#oQ z_exSpDwoQohXFUS)jXS_Fe*UaSaR(Ca&OLIzL<$jF5W^Mj)U9lztT zLKCBIq9bG&Y~<|&k^}HR4ho!s@BTyac*ZzA=O2ebI86Y{`r|JAZ#J|;E0s|>PYFl4 zWp{6P6h=6piK1cWT0i9^2o3M|8QRL)f8YiDWuw%&u4B_*RI*urFz|DFSZEyyz|4Qg z4XmC&-y$6FJ=uZ1BC;q)%N-Bs9I+7?`VT(Oy@Y^ap~b{LbPP-~9*&AS`T;z*t?q)URqOX!eu+#3$FN z*nP*J@=D7dx)v7;ZtY=eVj5qnxh342>Z%P?>eEM@9;=wF-1>T@^Cl}NRfe4#I!m|= zxsfdkkY+C>Yk53wwx`biIcLEMY;$RAEQu|^#10o=pyAnCq*JmmXNqJ=b~t1ouVm?@ z1>dT@%KoSHC-)L zW<|hSPQES{0GQ^5wy*`(FnKl$aR}2&Xh0k=(=-m`;RR8^XYrA-i9R6|^D_YwzH}4d z#4X6-g+@*;PIDxj%SPzA)kAw7J_ zX!Z3Z2io6Rz>f>!?=&X~WuLjKS0XJh{d)1PO#R)hb0rolg%v1(yG&TLPWT&1VDE2l zm)h*)v636{lElPU3etyPKC};)rhG?prr#yIkZ*FWxaA9^`$yf%cv=jVw8Wat_f3dv zX@kI0$t9~d)`yFZq^>&zQ6{8Mwao(%!58N~ zn?h!>a6hDvtqpW0oVs?C{vtbDO%XK^nGFVWYN(( zXC=qP<6I^j%f0REKgWes*alD9BBY!|W>#NHQo0lztG}g`m1?msIyvN6aUQCP2Lepf zyx&0^GCu?@2yhPZh}g?bD#;KPD*)#0*5sZKtvtY=Z)@U~x%VMN{^65*yu>9KyP_4k zgN`wP3E2&|C--FFlU=ZiFyYFgAe53lxi2WOL>am@zidc0DXAtS@PMfJn{Gx`X|@C8v*)#!g_jwrl0yu z-%NytOI_TvUe-;1S||gnlnUX!87@tUc;W{eaCHSM32}rFMS_bD^qgx)dyzTy2ZaiU0K0 zUS!_xeObZRZw^rZ1UqlX+sjqz!nMnREEXXz7p`2v~;n=#MgC#KNO^Y5Xi}&NdOcN!Pzi*#^#X>7L%(HP*DW_%}x_M z@eDGa2bIi617HS=SE{j^fI`DzxOAv1yX@-?qe{tt%Y)~BOwRpST)FU^2ryl8Ns@R$ zHv$hi1AXgZ`hy>B%_{mv0WO6E(EdV`7lVg0c~CS!qICs(kq02FwpFXN*MmXM7!(OW zRPt~?yU_9G!n5N6uUsBB<*PnuS{Y==54EYj7NucCXD8#KFku)Mj3B}AyqE%0L>(#w zeLO~7J-D-{Hp>Z4T|6aBY4I*`;qOy=y_PZKJi=`M{>Vih{R;5&10*CH>@5Bbv-DHS z^t%rY*UBtN)mO@W?M-?3K5|Mg-|yOAuGL<%J?!=W$4bLUNLL?ULsuzF%r7m>SNy~| zf9-VJi3?%21^PlC(vzi5f{4r^a)g8>UnV)L>{zBqk6H&_Vm}3V1T?#>TK`D~fY;ya z>3}D*8U?Hx(Rj-W+@6xB<)(SwCg+0`F03sZ>T{M2fZKn++&#Hka*Wf5)?IUc`NY86 z>Hy`K&?<86zW*Z&*ek{#6hiz}t0_OOP^9fcwYsZzT#Gdmyb&RIDja z_;J14o5wKZTeo+g-BP<+&Qk93_wHqZqDjGqn#;N0;;U;O-_WX!sNo6Ml69F7ZC`tx zJt{=%Dk8%rY02;)!uo40ashGqrLW}rruBX@2j1$Ca7nb1rB>iJnOwKz(K*o~cY0145ZlkCzQ&FAHh;T?zcQT2P#hhED&;;!u1ei-p+Zqs*3~$AA z16$U4cu^B3DQfHIyG?J&ZK>|+<0)F5IGuR*2Yn-<*`KsxDa%3%QraywTUHHvR~vL? zq$KQQ36$Q>P- z8Oz*Tc&QyzM;!)=EGrXL^|ir*O5+vpD)OO7?4Pg<)HS-G+Y{Dk9eLgKYNJh7qjjyA zzykZRibj_wYs4dsHVuu(jbR#06h@OAYIof3Th#abM&ggCqc5T=e>XZ|^b8JkoTZwM zL*cxjtKH>D2iGn>J0_Up;`c|X_l>2LBG);sl~>C}v#@3$u3bv?hIO@1sr60(_u(LXKJd|FE1U!mDwL;uW? z<}>E{XRVvhI_jVEXg=r1(hmr14hYo`jBO6Qsvnfv9F(PhzM%R1J^kQ{=HOcW3oXsI z+`5)Wd`vGl>5cC>4r@CNH#;|M+r)2o8A#iPtR?BLxVJZlOC2#^kNNR2MsZjtvQ`(T z9P9B#_VM11H*ZeV8R6cZ%@>vVU$^*aK3d^IMQ^HnrXo z=07jgRvKOy`qG^l`_T7G%Fm~NvoGIkAs56Ni_ItWH_MOxjQ$Xth}@swigBfeTl;xF zocHC7uV}fQN5L4Rwl^OeSYGmKr8+X!Mz!dUOY!Q??)R{?I|jGNg+vbnySbLMNgO3h zIb)FXnytgN_AT(UlcNA@ASS8xd(~(8(211T*4&C1!2&J8ijV}P-%Yk(p@W;^8Ezq| zaaUapkHe4n1&j8Xa7+7WL_ z^yI&aq1&ZvvF3((=8ZQS3>Q)|zw;U~BA*ujFkCF(3<<3%{T7@llTgAcYhLwzv?i33 zWoYNpHZ)~$H!I-+)hLDSX-o7k@%8=7MnezTpSBaE|GrmFi1fBU)gbin?d5LlmDvR8 zHx;!R;pgaO13PUF@0G8vM}>WeS8Oq?rN-u@-e}}AuJSk_m-?0$>@Tau$t5U%KmWUC z@OM*mjs0)QhT1strG#t_)&bReBC)@$S)uTHD(~``UF=;{9CBXU_Mr1>e3o(h9q)GL z<^7Fw?FlVfU%NlwQi+Vcsovf%@-*Y1`TTFjOmH@`t<5&^2J%nNi`Yk{fnCOl)iRz8 z$NeM@!$#`w)V!yan2tfJe)E@#WSPXL8b()z5*i~rI?ou$r8HLFh&3yc6+h^((RLnI zDXeKW&P?qnYN>zy?ev@e_@nWcj}a0EpPRf7jTvhHHB{Q(_wC@#OvlwDe_vd_9Q{*& z+#^xI)nvG$VtCl_^-aU3!Pux!LjWzos zWs-aEZ)>e_a@VhZO#HmtT&Cba7Ooc^}B+AdjVVfN1T&rHFgH{dtT zFEY2(Y-gsaDppy?F{!eDZzs0miFN+Nr0V-G-VPV2FaGm%|(0A89YuW7;mbK8I$NxA%RXJMLjp6;w9lo3waIztAwERSS{w430(7C?< zj0-|ewFlqh)_Wyz!L7>nr_m6H`}*gKcrk4*F@x|Az49D74snIrXKBQY+p>0J+9!Gw z!}ner?P>*%64=g|u5MR;8AxiN)F^wc%)HE9|N8z}QEceU^JJuunfPjOP4tB#J?_b> zvt^~5>I!CUk!P+CKG=TqdGFWGkQ;C^gG}g* zI;uU(8&8&%+Z}hcJvRsy_w0qhQvSfAObO`SOE)mTH5K2Boxc?Hf#d3x!-6{pyCBim zjNI)Y>Wl@jG%OF3jbefYDYON}`E(jL7K9v-umDt(-Jd{??0x*@ng*w~KZR>#m60QW z2qusf+0zMtG+@J;o#HA76*D4FVFzGQJc10KWPXDJIOR4Lge4c-O!yN&9sfeb{KJxA zDb>&R9$jp)&p1nK`}@9y9~Q)9WTzS5dX^_f5mCD}-SEpQ|CG8-AnNrU(npamSjKEj zFV_iBJ*G|?2ZMQ%y+eOI6of+ZKRYsWk`~Y7s5_XM=;N%6vq5kt$g5+5s_Er`}7=D zT48PLmX2R#WTRPZ=+2!Z8cR_OI5uHPxF5^7MqP+ADI4P|IoT-#GdT26H2u56P)huO zKL_++S)>eG6s07ic~j2DFX^up0ilbiCs2|%1;I?3Xy@^(2eq8HE4u-FAWOXGwf21Icjx!{x2CSr}h8T(y$y6L^fw zz64bLMVF;H+L6l1vlQKkkj!&-bfnJ);Lp{Q?$byj=uZ%6o|-oz&z>n~DP9{$Nz|f- zn#>YQ40@G=H`7n)+JL48F9lyYr@~Ea(EJ~>^(A{K!j^;R8d92RHa6X*Y+ho!)!Hc6 z`KA!;3*n7Hzng28c>b|Jwq=$6DN_-#ATC!d}jQu3o{v-sOn zr`fb*nrkr>tg!G@ep66Ce&>~|0%3z$A4ve%d=&>3Wj9zFut(u#-;|XI;{AX!2{pPZ{zn@m?nE7bKgGD7kC`3XX8DyoL$1J8~Zg+#omhv(4tA)jvXq;Plygb zEKzv~Pg{1lylmCq8Ce5`R6C`4eduf6e)5aG8qjB^8{iLT$$1`~Je~1=z@fPwEB@HN z$k2qSsd-!0D`@AvIYV%4~ac=rDMIY*~f?NNIo!mCXhYhvG|+ zPl6CIr{S$=-88Uinn2!|T9P~g8j|tIY-YN`5(L37jEWW@omvTqZRaFBNpE;aw#ygl zn3uERX6{i$8)u8d8OM6n4~uXe0Q7bBrIhH0KEzeSHEX`d}sK zgY0IN5H76qVTXRdP3z6sgb$OSfA+;b;tbllSz4^8>eB*7z9HHKCHh{Kj(>sL)TCS4 z`SWExZ95mRi60sA{n;J+^6V9zya%dS;}5sqVCEWf2ft5?dbHwnX1lnmH(+8u?>Z&^ zh0(2j{M8~q4w3}7@s$@BB{SSv;|cPp>}z&sWiSh4;$Lfk;7eyH6L^45PsWOlCL5K# zX}%GoUDojRyi>;Qx1C%uyaz}?xj3?@SAqw*p_I*Ksls)*n+_b;&%P%hd-b`zIN$(6 zP~xFE;@4U_vJ^gg_&I%MFw&xb#ivRCyb1pQT>#7mVU3Is4o%{r_e~*+$)UXu0D_!k z>NFWH@w4?gMiszo%>wzi!w4o`1=-4Hr=hpVfaKBa!x-Z<=A~cDXNmQAjI2+C7#;KT zN48!R09_QciMsVT#182WNEiU(2p3AxUNMMQ7{Dw{lK>br1@`h@ClX3e%6j+RNr?Uy zDgDudorZ$4HXwIbA4eu|lr5^K#uEa3vuim>GybW-0DQi+-ug;Su!7CxjKj^gFNt8p z)nnY)LUO?Qw`*EbHlN{?XjIUhAF%tshef>J6o2ssEi``PvwgiE9NgZ7hIin3@jK$2 zF!VQFfW-3So>?%L#h=h-`lCjuv3OL6-z*u^IJM(v4YpfCmMpa>)} zqG9-p+H0hqv`a*8C;D}v&R3sN(u-r?y4Qlf@1QRTmwXkU{|X}=z)B7dx7{^g3&NO8 zmZX2@3d8Z@`Z+}`Ag-{(358`HhaGbQgB>IIOOiS@{-FH-yvq9SvjHk2&Il zcz_#^3gE$M*5P!W_)Rwjy#u-2N#Y+tKm?Ta<*ox5k3%rP@(pX#YW{obMnAiiLt4 zE&zAEYNr$Kyg&OEhzKG<1P?jlX;7S3jE8b=hX=PbD(S%xe_35@$qS4<0Vg(jG1B}G z*ThyGB;+1S2z7^RYvXLjWSw2)tW*>rOdn1BrTud}#}*d%W)adMh_e773!)NT#Pl{5 zEDql*9*_jqmR42AwIN@Q0fkz!A$Xve1hyR$Vj-2eBS7R92ouL5g&ja`0G)``fRI_R zl9a=+LR)oFf@B0>u-bZ)xnAxg zI-_#B){)?Hpf(Pn-oLCbFmC{tHhewLakx(5!#H`{flU{zy!gb`%oQkW0J-~)V5EDqO@wfliF>(#cUZdY-GMLkH?EjH2m?}Y!!Z4x&9SV8c9+?b-eQ~dVt)#0CuiJE7N0R z7+}O(&3hyPH05azLx_uFqjG!!K}297!NtzU?vJW5NjjK$3A8liYc9C!;Os|aTW#3m z*HX*Gb;r4wYi+t?D5phAg8a4FG4o!358uLn-m+w_!ojWCV6PVuIFviU`TqEkd`DwJ z$CoN+t@l)!eC`${q9WFyD39AA%0WZV3_Ag$F~KX_r{6tMxc{H3mVl7ReK3xR$%?S& zf(CN-)W zfc6iW%)}LELGAERFv3#nKb)9!6bCUD4GrPwjx`mGgX81U3IhCgqpJSH1!Ej4K(9CX zV4je8_z_%CERNV{d9naxy8GLI@PJ3(K3*Ne$j3iu2Ad1OwgQh6O_xgRqha&Bck@Hk z(bqfn2yQme{jwk!X^-?1?8G2+Tg-m7c>VIIe_t)Qu!UUtsg91I;A}KfFXo4bYnf;CBVl0iHP;8`(!dF8y$=*5 zl#0VsOJi|(2$b2Ub$&k0u^G&a1G6W<+xy^zCpaa18;l#B^tMB zcRxaB;jnZ(su+ZU&WMjHkPMQ|!fySD@e&Xd>Rj z=ikFu9)0iR6He?OACmg`c+a$0Cj{U9?E9YR)N{z6X80}><-^8l5*;Ld`l8Qs$BT0? z5FUIQS={UXyb#O-`>jd+yB^?O!^sJhW>G$Pe6n#EhUsQPkHQTanNS}P`PpQ7Y!;H6 zW;zgaiB9EMV#5C%E(5S})-d6n3{R8Le16~H^&FZ{U*{9lP_Ib0YkY!%k z7G%YhsbL!XQqfd=DQsjB2s5;N``2gUnSI=xPaOD5o_BiFbY}YsG?RdI5w_Z&o|&ex z-z7l<7|FfEicX|BJ=HOl3IPzTJ)E-8H@F<7eAVO4fcJBTS-L3^B>GE$xSdFGy6QqnIWY2zA}K_%PL9o9k9 z^MiZO4JBn(ye&3&CAUt%{&`EYAW(n|KwzT$HXDrYYixYHs;wKRi75!Vqj^D_^F0|T zDR)|Bn2gnRX_k2m%urjdFGobFS@z`<+$*Y}X;PyIue3v<(q)H4rG~TpH$@}&Owx6$ z#va%e{U1+v;nn2hh7J7L7~2>%Is_cup#suwNOyOPkP;*WBoqe>q(kYFZV(V8)e#~R z3P>Y3kS;+H!P>j;?|skvC+zGzJI}8BzCV}J1B6`tOr3@8zrOmrw~SJxyN@*XIx6RD zc)|_z&Jf2@BCxzXg0sUM~YeS?&}!ELbV67-+fvuZSAX*l{=4C`XYZ1 zr@oMwoA1z#m8AO}hI!upd}#&Yc)r&8~uYRBr9M&_1r1uT4EPl{CR7KgV!(1IPUmk%StPY_{HH859x2r7OAKC z0&W?O#bKAy(l^gt9_w-_x{=2xdAyIZL82RJzimY}9}9>jPP*OJ)a8D%629e{b}4li z>*(pRS@qcM%*LfC=)JCIv0ZhZbHUPXo=}eeCWmW)M^0z8-&E_!y06VdNO88=n+30@ zGnf$mr%#|9m!5`N+Ic+52t^1LMSbgBtI7)s7t9*ped}KOp-Cybtm+p>b(Q7gi~6Qc zy-~Mn{+Ptl;sH8+-`2&{xc$ZwrO~QVqhEVMLAj)|B-iv9^&GFt*AEKzJ+G+i?|1Z1 zM~Ky|=V+vGcssY)m3yma6u4^sv-; zz#!e_MUx@$pz?0#e$Ik_&!HINppZkUfv;h3t@lzV?7L@cV%or-#dTWrzqa!H6i|bxg*|eySVjsFwEfOk(uXs=c`M< zSMIGmdStLseLh-nzJh%1xW8!SoEE;7<@&c^Ig8X=BtYD7>8+YSi=wHYJ25iIeaETH z)4A1{e=G`wV;=g&$RTFBER+g^o=<1N-nv#Sm2!g z;LPWR*Y88N^ttCd#Q0agGm@_r^o+zJo^5RnU6*`iF7rhCLD!1$!LRX-<)-Hk|I~23 z-cg)zK6>tauv7JV(_2Ch&TR8TcC+`(iJ_Iq?ZPvugnorG&pR&>EZ<7!#U{f=jA@gs z%DOz|e;6j;fj;@1#z`q__U6$8i3-~Df%w;an>B_v*IeG7!#LU0pZSxP^J^#NyCbKN ziBOH{H$xxQ6KM@B`mdGtyNh%SM;r%hk2^wN!-q*!iFLOc7S};c@;pra%?|vx$6Z6A z@|U&flH-+m%N}2ol2bR*a&P(dX!cj-nvXfhvKTgYtGzA^po%DvK!@s9^yQcEjS zDLEg%T;BZ7XILg2HSyyVcKMorQK~F2_dRcXilcuxk znagP%>+~IGO=Zr$RSoI!8~P`GEZPgMQJI*~p#Al+(_|6mZXqIcgY6Z4@qwpGGWtL4L&&FoAuWIz_ok&6;K-}_PsKBRU^KcL$ zj@t%f14k0TQuC`n)kI#6-fF)4wwL*rUT)9A;j@Qz5l*p?E@5pXfdc}7Plj{&D5_0j z7x$gcwZdL8IgOC};%i{nG+rC$-w7d6uOn+tA=WKJJZg;@kXjs_1pwT$9Cu~=a!)i6 z37||SLClvR!;(=aNs%gURT&FIN=}IMTYcE*0PH(1k$#;V2_&iuHH=sTvsz%6Gs6g! z^kD~>oC69_Li9T>tPZC`%Og<}$S9C;HG8o!gE1>y6w7)oeo$E;Z(GpnfURh)}+i)ku z98Z>M#iJJqx5)M;`RERdp1nkfA*b(47B|W1yNwQ$4&eYr>_;VIU-ViBWC%%E&t0(@ z>3IIq&o(l0dChVJ4l$vwYF}QdkMG26OdLjByG4Ys;rc->4)hwBS$iNxozS!wnEQKi zIPEMZx5>wTlp&qD%W0`PtwDmZ@N42bE9lg7@kk(w$OG z;9%El2bf5{xFapDAu4bejtPGZhL-}b4elw;RF&*kz%k>1*R$!|)zcd72Yb}bJqxWR z2Ng6gceIU_%*Ufb+Ac%jv4x zFI)mA`w(Tw(`ca0 zUmwmmcLRGFajbv%;oyV;%!?a;_pCX=+-R_PNhyrogot`4{b!9bQw=uAJZv z4fNxljFD!Ktv&OGVjy55g%K|vhQUJv@yHCkL0}xT)qxj_6mE&Vay?cqELPt%2FQpW z`S}o3i*y!2UhZ-W@IroMf!y_g)Sgk_fyacx0VWh6QHqQXKze#1R?8%CASuZll&F`P1hgc*jJr3N zaFybL7TW^qHE`Y{sNh|`-jzZqL!n4sauqC(*@coe*CzpsBwv1@MN$H&00assX7L9f z!wka#QJ2^p6jJU5%yPGAQnVPRU2G@n%0kCP&aAHy4Zb4-?wlhDdCp_KX zwxlzm@XR~^NhqlV41$4i;9T3Mh2c;2px}BBuylaKfp-!3xFlJ$Ea3-*47Q9F@dRO7 z#)hEaKqUX?i((VNSD>&6?6cj%FCpdM-Z6)u05TMMMadCN1c6)2+d1s77nIX0FbV_Z zd_G9QrKhT872uP?Hm@|p{5+Z~ab%Cw7*WNHD<6GVq{{n@aJc?%GHbLlAh>f zQVg;}nwIL#J5y`y>cPAX*K7-6Yjp^QdOgzy?+cu~ZnAz4^0gO*s;QgiVv!#L(BY_t zwT9Wgs~V_xU?e~*WD-nVvL}3yAM{FoWY-3YA%~P$UfMnWlHCAnZ8+H}+V(;2M%03_ zx!@~)3Mk|OqCURBwT2^mO$>N5T1WE9cpX+lCP`sSP6zC_a>H8gZl~##!N36&h}Mvc z&K4*Lg6K`7iEMbq{uGL7IrpjJxZO&78%gMinT|k~pa9oAMx}75PFa;jH*zSf7}o0d zPYn5Uj)`6$B!mLRUNB!7L&`QFukSOfk0EjKC3~Vsv9UH&(^e{Fk`wq+E~Rp%P6N_n zztt)d`B4yZ0Z;j()Z(Db$c+Lbw%UP)7sZHbSSBuWm-1;?G|&R%vUk#mAVYdv!L5|w zNeBW2ZNHUpPq{PVl0E)5GQOAjVO%;sR}|MWx`mHELD*`;LILqe-Dz_W9ZVW`@5Qm00c9- zE$6y3#5)rs6I1qI)X7)AZa|KYMgL8FbXSYA)+&Aac1*n9BQP%voYZaM)puL}6)zMT z`{@5MrDfjvl%XJm2?aX}6eNs17Jq$u`?U^;glNyM1!JO|seyCl*FTb-A&svise$dn zti7>UN4?B&UjnrU!>@CiyUljeyB!HSSbD4zGvatL`VFM^(FT<%%C|q!q4oH?TB$PG4 z&KOk8dvQr9b$Vc6il=yrT6K!eZwi*m?2Mzl(uI_F^a>_|qhvg37(O~5PeD>=bpJYY z9s8fu&luB^W=##PsU~4>EfSVWdt%P- zaL%80K2UQ0uHk%$-~7GQ`S7Os$cgy}hx25nAzE@F)^H)tZ{bnuLSoZG^29=Fs?on0 zGiM?dl2(cpN0FOK@%B1Us4Af~#Qaols`8ed!4D;m6ossKRv4>-Mi z4EmwNR_bR})s$3oxPWg&_x|(;mw}cQu6d)EZy12VYfHtF%)>vHjLIf{&zSw=SX#~w z$sSW;WHeuBx-tBnx%nlO1O>4LfWS14gPTp-ERL3@PM^4i_g9v~e=O^jL0aW0v|9j= zWzq+uAisCCz}Vk~PzL7@E6h`ddPW#;{XjA-k+OP|_sSdMs^psC+7e|vNOYol*U#eH zIrApVTIj&qiKO-SV&;uUkmiX@Zeq>G^ykruMGz1EeLgd^S>w0m3U!$aos<^uE#n{N z`pplpBX-rCP8PhY%!+ElT2kv~9k(1qubybA8?+;7QU6iv&8k3I9R;-2y-?E284Hzu zUnOw71keEip~#>!es3oaMKsI^3eByyCBMgeL~Q{`57&S#ucLLtRhVm(3&rs!I0RYf z2QAw22BC>@cecO!Ks>PCr2w(0*bAfO@xF1#Q4P3bl?rq5DvytGfX?Z;kaj$CJZ=wz z3MY1*huz=%A}Nk{Q=@i@S>q-Im^}hKj9<9#dQ(Nc*lH}DAdYP_moAi4$ zyx%jGzg7IIyKK(uuGIlz&Fj^B=Ij#p+!DsIe+SejyP}x~ggc%KQON43nTb`8&#$&= z%C_{4Ot*9H>~HBAyY06=53?mK7XD3M;tbr%^lsW(jE$0B!|ckzx8-?I(A` zmy9c`J@wIzKoYA@IJJoq{z!2B-K6h(-$IdQUsJ7aoPp7?Ki&uM+!((j7AW%Jqvq2< zwRz@m%{~S<4*JI?rt1AZ#s6qY@r!-tA0~Y#g7lM7JMf-!(AQyRWs-y4<)WPAbL(g4 zs@fl5HK$Ze>^>ac$!H|{}s^@hMWvb-yZmJ#M9Z%91;ortp=Fj za>?M{_5`wlasOM#!|=wAbTuwCpQ>k6b?*Ac5F8SsNZR@ za5?O^(i`{Rz<{@&U*VY)2isA{!VhKW0c)x6(Kj54!lbATHcAE3=l9ytx=mCJivM@|pyI z2t^q*Ae9t_RzCG;2yG7pXUhLp1iYT7n@6Dz697tfqA{2?^+sC?fj^WOAzZD28_tHAbl6A`n>}_I4tsyg1V5 zl?Z3uT1Jv#xkVzf8QdNGk?f6H3Qdrx!2x!mJBu}%5_fImKQJ!;2|wMPedhUj^>5_) z$>xU|=g(1pE;FL=R2(B8W{X0B|Fy z;Fhx2T){E|P)G*903YNSL;y1kV1WMwO@IcJ0FLQ}j+EhH40-@1VB|#w0eHP1uRwMB)4g92f)cPijnX1 z?7m?|ayj>ifC8f!2#&`BrIc|R8DeFB&i23F_`#lWg%^!X3Ph`3oE{tJ96{0quR#QZ z(Kny!i0HF2a-wh~beh2=AxAHmoDIkqG4nEP?x_#)ulQunff5`D7Sht=0izjMB+(qN zfke-oGHy!qk_;*saqmV9YNyp02C}Y!&c<1BeyN(Qz^!~r)H4w|Jk}0>KjecUd|jiq zbmd^^+J`%mnj)XvZi=y){w>iIS<3hn^3GD{M`5etAw7uWTrZlt7wJOWCcvbIVn)%UC~|;D=WY zz5y)8JI4$TL7yyOeh+@hh;z&4RRKLlJNunSnj@?r8SQ7sgQzDdSC9DU>HP2B48oid zZeLH`nx_PMiF_-C%V`-$@0A4%>0?#S7eF;Dp`RG+RRtz(BQUtBXOtziPnj4CcG8yb zksh3X$$c1=VvfY+E-Z1{TE7@La!}1~9k-B9w%v!ID)H>~)QZcCyT~9ge1?}-4M~_* znrCHuNd-hA0b1l$C`e-zV?J_|#;XNKIRXHUwFQ|Dt~Z?W3_V~&+2G%g^7!CH5}@9N z*Qd#QaYax-IRMLeXaUDbydmmPu=k&;o2lLh5#UlT5XSiyuteJ$Oj(!bAMqnuy+m6o z*?jt<;|g(bqyg6W75K#RMtjbg1#o4Wu`_Nk;j7(>N}k72EJzE*r;;H70=aB?LY z_=9_^&e`T3E{lBkq8kO09kB?{n_R@{2rqRr0akQoEMgw4pyqI7Xpa%>B`oevw3DYeKS>84B;9K>ZZwe zCJN!LqO{X_AB&+u84lCVdl8fX{||#QDy$ch!IiS?l|}VVnfKA;3+3B^W9oAsc})qN zR(+{*6*KEAVukZ1nQcRrts1)$6Pp>PG-@HkkSHXT?GpNMZy?84zAVGV%keeGCBYqD1S4TNX}oT!BSe<>@+M{rf}Vyc zdOec@)nBliOm?~8!27qPDgR|=4D{60)$7F=O@ukUKVu2tHT932|Gi3~DAMz>>1Z|w zkyFT1_bPRB(IT>PV*ACI&wdfFwPvMmb==fzlBMx|`>WP8g=|-HdG(Th?K=Zc_Z#zr z@2E$Gm$X)~^M0Aga_*LUo0Atdcog?cZsPmcP`m(D$|hZ!BjfVoocwcrkDw>Tf85_i zOg)PDQ+@sB@7JdpSE#*Hl4itGR*Is_I*PtOhAfa|5Rxtz@u%&={-9FhRb~*tL!*mL z8B^J4+bF)`aFiss_lcrYLxXD4^D6z!kR0BL^pJqrbJp@!JOCVb6UU8hUV)upDb zAbpX(?Q~5FNtR)#bWaP{? zyb3ucs$znASN`4!^Bm9gL>Kcg1hhsRN#H5rObeXcS`-q#!P9OEJTjY32e6qyD3ecYt55p6a3M0FnZIh6GM!g0NytA9ouui{YnYrL(8 zz@-;$mgck$8XoTm{kC8P++D-KM=C#hq0j#Qt8OPnu8yLm*~f$Zr4T7yvrSOI1tJjM z)Z1fb9wxx2h|78npyVlEB7kdwB$St6IVaH95*?P9(7rf#7Ul2zV(m#0wIaX{NlE{s z1;XC#SeRrrT=9Ee)dNXuYko9$qm-K}kqHxRThRfCWL`AfXw(;+A5*ak%pgX-a=3WB zxtz{Ry>uB1>go2JZC-27uj{rA-(9D;D_8bY%#qy7)vz_`bSGaOXo572khKAa1Kx z^{*(BrbiNfjo#WEy!Q*Z)CGE?9Ah4y64%qR&&0sD`#*UP%Z5Lv=mSCT)QhntDqN4f z1^^Va=V0Oqb}RxBlD zEd?kbhW~``eV8^&^HPu+;wm|h%9qx4c#)d-6r5)!6iFS9; z+Pj1_I@K^?)->}?l*DKF^bPyY&{@{8Kr6)z?-M{f%pk0WHeO@Pb+G-aw!4LvheqG` zFfF~TVLXvCPw|a~gJ$qx{~%f?*kZ&ZD+l3D<;F0gZ9#9>2iOm3IzqIuf8ID1X)(6f z+$9;jjiaG@l%l0?kdWa!l!=#ww`lp!XuY_G$!)m_A`FVC=v5kwdW}-J1=hh6s-m)l zBR}3e4Umhf7wVhBN$L*j%Z@x{0&|o$-v~|=MglxKH|l1xm!BxCG%yL)3gOv7Y+cd$ z)RmyFIJQ~}I68p^$60;9t|lvIt3bY9BY_{OnX3-Dw3AP@pbwC>LU`*z3&0pq$8iiE zx~d3}3Bs1AHm($11DAHLJo7h5fF>~J@!~fz39p0oE~TV`ykdj~3TYES*5Vjf2jNMY zi7D9$&i+eOCKI-@?Nqh~as}G(%!!KniRCOYpo^txdI&wB|8l7Cm8>B3-3%n@X2Qq& zbwmflQ!m3ls&Uh3pf7s-kZYKMX*6TUDEF69I*np(snK_4+`a)lrHmqoXz)QJVFll? zYM@dcU`%9wpMf-vZNdC%f1i3Wr*YXqnUZm1^-Oept zHXvGcG6v7t-E^0#5L`f?N`E6DS{jSESeT?UG-aWc{lALe;oU?gG98F!8af9{gyrQN zgOyCcIz#L-U0{xEC4n^)`UmtXa0+U)DHpftDLYO$)hu^mis$dt85}1*G5u%F?8EN? z7049+d|EnV`bW!@*sVkq_jGEsxnjs=!CTWRanlN_G)f(25~SJbpI%cmh8CKR7Fx6H zbYA7zw`b06O?8_r^k2@rjkEwISQs2y82_EAFu6DIDK zb6!nWw_jTMPFVS^Slv0a^8afUKx-YyZ5&TbZ_b03$tXM}KT0i`2jia@R=C+BEw24)BXcnKv+trUQWJPlGU`7*)U_^T|P6lPvy1muCjHMBh(${m2%s?nwa!? z9L)`P=(hxZh>WC$Uukz-JgZ$w3vYc{_0maMswLH~HI-g!0hE82%30BV^kp7fZ|P6C zEJOFF@#3c+UeZsirhH75xd4{>RA=W8?H4Wem`oUZB|fDw+Wtm=dT;4)hIL2_{In3~ zaB8!nzvtLAoA<%+Q__{yw;lEv`=#?Mt3*|ao#OOuQry#nV#gy@dMN^!1)x|lT=ZdN zhwbIVkX8p=0D1)1fl|baOsS4!p7>GGm7>UJ8Gi*o>id5FDcB7CB_&MqPXT|v+3({WZ`MgZYcJ;3*T?T=FO6?CN?yuuo+PBXOd7saaE{ySO?Y@a}CLkq|f*m=Ei{h9P z4gkKzkc)FU3vn)2SQl`z|G?l152X^4Hx;(3zr&X=@~;cFy2j^04-OZNwW zX4!O2TwUV8#_#cDO*JuXj}FzXXE*Mci?=4K5?bl8xvHU}@Z&E(x;6}=M1d~j-EmY4 z7$*?`nrM86_X2V4=P07b^mA&<*2iEH?iHHunrCo)z=lKODC4{LvDB)(;q3-#fWsof zM&2&B$Czb*!y{@V2WupqXh(C&BT-2Vx;Y@70@`E5(PHBia5$yF3>_o*mI|Zbi2Kb- z8FR2FaK4cd;JK9L86kAbF?zG5;MSYR?qSvLpXxWY^*w#J7~_n#4XQV5Ez<4g2IN=0 z(ubF&4z%B3-nXl$X1;feeUtEpq?lG!+6W*w&{tVDu{8SQ$uD=3M;&PGTGR4tsqP!3 zZzrV9%cK_ZaF@hq^aprzX1o1srK0kQeh3Ex*sXPiqyZ7yvOBc9?C`yv9k$k3PMI9K z7SJVfJq$dNgBX3OHb%H5dQ`)1o47YGlL10iyuqef_j}JQ?0V)HwZy!ay$XicIs(VE zu_Ie`ybk3hX+dgxuXTL#y68$*=?)qRWvujXJv_5oqp1=>yk6wf&NmTfyV29b{FsBJ zSDdfrya{ls4_c5(R=;VZFXKl(y>P0J%?Em`UbEFL%Thiy@0~J+ZSnskzBJ!@yycs@ zsxE%XDSOyDQ1S7@i$xz&4~TW-&S43Q=Ne0lX)97D7G}z(bU)h$go9|&TyN)e3V+-h ziE{0K=jQTwulXgwzy~NW1q3ta!Ly=tQJ;0`XS>A_UsO7n0TXr{2Nej`&9Db2U_R19 z%CjfrSSWVy*j?NSE;IdRM^2AM8iZu$C+e7CP%-xWno)$jq#->ve_A-y+! zN?Zk2Av*vZOMZRI+YQWSNMwQMWp^6-K8%0t5_rP(IdGuATVd-d=<@Z4&>$GO7b9Wk z{aF59S&N9j620}8_xih%sXKMl-ycII<$g47zYl7PJ=$rWU+dq>Sm4PU)++jQ z5l2KJhfwR&O%kXW#`W~um2`%>0Qx}xFR|R)GT(U0zSrHRDjexDODwG8<m%5&wFaRS$GsLlREEnEU!67ZJ--B`?os&)(k3PwnuD|y03AtL=Z@1 z2!y5p)lxEje&O_1L^BAfwO$eO_;fI%+&-?M14Q;l6<+3QkNgbp3kc-=8TqhG(t#(ME?}L(<^gOigyrWCxf!EpZTA^$ z8;41cdz-dTW9;gg>%ci9F@2d)_|kvqtG}u4|C2eXKm7V{_e7=Z2IH79{Dc(daDt1{ z`Z<>#lJ?@>AJXp(t^CrsdpJ0NB@zHA6{|`@Kp7?);FL-c3FLc|#47DNUK_~&HjU>- z42@`zz`Msn{EQ5^Xz*AL^S@$Q4gwhmg~NyfUSQnQLPZ!4GK1(z38IIKA<_K8?*+jB zyv7sJgcuM-Ac6)NEYgnv(&!Ajrv>%%sJM;#kPLJHkBjAF$uWlQ8A|JiY8GLks5DwD zNq8QBCD4Lsp(P8bXwA|hHwdcB)_UCl6cyk)90{Poc+Gx3Jo^b8u%betNVtqOa?q-# z3Qs_{HqR#5#d-Wwk=dOdH!1_O>@DuBfS$m<&^G0kvVc6Ov}F41MYp0~Q@O@V_D1wK zbth7I{kxAn9gGy6uCn72{jmfzGcj{td44v&klLVqr1tMy>bDQ#k8=F}p3G-NNBq4` z-siZQmy4tD(8L-rnc0-ZvAO1z#b0ttzytCJZ_Bi^7lWTh1_Fd+%zls1`mz6_NRK!HX;KzDbs$~jt7YL^YbQEBA`1I%Sv zStzuSZ4}KLUR)Bh-<+*A(X@M#2QZk_fY}XUVw2?iSeJb*;uc870k>mV_&I+rCVWBj z!&{*04{?tc13z8SK=FfR+K}}2h*8HfAs^wYr#^J2>y_Dj!FAzuR*=mInbCy#YI8jc z$C~eJY=V_7p;^Qj>UGZDSftZXL-XGgPHZb5Utwe0*wy96=RDzjX!rxQ29%*-GXh=Z z*{EZZT-HXl00Ozk_dim6B}`!NaQTsuZXHf(*Zz@l@wSE!RWy=%jaK&S6AA@6trw)k zxq0X4HH*A(o&o$Ka{@lmk&tCLDp^oO3oCd@5jcrqb?fq=pwae`s|AW2R93PFgDanLij``%=Gu-7{B zgJyT?NOWaOy$$hKjj{OD&`XF5!qCVA5;tLhz+u~?_9a}rMPodPzHsg{~eea zy9ylOn;ua7MMe88G-bwjc5R-nqaWOiwv|jG;iRxKS%iw-hjgscnESsc9Ep^O+FUzK zfDDp_2BpzMPhI?q!Kg4d;QW)P;?Tw+{I<7KZmg@;&8bY6N45BKRa zKZ3vrGdO@or&P1VT)(o<&s$x!8!$oP6)}$V8#kv)|Gw`&@}nSNOfF)21%WL4=BPl! zFPh@)6wGgrI)(mn=qUc|U-@%>J!1@my6am(N}oJteEohUDWdzaG5F!u3uo_)8@1-8 zts=4H$7TZ^YtKt-Ozd803jWiCYuzA5jJpVcoH>qHl+8iF%5x|*h?kWJ z(Exmn=UVwxyuu8xR)8y%T!^0RBn#eKvZ?xPh;p$9$3iV)01>1*cnY&>`Hy`>D#|ng z5Lst<(ltb+p}h9kt->iD06?c8VSWIOfV<*(32ibVxJ{&5V*ZUg3{UXx*aja|^@0FlZd7k#t+Fw|8 z-F*3*LRskGeH4wj&s4H&Z~!fw{5knR>NeN_+1(va^#j4DBC z6Y46HyYy+DGNh#%up(x#u4x3r7i)FXsmz=?%p_S+(YhdF++XBuR0O;`v*CeEcYNNpar7R2@~Rt6hQ&D(#IU4p1eJ$2YC zg_PDD)z6T|g5b=V(hqL9I`15%@kQl*CHs}#r*mw*R94Hn%yvi>huxP9iWv5@$sWqs z0De1mX#faMOlX;Z$rpHxmRCX2i(h}kLe+}bK6R#h+0`$d7KmW!BOa|Qyj5DglJ4UB zg@;6;ID!rZAXsZjzDu?vdc&7ea}PFzZz_&{;A_ol@ZIbcU4#FkBnTd$fN2r&G5e!$ zxzBt(&gC!0eVncp&fcGtA5?tLa{)rOvkRklX?aMw6iX{MY%8hx^VH$_oQL@~z2!2X6ezi=$5R&kGL^JZ~y5O_#`b zH259fc2iznT9xnYJv{Wc-=Vo&>q)I_jpY2X3%Oj{?{U)=#6`FSYd(>VH6D-*GS?uj z9MJvj()@N5_Mun(#@q;(+TL!4LVKWna0RHhIHZke9R=B5p5~ltg}}kPli_Tk*tpR2A<*^f-AhGA8DBJpHd%Ln z&EGVWsEgG&P`J_aUUcTWIq2o?4#+j?29>)kMq#!5tFr-@i{5-NDO4#% z1H;%~t8#qz+C1})y_^%4uAPQXCT@IFOuxV%y}}Gy^Y9mHcNNj!Sf3GAJL@E!(V?y$ z$JJ32PIUR!a}sclR^K|(>_Bgi)x4upreulx`8z7&3? z9s2!7+fM+8m;|x3Ja#FiOmvC=QwOjMygkd0wzPPAe!+A6`=9;)81#$~G1Q9l%?n~~$ z!)3lp082qmS2U;vIDlXRSMAeo3nPy_Q2C5{FvAdEOOCGSoW}@?M7xBge>_9~?Q*=K zHH}uZ?kw>E5hKn*3&9f1FYpuqK(%88jGHhrLO4w@3GFBV%^PS~)~%XG)3cVtJ0YS& z@aHA0a6^9gyNEZXbJGnm!O^Uc%SIA7AdiKfk&TlN&jz(J6=YK($K^ETV#9`1FUrLS zN+bphtG!w9L+jLg<&Bh@$OC|q3-gZh6YbV&)WK{i4FoBI1GCd}uE!CB0mhaArX3KC z3623w0386#JAfYT7qkLz=r}w4y4{5*S@1R$pbo82R~rHpq5%gS6TF`qjoy&M-E3UP%50>nxN8^*VBj>2*!Uz! zG@f!pRIx&3x1gT9F>_CSk-~bhn9dT%L_dUaKmF0L9FmsEvN$FJo z*-1=D9ir)K<>3h-a0Zi=%l9NSJ3R%IO&u`vm>c#`1F3s~=+HPr0L147aCJR$1G_Y3 z8BP{EQ3Op==~^tB3L6>;oB!j&Ex4|F3tPw3)UIejQ5xc=vo_OkgYjZFJxFJ1dg9Pq zhBmOe0tiUJFr{%v{K0p30hk$2XAr;=On}Pp26OJXfGL3tVNBjOxv8N8lDq_Y6GNx* z!PN4hTD9du43I#GP2i~<**0$6cyPyaam3)E8eN~Y28L#m0G7Z_j0?L0Xl^9_ccXrY zBwNg$n=>6ght=ux>5CX4Y z33Wx&bu?K}brCUj**&xY4p^`VL5&(5ZK2Wim1gx-S}qY9t342JBNdU%Eo~@wU9jM8 zBd3>30jgC^bU|}>N76f6y`hfEM1(S1dWDvb4^NwSD=(f_JpjmKPNnK2us|jm9xuCS z@B*JU(Ou{b-7=^bf!}Nz@U0f4(a1lDj&$Et2lhN9@Fr6*K!G36TIv2`JXu!ToP~wN z7v@pDwN_1s@BW8B6Ih&WzdaQU^u-I>O?*m*dkkW=!c}e$G|vq*!#UwNDlgDIc-@EE zqz|$USpx_Jhj^@PU7J}6LTtC~>h1Pl2eqvROo854_=cP|IX(vOKM;xL(dg&TF}jZ+ zbRW@2z2{aJ7k0|yrl($Y`nR;d%3tV%2w%j<1=XgE3=mvwhO$HYBRY5uehIa=pR2;EbP z@ku;7it2*C)%%JzaH5$U5o0-OMIkjAf)9mI`nx-RKh_W88v`x6_KpO_2)ylmCehCA3J`8&_fQr$OF$hsH z7(zXIV~V5FAqa9wYn>V_U6Ee0i_43;Q=TRboa_H!)rLI`@CvFmWAK%^REhMCATgOuBn=%5OF9yau!EQlBA3wR#&!~PMKzu?|x5R*Fq5%aEkEh#z zI&a?Ib-E#oU~;HNW_PLh6&VF|8L8Z$6>vc2(p>cpQwFo>Ec6HNep1u{2;zW?;tkamePL{qedol=Ldz55_~RAd zZ8m2)HtG35>y9Aua9z1G-_%xXk&SIKn))2{vs(_9hoReG)1hHEG1f2xL~iPSzp6a{ z{McG;P6FU^*$?QXT`$+T|5GOn#4UmWf;1v-`UAPwUpCRo`J0T#KyWwiMPCXF^@qby zi1(#-k;?WvbYcH^&hh49aS96Y0_e-KZ(%Jn*ohC z*Ow`@8g9l9btQfbOD%*j!nNWJa94J4;o0^V*>2%Ew=Z(;hLdt5FLGnU^O7&}o`mNYUgTGV7c^WHJP$AIU3%Sr zNp0H@2!3y*L~Y>;DH>bW*y%2!4_NC)mb`@wKEQWn7B2a~@%oUm!Thq`i;AZj6PXUB zFjEzNC0*v?pv`BM+fwQQ5wiu?LmdsPuP2v2#naG3>T0-m9F=rxe`Q5|(kksq=!=M( z>G}MErgC3N=e|eHz9BGEQT4&t0I0`V5B0ndt$o&6J8$30pIm;oc-~Uubz6^MEdIHF zYwNS(_8ZhMo@lg6uQn$~YMu79eF$%1%ZXFy{m83~X(#gtCEu=6x8H+wbQ&}~#CJYx zO55$#!71;gMiPFSR$B>BgOo`s#zAqor{^x6F9t84&QiD8Z=TVj=_WBpxPA)U!2BQQ zAH0`g5`SQNcvu&KqFo^_4|KxunVj4~wT8|ZAcN05H1K_6)N4SVGv%2sXBUB|wsYb5 z^2j|REU5Cq+7KrSi(0?@;rAbnkw0(gOAiep)50j7fKphG3P$Gd2hX9|Ybv^-P>>!3 zvKn&G_4Ccs_F-z3{M_Fy{M?;!!^K*(7&9ajhj#M);t8n zOIs~LDEX~P6j3vk)f6%mop2LZ%qas2ZsE-+^;#QDWV;^46&|!XmVf=;Kdy-2-H&zF zol)GsPb%mj~~F{Q^#3rE`zI9fJFM>0f6?{>@S_UWdw+LP6>Z zVhDK2Xc^@9|LWA=U&6jTL-f$&E(_pLDXHL-iXQTUD5x$594-B-5WuMelqP2C0H4tK zXlywlQbzsv05z%}iBiIV0Y+Q`2&5+l&!EOci_~8>bfxC|u~2v-@K2tkS4sg7LL;a^ zV&WnrydV+A7=Gg<)7B@WWOj>(*W|IDIPYkX{)Uf6oqhs=`Focl8&kkr>TC$ElU1IP zT;Y!RMvnugBm%CTa6Mq2))6eun%0wi$^21oyW#8qVd^aWnta25|EypzVgp9U=#~%= z5Os9J=q>>%1CSCFw^1V{r4%Uzq&wA7f(S?|ASx{-f+#4UJNy2Auh%)}U)c8Cd#>yL zeBSRDCS@|;HR;Q4TlSeDG8H>bZ)iwfnZ&&?18$fR;-BAQ9qW?CF|-ZHpPbwZoLz&Aa}kv;7F}2XQ@XLK4tdC*tur00|mbA z7k<7T|02rTD6RYVPnir2FpAj)=#xuIfAdU<9#Rsz)5*^keA&!_tRh zsxc9pq!PILL^ujW;vZ#A@2V(jBa?7pEDKrPk$J4LmrzMm+t$hO({5siIcaKog}rl5 zS1uZ5HN*O(qK@PFPprY!U;YI_WPPGSCbOui_LGwuRX_&3^uIzC0$cT`cOsHdZpzuQ z#D5XRU#xiM-B77^i)1t%9spy~39PDb_2#-T-0h)deC)9?fc%PHCVqedZQBV7&|J>4 z-ZWqbW5p>E=1{NSnwAAqBBj$M4l0#K_Vh~vVkO?}sr_9{3oJrUdpriR^AyBRSnN29 z$x2m*1b4F_h>e#3um{(>70vo+nXN+g0hs1d(06a|@+B^cUZ*nm(4(8>ygDmeQr|y` z-GkV>ol3>1JTDQ);}=O7Nj6$g9;2nNA^voGVi?+G>d)${Mcaa;<=)oHsmNK=aNc#o3t1^r&{G`Q|*ebp60=$_A@W#RZ(u+Ebw3@EuOuO5*va8 z*a6N?slgv5UTG&at9;FDCM_l))X_ychZhCi=Y5qm_>kmlxIqD?5Ddc8ol(1~JT`U2 zH|uV#Yx_SXJno^i6wj886$DUGyBFVJ%yby7gD2?ZQpHON?%MG5S?95qHZR+0ut| zHj-nYOvq6hs5#g%qQ*i+?F-a?ecwgQdUZ`Y3IB;z#m0(bB)9PB}Il6fPuEx$5%{Y9@(pVKH71wi?3I~R2m9|;JtK$cr2Cuu)glfwM>;f_JO+P zxu_?Fdpg%0dhnq5o@NcCV-T@TmIKvb((ak%Ao=S=6U$=Pk~Gv3e`kH}w7mux0Y;j7 zOGF;PeUgeH8)}9ANL?dbFi#=p7v6@x(mKq-CG&bHkX(h|kNi=Wgjcp8BU_@7Or&aHo2${C~IXC?|IJ&*r+H{H;rQ z<;@F#mK$sS9Y3M``}2iLH>X%G)vEVAl6hu{#DPF~5MKizJpq@8h#%!mqGEgoOn0a3QMg(sPP2EE*<7H0YmN8)RfIA%G1m~_`h5#g#0?q zZAu_*)IKaB9iBV^e}JUR!qMfX(-lt8Jwei!;pi*U>8mH`>ye0N9HKoP(LI59g=FZ* zF$|?Myq#cphh&__F@8vA{5Zk*1- zXuQti>ag8ql;~P9oME^~HRF&*UM8iOg$`-;o&+o1t}UfKdhg3NR7NB1%~`d|nY#Ko zvyrV3MV~)uVVUtQ6A(Hf3p-AhfD=htY3!OtYBz&URMJ!Y8#vmxI7-Ah11L!DoJLMb zZ@wq1d_F;}k2ClO<@xJ{(H2;mKziUh7JPNnE^q6|e}X3q!uw_iGL*so)`EY~kn z$QBSAXo`g|3yJ8JF5+UOtYegmr=$8xnVO1W{{+96x(oY?B0l$P&o^EI0hiaaF5k&g z5c(+jBGu^PxTL0M#m2>sxJZ5n|mX&l9QM~b19?;OLLhV){yavElJbBC+cOt$gVWQ zo~QOT2Gjjv^DbI4y^stMFPw@oi1rXB>M&_R?Xpu;qE?N>b&MaZnlxCN{_|30#l-7* zY}Hs9MJw_6W$?%;^SDf+C#@_mDqAIFSY4Vu#}Q=pN7!1nRn2%-jy2O-d)D=&Nyj$S z$R~890|GESz1GDRp|KWycKdOpuIThnk$CTukv?~NqG!Q*Dkw%La#9!5M_0}ySy>EG zA&bzq;`;i#=*4t0TQT<3*JV88kGlSW1IP=?bX3};_3aS3j~3_LTJ=g=G}^6f9c;!Y za##!FEx(1b{Ze+#g2*nnx_H|Bv(K?*X8&~^Ev7ql`GFAJz7O%*TC_DjpoixA!0TIW zL7q&{?RmU#VOQ0kipVTsbhPwnR92u=CUC=#e%xzG2>v1l;CPXwI`(x%wBut2{4$Hyjg}85h#vK74igJxfzxvAmhiw3trY zY`&IG6#zJ2Dut+HE055=scbfKvpSm;w9S`LNTF>2Bl~SP6@SL}ZWUp!o}ssgSoO8r z{oft;7eIFXS4XTbBz=l+TK&4e9|!N!}~TP~kf#x(riphDc3 zP3#Waz4_y~9qW)w?QyhImfs^}%%T1lo)!ch|&4+ zHkpu{_>E1u{1#A&F|cM4!h*oAW!DRH(uu{W$~OIm1G0!z;O3W4ZddN`|Ydc^M(ma+U=b zxhX{#x;fvcH|8I_)ZW09ZrrTPP(F7UxhH~W+KI2rWQ@33sOrJ3Wqgf{u->H82^{G9 zU9vw<^nM$==B+wOgapQ*OjNz{9rXX$mvEhw4v2LYM0$?%IU(BjOKP0lVXf2b=;Nz)Jwp_ESW|cf088bLH@SHFaR!vaSS@n&qHD zrSS!FGI9UIC%UaPBioA7KOqVW2a=J zr9`HsoXLe!;is*pJZ+v%$zo*A5bRUV(`wdk1MkB2sE_UUc{*a8IuZ&yl0SAl;OWeA z>dY_sjH%}tNLSCJx_PDQ+In|clXC`g^%^GoO%X%*u8^7KQ#6XIlXvQ zSm_(e_c7|lYE;*9l+hO_&vl+xPn^V3o5j>DnQ8He1}w~WPm?OLx}`{_UA&apBw71I zteWLDKVvgEVZbD+$ zh@%%iA=I`m(*R@dpao;hV0x&+4KO#Ygjc$tQ^tNlg@u@88f|J722 z3R%C<3Ukq>r^7v8_cZ;aO}5ciS(!7vs-ya8z7?tUqk{R8-s|hVVJcU*%T=Q)FLi5O z^V(aLm80kHTW>EDzWjBN zAKM-4Tg5#&VTAsZT{=0?c-{F(Va)h9BL<3>5E?Lq11ewu2*hHEaR_Q1o*Kz!04WYk z6nm7H4m|+KzDPU>#HPg}1jphIsE$#c;@^4rO1-za3O?^^d_7{YL>j?4{BO`;DtiqZ zWd^lWes!|UFjoa;*!q07+P>NU(@1OehkEz^BtGM|n)znm>E|wQ+iE|y2d<7NUvwwe za)e^w$cC$RUtZz2R8-;a^-wK#srO^IgX-~cMhp|@u07cULC>XLBau-$)P3jpX#M#> z>?-Qq&6=OX9g1G>Q;%QP8O$Gelk^{|>nXKd-5cqFAOy^MIu2Hcv!va|dpZxlPLvtb zUIa$b9B$9-|DtFR9M9i328i#`UbNl&TwO|G`WG3N?!4Kt-%s#A`}3<}=gYfSuP79N zMq-IdR`XpVz{M(;hzu&5OEE}2iRD-}Ti@k4&TEy+@w{Q1%L$lxi4~H_L*JD|io~FkaMws!8I zpK7*G@>0j?NkEX}y=iii)DDjY8 z*evsP!1q5_#mhe~&(`v*Dj~&h!nkFe;l3fDwQWvlXwSZ`3nZj9z9&p|t5|B)R0^q1%(MCIgm>wB- z+Ngm+Cfk7ss9~vA0v0&6fT+Invo26Hs#TFjwt5|SW&4RYcMAND zS9qExIY4n_NYiDJ8A(DO46`0GXf*;RLGb{$2ykR87&ZFK&Tk0)Gu893^vNum(WKcf zB>dOy`@Fn?n$hTQrcE=hgMZ&o{to|nIr(Fj~K~-vwI1clmEtLEK^7}?h~XKmlKbOGAU7~rSR_lQQH@2{dc0@9pCen z&d$C`U!U)G4xT;)r$GKlhTMv>A%B3yB4%%+F9FQX^zZjxSk3+gz9cZKFBRn?)phVR z^cF`f4w--TciPQiHe1!CGXUE?MgWDof{K`-nE2heo9_5wGRO0)8gp^pk;{d=hmUCM zk7XMOr{}E?i@u(FybcgB^BB4+A}vR(CX;Pdv3(}8lO=2|w(}5va9NRD=e~bG3xa3( zL)&u}*B~UdyJU;3xXg5Sf)HSVft0{ea3lHnx@LEKjV0obIPZji(;m@%zD+VLL4v49 z7}S#poh=JyQf$awiy;k+0J9_>4wYYmk(P=fk`OGr^8_JIq*vI~cUVgW83W)` zk>G~duQUxbbiP>Y;xn|QwB@U-QqN!vl_sp zDbppGcq_6Bam`kGs?y^hs$a`5q{Iw&9;J`IxVsdj{B6rMkp3-U4+bmx4L5XC9IYS4 z0_jqM=6r|KNo%b10te!Dmg?g<@2^*h{UTW?M^41eg;dJbmQDi``8S2W2`l7Cx=pdz z1W!6tO5EL;yNt;=J8t4n)}~2^^aMml4e57T$Z<$ zV&YAQBvPbO#wt8H!1GzQA`NL=GQc?}t^zRm@l;B$zE<^I^)>Wu{sS-+hbaN2XaWWp zb~z|AcEi~+0;KwZmHaR!qoJnUB{Upcc*g4hLDqVW1DQ@1LKfq1kAbes z3HO~V!Qd6J<(=S&o0Je3*5w429RSG#G2g_+iO=DoVBgs7h7~BtnM|h@(R=f84i`oO z3sQ<;xPUS;R|)|jk@k4HhUYn;%_Y(Q;afJa*5U1X)|BNGSp7X10ywMfsV1s0u2mW2 z;me~ka?FK0@wC#|RBGPos?(!oM!7W(02_1%CZDkFdZGK{w{v#R`%4wqdWYyay|jr9 z5PDt^xh}H)cFF1FN$^uLt=T^D>r=OXCmiHdJUj>O?k&U20^Hd9ejmcC3Yrl_$o|$x zLNP9+wLfEbqvfFLc&M$0CbN7oUVlmYi(-r}1ldvc?u@}#leJ4o`N*KMop=o@%?XPw zQ_A0>?4bCh@k5tsev};Z`t$`~6S`^Yqr2hkBk-kDrsrYf!< z?t{ix7RDOTbq>jZ^wuK-USELg0H31^G%R3v=|q(y$&Em zOMO0ZKQIE-(dak5N9>uv=OTCMfK328g{^^~j}RO%n%jOYZVrSj0bFh_bVmg_6oDBH z273W4=4>J-Pdj!4IqZ@C;3!lT8L*2me8xMj2L=5mzjW@u>$!3;cRoVmFhnA7L1?TV;cICm(6W}{8 zZVD?KL-02`P3^ZwLae8w!Qf#VUGOq$LR;sjYZdHjRd5|<@$xZxGD`R4UwCcyWyXpx zZ+lW+A=mE5?qd?~eRsMQK;mp$==x`{J~5>_rd@uB1f-7R%tGq&9u#!wIeCV31P^_Fn$ZQ zn+bZ#;^B}8LX_w|q~<-$BpkfY%(?>NAw$HGv^>6s8vVfS2`?2A{9J?hIpi&*2STeI zDc-KGu;B_!gy&ubf#tzRhhT6Z6p1q9czOdF2!yTN(&|9AVE{)6jvyZ4a~}A^X5%0T zeg8{My!f7*ci#xPW_+^m(y92p1mu5YwdUrFyn)3loC-My(6<_Ix zMnS;t4D3XIqspKh3r@*Ex+nc`uskTB0W9@~<_bAN?1K@cffk%D0qi^B-EBom)CG>f z$PDZA0E&(5*euyDFCB1%#TNsJ;gm)csO?&aS~{&DIry=a42w;oU?N!UQk+cT}myQH6^WB!sZEg5!U<}Uo_B#% z^Q}`MI}+VVkLq?rfz+KE4AEb@c#sygG4w^A^u}tD_MhlkTGUS{dp54p(mtQx`q-hVE{ zV;&Hb8zcTWTpiD_|Bx%7tf;>+njT4e@n}N5MJv6nw7d^dGJRK8SFxjD=jO?ioo(9*!){`A*TF*9;qz_)*@7gr&QgO8%N;;Ni?xM&s*>Q0 zGL#PwPX1Fui$Ix0fLw7h;d4CRTNUW2Ou~tbZz7HQpJMw2(@J}Hvk8SAgO}EV3U7WC zC^Z=83OCz%Fr0B+8u_F4%J@q2DS9TSIGBXq*(ugAY{^pdfVk7pVnEmB=_$QKE#ZbH z$$6c-NrmAHWWNh}s!OGg$uBviEA2eGK31lK-Cwzb$bacjBUP{XCtuw-MX5NWRGkZ6 zCYq`?ATKhYE}fz1in&?0`{a4q-GI&>zXCL9Am68#Q|7LdVE;o&a{#tL}3O&k6gIy($+7x6KGcKqM(}{6A z(i=9Lk2gMj*PRZ=R9}?(Am;hO#iG<`f8fhs)8)UY2HB6U2a8V`fvLYTBQHK<6s7?A z&xpxS2+c9JE{@eM!_w5*!F!7W2aRChy({4pQ`%#SEH8fh@!YOUScwa&ymof28~a9m zW^GiPiwQM$WBJA|itQizHzVpaRURkXYCZXdn+bK?z9hhuIM2xP@&&Sran9lf`j;%w zY>IXyr|@@Suz?^Jd702172ZEC{)Ey)RJ#6k76u41oTZ54>R$ z4=KJIwfy#T_c|5@)@q!44MhoQvWO8_qy*<}8x=W<0cAXh1@HgvDpWgt)8Nsj_EN+r z19N|=%jZC>iqv{V5&AzzQr*?r6#I-i@lzq{P03T$qtVED5}j@cNqR0n;Iq@JyI4}~ug8?nG?4cRo?VcWYE;xL@y|?3} zu%+g)_4g(hAh!>7TLE{C2956=r!B%R9(Wj{56^6tnXw&#bDq?T-yKFoqD@?aQZGVM*KRFUb(x5fWtn47%}LW6>7G z9jRc4X6{BTA3X#exnvwi^&UU+=8m#B?z?_ciW+R8#8#oct;5};6d=!9+q-X_;!b$F zE%s{e^BmWLGMx+9fip1X%$kZ?mjB}pI*s~r9Mp1FcPn+30d?E$^o3kAYv4)fKG4yP z)WSgSSL-4Pruo1ZXT`PJGi>QbFakx^?os7^_wIMi%lG04&9eP9i{+i=dmK)LfdbSZ8ts@@c|o2 z$#Pbo!DQCg#D}0;>r<_W^W>$x=*@!8owzg>VQtzgVGMu1J&?EWSRCuNlV2{Ohhn%U z!q0zAd0==&i4QB!4-|ZVX?xnf=QNmtn2x*gJ9%Et9#5XRl#Sryh*o9D;hX!$3py8n z^p9`)eC9wh&ydMKm55PRk0aiMu^fo0@p8Y<6X!p{gL_}bZtGHtZhYJMasG9^!Mx(N z7Zk@mvj>T(OhOIySO~L@ye6#w{0&W70q0~$^%A~83n4ckuiY{?fl2BXVZ&=N>fcRe z0ySY2bkTNRC~c(fs4p9+%ePUF=a!DVGH?P=6BuPKW`7vrA&IHVwrW>`ZN)yEf)F$qQMs0f=^p4jpYWFtV}Pgw^*59fhk*C z=!>>mTbb)B+t}E7x7ygb#VOl5_&ja3b-FdEZ08cb-fHJ|AEsjOks#V;@A*Jih2r3y z>)qzy^CV8i(XZlZn`1!zpo-It_VqTWTd!cb2C}bz$t`*e-o25=Jav61mf1JZxCya- zZ#gD-+A`NAX)&%{=uXuc2Y!NP=|dl$_G&*J!{y)P&Z&^Q%%9rFe-~ed(nd?TG3>l( zAECWAOb|-@p#FO)PwA%gavV?FJ20>7Yf$VJ^N-naMVQLfxKE?sY(^En^u4KS)j;CO zZ6;y3&j@G(r&tOIt}a}f`V8&|S(jL$r}1M~ZK-11h-9qBbS!}d`Qzs_5Rr|nX{7Qi}| z9$c}U0D_7H!xBd@f6(W=m! z-#4jIDUc_`nbvLRbe3=*=eO;`Y`XV#w)Dx}iDT|bRQVmW`kZ}4Zw|Hb80Bp7`J?p* zjnjN@{Ef-aSu|t<#2L_FezWAjJ)A=ytV>YfTE>lB$VQ|+u-b_tp?s&Hf99o>#5;(h zNA9uzP_YnR>UD(TKI}Xd!9s@v@m0#>J5e->w5Q9={ZkJos0*)ia7qj>PPIe&+N2*R z4;IjY06qDFw9J66u2zhWsN%u>%PCjsUK=14{>dw00|_jWioiK{O_)3B4WI$wX*UsR zmyvkR(%-!a<-M>d9Fy*@Dxk5Q5uTh~#;rR&bS11-$Yn-o!CJUpLUDk_qQ=n;Z}3LL zk|1;~&`ZxK@DcBXpo}}V>>yL01%L5c@R3FKw zfZ3n^t1Ko38c^}?Oa|%bu0uiIKryLaY8aw-Ur-T=XQKGqSF^i&Vfga2#b^~-m~}vc zz#JIaXOM1T;Ev(JVp;DU$%)Dj%0hhm4B$ktIm7uI&_q9T-;?yV&Sr3|$new=J_9o- zrzCpG&nWRn`a>2G@E8KC17Kkc03gUi27ljA2NS7EP}ez6)=^rjmXDweanRA{7eYTz zS$pn4m!wk}nNtJC(s`i)plD=l;(DvF>#sfo+RW*+UF)KO#Z7%WVmf>AYY^ZL*w7Je zJ`esBRQS!sqz;s`cH+eVgFgB2`N_1{Y@ujfxcgRz_AW7vuRy zN;J`ARxzV$uKgt%n+PJK0S2#^5+tHI2ZE)^dm!QO>AcSN5g0s?(s-nV#o@u!3H*7j zsMr6q^fY{hVVN+1C)f1cYatLei1x@T+q#*_!MFDc5dfGE(rP#YiAWujt0g7&gEH~k zx)T#1hD{HU7`_i1JkiN9Qw-xz(pCt?t4jYarcuJ`Fv3@eZ10wIB+VLwqd_1#88C?6 zet~yo1TRYo|MS*^2A^Zs^FfWteH1Klm=8nJ4v_8)DHH{z-s(}IFXt@vAs@!0@6zWc5yLJsf|_@JeghR^dZ70q95%3B=61jYY(2y_lSuNCzQyn zqrNovGN(1HaVvaP|HAcdV<6ES!vcyeCPA|RC`)mHatJ^H z{4m2wx$6Gn!5i*w0dJvHyflOcgY-Q6@QUi1d3Hqv8KQwrXEgAF(tPe;RNgf{6lqtg%NaRbbMdEFP=q`wjXp|5kX2Eof_ z>75Acbo-n941jw$u;kJU$&Z|+3;soTaOMMPKA+08c{Ipeevpm^mZSVEufOJIgH&pc z!PsGNohC9HmmwS;Onfv{zsHQyB!-)26j3xb@1P6b4sqTFM$ZIg?~;D#vfc)%3Us&% zz~?}iFrvZzR7C-+jVDJTnauZ#0Ev3tX1n+Gw{lNGc?J@&_o4!uO+sFj3sJrkpYcDA zv%1c+RPJS!{VTb=1Hspvm#RBo{Lf#VK(BF=yOSf6q?QNaCP6@0Xo82DV=w3TDRRaz zo}U^qQ{^e1yR>$(Ey7AO39H_w3ZZ5Khn#xhBBVx==KVwr!Gi4HS442{ItKy-)0I=y zK(R<};_reELFMHg?#Vz9dl}rRQiE8WHvgv-6oH*=06?6e3>02C0$$anVH&9cPAn9^ zD+OtSfymv2hF;kwUhE$+0RBQOr5XyUklpP|0<-~AtI&^jg}f^u`SOqb^$Zat6fayU zMN5VEWdc&`B4?QpulmKiq~}v)0{${&MU0t23fSy@3ZVd)wE_MgIv38)!J);|s(Bg! z@aZk-DV=U1s1GEey3Glf+Qc&kKGhc?8Hi{JTO%eQWNBWK6>lpq6wf!H3UF3m>eE{E z>%%MRTyErgVn8sS!#d^@HAo>T6#qu;pnz*U;SiUP9TEy<0EToDR zoX|5?Qg|x~zSKB0g?r8CT+qS8DfzRINc~TV;I3BHswZd&3n{}p(keWlpgg>?Jt5gE zMgT8ET#|Cd=?*0q?Q@gZIr)?9n>pb9JtI6r##+J!!%02E=wX9I4C$T*KDy-!_t`Vb z4!BKNVqm!>31i3rmrK+#yt0d*n1fI~_qiZW2ndMnUl4`p3=tv>lLv+ciVdr3NLAXy z3BLMfyRUCC=)V#i`kJM;(THeb(+8;QetJ#@Jm2aCujB8d!iSDmK5j8$g4L{yWu2Hta#2DUT zg2ocueo@ap2*hH1j&TB@L*n^&B}W(QEi}}UFvxH=@rWAu9cu&=KuD7(aC8v)M}}hP z&0;ytx)tj0L!T4uxdjo7^qK?$1`PV0P?3ml@ifqj=^_oQb3uXeB)L{CC{Z2++J|KP zeD%%&IQp3q-75+D9h0p=!Q=h=9`XwR*rjVye@6h!mPO3!W(+4F_#)m*mn;TZ)R1O%NKDwt zxig)l;_(Fe$@h0nxnQ__i*XR+Bh|G6d2L7@X*>Z>#i)(f(Y^cu;1P?E!GR|`qvHw- z-X@bGKUtZ?v8scrq=1KAuw5A#~GjKMPpya@(_G4yz}!r5sNFaOAEAu#NSzT7#S!7MT9~Qp zm!={a8Qqb1!C50}**S|VSu#{=sAo!jF*gd$c+d3p^|4WOa6$T+LEsCvtdD&Np!$M$ z&b{j+|LDv#WY1mVgL?w_P+n4lNEce8OVc~K!Vo~zLiFxolIG@Pi-oK0)qqO#?2Z{S z1I6~r-T9d7CKcp7mmA%+Ejrr`AYa}xgmbaqb#wN6@J!yR1l2d$1GCcEj#PFUsDZHG z_l^KxP%rKUe?ugVk&vSRX_(}#((Z7<%dE2se&D3z+1<(<<){qpj` zI=Bz>H8TrmysW%%47RsG_I=?Eg~i9hPY?{+<%x%J5}b5+Q{9E9YCNAky5>76e1^LM z-|v-G-WdK~zEDvmIkV-ufpTy73n7wJU|ptD<`45$x%)Z)w&5?-j|tciOxJ^WPFktONf?BwNPlI*`%f@fbNywsse7vJdK;Qr zJsi@YX-jgS{`$+)8Wc0$3qbK;t#tf15wBc6xO@-(>mWc^Ole|ca2uB=3I_TYg>DPt zUNryy|B>I|%B*w5%5AFZr}m#b(H=urOt{YpVVqk$zC?!qrsX3kYjFxMOKx+kZkLb0 ztc>@su)Sn?aib&SJtNTeANYIX5-mTF9RvI?vs`sY{JcFq7ZSoy!Pt2mleYr4~#)+(R+nh5|gkO4+M_?zbIqvJdZnCd*HvHWKwH!|6^$Ir@w z_;a)x6$nBwZtuS6$mfI?;v@^#8H)CC4pzy+bK7ay*w)8o_59lyeUjjJBRD5K4ln>U z0BX~io)ig3Y&T~&*hCO)<~!RwNK_t7h?eDq~Zq{G~l9#m+?-n{YRcG@QV zQpLA--9NJ52AB9zf)6_J{7FLBQ{yhw;IZ@2aK5LwnSJ@k4{xwr`(?t!Tdo zXpqA14S%H-2m4yfH(&z2nu7}_ezMS)Z)@R%w|_oJ3c{7cV|;(aRhkY_Y3K&l9+C9f zyrD^z??jyrZiT0RD`wpBb%JxHt)#D*#w6apkaqn?TF5Qz7d+jG!4t7-{AWu#f9;tq z{Od<0_=EUAC6SLq#L~hzo{pdvr}mF04VLrOiU|6M$XAR)C-%(~sfC_J06r~|BaN7F z4E9JfsUfBM@B>v$9|JM3QQ_f~v|xSbxQk5pz{mL&fAl)vA70E^V`OLYYif%?;d=iN ziXi~9qu>JNq^zA)yGPPy@{hYFi>L!aCMeU)A##SqQa*H2Q=hG`pA$=Ys4>rKwj4>! zW39b#+N_^ltRH2P!B%|hq&4BRBlonk;%=Uji^1p zi1vN3(u9U(mENR42AFD#b7P$|zw?puSia<5>-;@-I?hG?8r0cSL~7%@c17@4--^$9OU1-iof&be|a0D9qmx7m;WyOiH_3u zZL_}*)1>@musGQ;=bN~H|J2>?`g$M)6}C}ve-%c80W>T!zWW$0KoY8?I_#a06U!oQ zSx&;@sk6KaKf_X^kU`QF3@L9@0Xv*6W!GeKr%4o_OXuBJ^Ct6}!6RtsLd%=xucHsJ z2}L?;KPv~GKyri_{X;~jlPn4?QzcuLW}aWHe=hSJE&UL#O-jb09{n9E-~87q?S$Z<*37iO0jfS8rHRbK@d!m}&)9U~oyR5)HJ%Om6vy|@ z&4=C<`I^F_H$u6=t~_D6GQbQ^8mi1 zn4-O29K113dy{&)gn!?L`Y?Aq<~iA!YtrRe%fk+a^uWAtOL*{k{M>l=*7I04qa!G$ zw!itl`6m#Gysya}Fus#i(U{_&1+s&C-JcP{8gcm!&^@SXM33~LpRl{|N}ny!}?FOp$= zQYqqLA~?^Um})AqW-GG|f9h<$$601Bk;KWZn+y*WEAXwu;vD&P2pjBJ&e$O>A1yqA z<9sChw4P~t`ZZ)kLzS&28orO!WP+0cG-q)qh&}NfHBy>!Q%AfYJaXBs&;m(e6W6>( zFOMvM)T#-a@uUj%=JR0ixfVu`)Ns%R!;#9eT0JAa$56k>^e1?FdVFOW7`I);tsDeY z@eGhN%W%A^crIbM?F4YA)IHwBH2#-&uFlnY+f2_k-@VQYMo;V70~5QSrl`2idUb4; zCT}NwU%6P{e)<}|^5T@8OJ4Uc{phV8nk&!t{f@VtggUnT=g#HO>B}@Gaa_=NnnM|1 z7m62l)M)Dbxi^2cLx|NxO!J&XF_{7Eb@1aYlquU5c@Y;l@C3t_9YX`|!D%CIz0Ua2 zY5X5D7HPk%&8UR2>@N;Lc}bK)B}V{mKKJ4wuoyNd;DcMjr6T}~pqREyUSlXY92WtW z4zcI@WzLV$&!rsLKvV_EFf%wcZ6^Vwe+ZVF#$aoQ8Cyc<-IGnz7qmGT$&)aJZ%Q+k zR*ZNAuz2bGSQG_JfC89eG7LQ0$il8@&J)Excatp^a0_|c@CH4d6O<$MHcFxY|1fpt z?@+yg-#@cphQW*(jI|lYHny>^)eN%lBucgrC59-Wni+fcrL2`b`%Va-u@ecE5M?Vu zp(NTozTfAE=lK)Pb?)oB&v`GeH-}0EbsPC^^vzJe)PIdVBLTWf-?*&;3Ogd6UH#iJ zZB(Z?kaY5o?oXDC6M+YBRkr^ge7TxmvI7&Zi5U4>{PN#EWaz(K_lQCX^06WShLf3B z02&=QZ;eF37U5yJGu$vN>jnacyi}E5D(*N!E`Tg&mXapu z8W1wTcBD)O9BZ__Z@n~}XON1kK>*SiLgBlq$*>=SByJ|$1q!5j?vSF`%oi<9m-PSx zBp6MIW0BDWo(ad{5J)m-B?Ja$ct{`snlQT_6gY5`dgB`f`~#I_xW|~5Kc8wNH=R0^ zsBypH7oTZO$dczwcaGT;7poW&7qsE_ij6=GV=MYje!F_-fu9Q=E+Z(St(@jOwUTxt zbT}}_Dl>FzMOtIe$g0-L>Y+2chy_8?o~zEes=8FdDt`DJSW&;{(k$iA<z{H_%{dVfx1QeN;IeojLof#tDcFHuB5}@7gs9#%rCRjvIn7n^6w(;qr}A> zN*yL033ZDlh{`I?DS1FsrDX!{*yTVQSb%&u&Bu^{SMP`Me7FPxC6XU2BAF=rWepIH zjhWzFI8lI`r8;@Jb&?@X;^9Mbc0mo?25_N%&Ge^ab*vq#;n5H zO&?65%>Im)%3g2RF=C_}w7ss_WjwdD{iR&i)3<8tB{PzdhPiXs;0m#rVEfmXH(LfJ zc@0Wsu&@_!K-{AM$@&=H`um)x9WmMU>0n^T<9r|C^&3@bJs8$q?B24h9u@?&G={MF zM_)Cc3SvO+_g8Op;#tD`-@suw)_(%DmMtfP!H~eZ+nj#q-_A{+0FD+DAxG1j|#mzYvXrB#Vxh=IL%=i5F$2ymxh1xys>8ZT)=en1Z zwv89wzRIe6UA3t@dhyr~t>)}!_thqeQJc|d7?b-3XB7=Dr{{fm7Qmb`HsFeo0}(VE zRCTS7d3kEdGlHn)^(>G94S!yk#s(nA3B-+F?4vg^m*2Ppqyq-)0?gH~6aY<- zA6p=qCkWcKbVmw|&e0lB!x|91IMl~$7|r^hDb#&kL!P(>`(D3dJ%Ks!&* z*lV?)>$ZJRXzG1FcD5WF_BilAd4Igg&#}Wd-$IwdM?NWZyqwMWp7nVQuXCYgLRsF` z{${zi(SJ`nKNmHLf$m(q`&47z_|^454*#9cw!%}aX-9i6cC?XjqgSk-2Tg^cspqY^ z`_G>w44>Hhb=6jUAIJMc6Lsy)2CQ#RTVfpFo@C>c>_=!i4+T!4Z8xGiJ9UTQhr_7G zxyKM@i%(q5M5bR1#F)lej08AVdr?YmUGE&jBE*L(2*S%WfoBjHtYi9b-g@szp zp7wd4hSSvq<{?cls8H*enAzV+XgwT*Z3mZ_Ih z@c8MHJ+dx{SuzK!u}^Nl>xrZBa7D2Z&v}eSKl;T81p`XZzqShh?dC#g-@eE-;T4r% zZU9T>&saN7b1DZ%HUIkomxxovVHK@4qUa*1Tpp-}b}Z z&WSwwog~zq=z1Keczo^6?BoZ9v=O}?G8`AR#hLALpUK~1L!nZ*+NPZCZIo<=1WV{P z1}7+;gP%DcZ-DYBJ_P_37ZQpy%|vs?=W1KHvERlgSfN*w$-Nd~TV1W0Rm?_R9lr9=^Z; zl5+y;qH`f82Q1N$DIU{ye2C5bGu{!)GgID2_Pq1A-lo{w;-0$>fQtTwIEf0* zYQ14b%peP#jqq5h`Ji0NJ%~bMAleav%+3P9xPE8 zj2-fe6zSYc18Y=0fpg<4kbbcZ3B2klahB+hjt@Q>`CJMy&UW?u=y1c!bTUhqsN%zr|_( zhm3Ut@#Fg8Q9Yv4aW3Uj;T>xthpry~1GuBh-ZQsA(C)N8Fq=Rc{_E$W9^QQ5;bjhw3yJ|XmIv)-nN12k8XzS7 zdx+P=U3;`@r+v;jUpnlcbSi5_Di;fzBgbcv{x@0=&K<6&s#j#3lF2lz$h7>Np>R3D z);IBr^aFpHtQ#`s$LKul44ZKjKa(jaFOv~gky|U1*IJR+?R)Rh+P&Ti4Ow4YxsvNm zd~&1m$sJ;OOl5g8vEo5x#Uo;6S!HD{v8uJQs+(9nSXn(zteLK?c~7kUR9X9#ShrtU z_m5c5T2;>_+rU@VAS&A^S=Fc@+oWFAbV|0_u&UWow#A{U#YMK&yQl1qXw^PzvYrA=?@Vf+dK}mb#?U}i zYxwmgRYFx(!BW|>ed^VHL6z?$peHcEfNg~!5*Xy65$p$q+^RA5J`eby5}tA(63F_< zrw1PlG1iR)Y4$?61~mQp)bkl2VX$3mlx}w9=qb6E`_(Vs`}T|V_d9H5y2ye084By* zp)k4Oxpnd$LjeIE%=NRPGC+R4&s(=f#iH@Aw_Y?xN#pbt{>aTfsF}6&oe=Gx;G+$A z_;E*^8RB6MS$Yl&8qC{Xv!Ifd+#q*sp`%~@@LXr!&TYM|?N|5tGAmiTte}wN2R+dY zR*C?h&>T0khA6c~>hSi@Ejzs8f~rO6$?nPPWrIFn#GJ|I?{BRqJYEn?5B@|F5kdzNC+fE9$QyX+WXx+BeIM+FF~`YSyft z8~qGSs-KW2gwkJw*<*;g`3bG-ZJS21X2`M0z5oz)Lo>s`Dg#6YkMl;IBt(L+OmRQ( z-u{4Qy&t!@K8e&9KCz`^o*en=DoE8aEGR36j|3K-eRvq=$%fGF?yf8vUg ztZtC>(<5a=)Nx+{Sg!__Od4azO>C)P2PCmHb@Ndz{v$ln(&wYa<*plXMadE%%87m9 z&idRCe+?{C?jV};l00DEBOcNB9tyme(xdF{SzR}<78)@03^aVOE4LRdKGXaQOv6U@ zaoJM%W!3bCBSFKxnprJQinRdbQ+1dRf`osP&tx7M6jackcius zsnugwV|6d966p+|gw9A%J~#w+Mlm4rZm|5a9s@*+tbs8=i8Y4MNDvi5!Ge`BeRebI z{=cLBzu$0;2)O+DhSHHwT0k9y5~oB(_YiIB0&V5cdpWggg%~uW9HIF2g^n$JW z$o(N8B!n{YL$t2uZ>yf+6l8!4LLos0i26|uY;23W1l^ss`!q$L9g%VhcP1Uv26E7B zo{V?bblVc4GQ%^;LIqTTbuckp_4qV}8z>JhU!`Q~5fU}y-zA6m^hBb`QN{bOmCL=M z*A?tzt=F3+2{!!O)hGR)%5EJbCos<7xdgYaJLRyFyZa9w;k5ed}E!H`BJb`QH{093(TT#1L_|N>?)d2FB5M=c{DA7t zWqDuv{L%X!k^Fkryk5rX8WLvdx4)0a{K7o$0M$1bW&-L2hzbI#Ip2IYTf6dSeWe}Sb@A96 z*EM)V>aKD}VV_+#M}MWL9zF=yYLwDx9dAC-|$E~aP!a#UGl{}CTE{Db0cekKWL zl!xxm8#)9I0zoC<6MG9rJ`{n1AfSyR(+pCGik$kV1?sGsWFgDBsTYe60c{|31a(jw zawmPK*eHx*u04_)+Kr}(ZRsRD-Lq_kY2f-~B7TvhI^+_ymt(?6RL0O9CM1ZeJAAiucqQzGHv!n{;5+QdY2&u;OPx)y5yU8h0s7EDMnl^# z>kQcToX>g|?*HuelfXOMH(mJ|ImJ58%uY{I+ZXILp(w`GH3Rq_gYD8*C%Q9)tPP@R zQjU9Y&0X&TPO^ueoW6M@!RU|gdh2shs1}x-#NVI9-T%I>Z~kZWeWB_bZ`cN$}` zzWsx|_rvws_0zI_Qakp7&!eZ&HWK#A3euVpxS`(SUUK$HprC7RC~zCi+&$I$^H9&+k52t8v~JkA;Ju;wqErFa1ixqnOjXc0y3tf5iCRthJ=q?cna#* z*Q=LvyngE6+UYv~-vr|WsZK3&IT&C*Yy`8EnV5ytGfU_ZST0Y8^~EQ2C?}uezAx_p zc#XB=`;4#SNcw99R_h#FFIoa{zB^NkL=yxf1W^p$8}PZd`l!G;nRYEAM8&hyUno{HO9m16PKk6D~RW6dKVX=ah6|+Xean zk~=qk?(1T6F{It>^vq`u+1;tE2ETTfYjgXTt}W-cZ+hSU?WNFKp;*x^MznZ*k4US4 zm2as1+Ipr~Q{L&JC->9d&X?wds5fHnPb&dJ7T)kdVZZebyYLCx<0w-Wcod7B@~82XX-Vg1_1k#0 z2fHY5cScUxrF8uijoL2D_tYcxd52eG0wU1!|O|_>2b+)vKcv zd2&26c9Ybq192#5iyx<^Dbl#4>-l|8X5ibk$47Lo^XrAjvanBaF)B8Ne#)twc9xO6 zEos6i>pxZRfBj>g-FOmqscP=qIkj*xow=>1Ny`ggT4wz(ELd{cN*04{54qPVVk0`+ z1!j{v>F0tnO0&I2$9`U|zv`WoiXZ-bpR{uQ`(rlX!{47vDX#wx zKi7Tu_j~u{f1}(7M*yfw_jr4AxX{aY{R5jIP2uIy5APdDmHBJd`{}UfU+EZ3_CHcK zg|nyz3Z{{fjDpB4f*V*D$%M0z!DhxJfDb5Sg%*J4=EdL_k$F@;X(27l61&v(9Egx{ z9=wvxOsjv1TO->*LLu;?$ZOi!ecW-H1q=_Hp|fQ$c?9BdF-?JBsO2!Ai5ZHkr_cbt z#Xb)3lf)(gv8d*~!TI5|_>krmk+cJ0>2V2I)vY;9hDtvLAP%WebY>};5 zhR#RLF>|h*B!(}6`RsuhTQKbiBD_Nf`mM)2i0qR2_Vz3}zIiZ1gd1gVRn11d-+b^2 zV;u8Qqeo!eJKdH%HaF@*zyTc9JV3PHVv$D+fZmee2B-FEx!Z9oZ)H6GJ)dZ<{8>`B z1c*j5Y5WI`FpR=plq}3q$O-cDN*KD}k)NclQ+A(y7rL0YYxPWxjE%*;j1md?3e#bD z)qcJT@pP&Oc;@r?2~&Id|By7W<_<)dw0PF0y%+A1krIRmDgQ;#A6M=e6lU(QsQFMZ zP$ZiQqMwD`nu&m>vQ(Xa8$O@Uqj8>_viMO$6kZx8}2RgZm%LoZ?|ug*V$@*2Qe!`H$Vlo%=!<mCbK*rEu z7$v|0P9wnF5aZrWDsQ^{XZ^k}cCv0J`054-ZO^VoO#d8px759ao>OpcX1Ksb9V3qp zYUCDr2YwPFkXV+_j>UUu)l)ZA!mXFFE%?+ssX9 z-zi*v`cKl~?BsZR4tMCvan<{HCoYOt{dxl9}pGEmSA1>|(xWOrFf*{Y1(iPq>S z&herjYwFN5NCsLD014F(BOcuUzXNm;f8L*ys+qlTXN7I~SI@e|Q^Re!u%qw`C%@F( zyuA)KzYgg3j7k4FvA{7t$-dFTN=T*6yNe&(`S$&Bk+%&5NbZ%XRq1>hN)cg71F^{u zGlC5}r;Vz9zr3(l^T?{Qc47YTZOY?6sT?#>yKY12$N4`VG)rS^7a5B6TfZ+deEb|v zPp4YVZxL>es1DTqfl`52Ws!selpvk|Q#Jhx2xL^y^Zet#*Jr>MvH;yMnVbTsQ6XmFGm=RhW^E`2_WB*qlVBGv5qsU$gF(F3c(i3L z7fK0r{mBqjjvJo1;4P;Vbsbm5}P8J4@SfItnjFy zYPB19FHT-NDBz7-LO&QJ9_L`@L6T!`{JX0-Q5)BTGk%)aa5n-gy(3G@3OETMTW>Lp zAghRH5wv8N$A%(k#>BpihlEl1=W(cm9o`-#VS1TJehj`~DTI~5E=k90F9}x`^K-a8 zE1_Ei?TYmm3UlB^$~Mn(vDmmpmijGY%Pb{XDMzUNNVupsF4M!-AIuk81+50z`Sf~yp{fdW)*wettH^#TRfcO`oDb-zL-Sqo06^|HLIfQr!pYxivPKwAtR z&!3JL33`@I!{?yH>B`cho;>Od_AwgwVi^Eq0b=O*q9ydFU6DF*v5iu|p3dn~ghNJ) z>w*dMQCKFAT=5Fdp@*BThz&+Yo%$p}qMt4Sc;5qPg$4|(9)DN?oAHvQ%aTHPff$EWA4~Wqg0fhu1a(DSyzh_w^<|$D8%n1UHd{lMKO`V6|uo|QAYx?yugZ` zEZE(kmS0GY`OGW$O{|8^7X^Gv2VC5hOmTSL>l(LSX*Rp@F1ica<9YMF z1zA0mIcV5ZvbqM}bXAQc*OzcHOJdo0fA3FCnv3F6?j4@`{4g^6M2}-~A^xeDB)oth zX3qOIk$poPW7?##q;l$JBscV<^`k!Da(Bgz60LzqT~F|7*Iw};R9!lc;Hgh1&x#+1 z_4p1_rLf;5iAw4L9>{4q^u{IJM-_cFRgEHBfrBOCm>y-eUf=WXit`QlMU-Gs6HxYD z0@xFSW-=f2;B4vK{c`p&fIs-V#K8&$PLm;E(6W1as9^o1J>!~Q-y(|PDY^ygviM7i zp)t>yC*N@8Olw>E(LaagGjDsfwZ7xn@uz>wt5>s9t9x}PzY`h3ysnIs0lg>FR4qU5 z5q0&1Jq=W9f^a**g4W_lUB>B^K%gl7gbUc}FB;JPE*8^+%UnY9K^)w~F)%U@Vv=aO zBUXzK&Gt#bXQb#5*2Uu~VuG?5{yEBe!BdR5EY@r*-u4aG zX-gRFBUtuIDDqyd22%)y2y;BfoWdCa;)Toc`Rk!_-I1*Bb|8S%(#!dpDZus0zWu(& zW(klDaenyPVo=#aT1Bk2Sm)12Lg|V%=SS-YJuDw+r^6_9F1=0y=}xDsY249`Z zr*Mvqa7t59RChJhiYOr+=dUQDZ{ z+iKe{X}vsd5Z<_G9~vQaRL-ANltv)$ z%|L;tfg(Qx@mVnL^?gq<8f!U?OPW4NVD(~f<^zy}Ar`Tl!Cv)|r=+6{%cJ;AqaBBj zq8UI8!bII?I0hScUF#~RC=#r&2#zAhhQ`nkOU;6Q3q56IL;8F-`_B_3HKK!aqK3 z9X7G>g5HOc?+@PmJGUX>_F2rk;(_0@lj(a$ z-Z9@}yRUaMe=7bEFe~F4zq%U#Xv=rrv9CNP1#vH6D0LIKvfb$7QNX@Yz_Sruy3GjG z%v5$PJ#}5t*%a({n3pz;5@`+7LEIoK$_u%GQ*))}%BN1uVfE{h{zQo@ypFHBP zSYOGZ_o9(xMpiYGT;@+g<-`Y#*8ZxQ2-|$hNLa*?pF7OnzWgP0W;Qc%WQ=nz`{sg}_w&kXXsz6+s=Rt9V$A$y9N7r~tR$arMNcB` zPr`C0weDu#O5&EEbmq*JnLQ9=og!QVq+d*t31b+1J8TO>?#K?^-Pyxg6EHwenrT^Zhl(Nm_*_=Wp|c<*+S& z0Q)b#4=uWEv4r)<33DwsZpL`XN(e&=6pNN=&mF!wh?UE@60cU7xuxK70RTR5NX=z#6W*z7o==${da zH5c^{Y(t}q4;cSK=Tid;9|TC|bN>>otUvQEd^{!X)k~uH;by4#5l~(A*M5h%X!UO_ zwAuGr1Of^A@V13m4iZ`dU3wbl_p~)SFJ2c3J+o8$p%_X*vaB3qY=5^?Mpz5OJ04H4 zRs8N~(0SGp{;d7kv##IIdUQGm!aGNvb-wuBIjPh2CcJC*S=T~1`YqCJZin-X&BfJ; z-wb{J=LMK-+Hoh*Y@+bLXf+KSo*yQ4EgR3TxzzPyy2e)Vn4Ug8{Zk!i$TO<_zSDAQ z45QB4fb=c4yP?m)RVdWikMeX^jnNk!D^$ShUKLP^)leSA1Me(edUP89Jv=h4=DV!u+$^`JbM2R! z=XG_mu7+j-w!Uz*jxdsRNhs*!h?hFwWt587GT-&ImRk*`kh6n|9ufS1qb>huQ zZ%NCOZ)PLhMr?G)8!X-i>RQ@6xJwYv7K(!wMcKSgoNGLxc4N>>9@pMv7uIteRptzK zS7!f)3sE6X|CRBeoK+MFscp#?8n13O%;499r>@C^3 zglYx}AOK+;-654O2q$g;WqWfL->hxZPjoG?m?#Qf`Zfew)zROV zoTGVNQKtB(H#O4nGKDAC|57wMH@>WFfM_3n|BwKtPh~gQ75$sP`cSPKB(U{KBFan1 z8*eJ=E;8LC+_@wX1QJ^AF_^}it}aPHK?2H;gw%UPJKTHNz&xrHG*VPp^k~<~5ZQek z7oqTtEem+}e&qh2Z#3){1b0x>&}4LnrdcaC^w)O<5JB<2_r5b;`0T z9^!~;*$)J{_(JDV&{_Pp=5L zO4(SB>eaco~M0V@EDp1vIjL2t=)JizK*3R z1i)G407TUD`NW>(J#p`I{f#5NHg?&QQT7$KInyD)xT%-v!l?aC;F-DNLzIu7U ztNguFbbWF&xKif2OZqPd6ooBvzfpX7i4x3m>bLfPbZGx+bTpFy< zV-R`*9hd+8A>B@~O8^HOq3JT_5c!D$V*nxQh0b_$oYJKrDuzX1SYirjOjS`6Xk%6D z`t@V$-Lt#gr@Q|g?rpyNFTie;82ZY-)HM2yDm3~mpmZEHbZ~&)_u_M?@igFe=sR9Y zb$ISWc?$@yi#xzI?k|pdh`lc~BEU?}a$1 zz3o{sk}U=03(Yp1JW8tg+$J7SH}C+(D;C4^%3sN})iFu)#kY%rBbZ=Oikz0%Bxc(u zD2deT*Uzb!kF_3?tR0S8Fx$^xGktXHo(B`Z1UGn-S9R44P-In<^iimpa}NP~%5PF}TO$&3KYlr7S*q z83nE+pXR!?nr>xz%QnleI58pvv0fU$@?g$^qCLah zUTD5iL;JP<=$NUiNVY(xK=*huQpg(;1WVOh2CFu5|px;b9t>r?GAr4t2*{Hm4%48%K+M z;(6RLb0$?sAQ@+OV7TB`r11&F^cx+CqsHl@e^0Iour8hhj$zH3&jXW#OXf!;d+4AD z51PnzwlQ`Rr?0aqh0yohK3j=th3ijobQ+X$P-0$3_KQHa`bi46Os+(wN{SPX3eBB| zqqZtYfE*(C+jF;j*4cWT-8dGCGCg6Sz?QRrPEapD3uR{tzF+BCDl4ISTgHj{edbE$o*wRP7W1;E7lDWc!bP$D>iWD?NRaf#-in1Pef zgc?bUu~VX?0+s2@;x6ZgA~vo+{5^TTU;cn)$x`zjIL%Kw2`<0_D5!W$c@$>ivg>o>?DbRe zmYX?HxDb%vCIOjQ$#o!{01!(9Zhjtow;)6OPw7daV+^5O=@`(F>TY^cu(;^kHr5U3 zE)3$Q&zCpRFOy37uTOyXNXf*K^bh{F?RiLT@JA^E+BETnNF4TIfss@k$~rXod8)k( z$b}ur86T%_3$}XS zF6kv%HG_*bC~V%g7|f0AUd}G+q?z6ltNCJv6j-vJe$(~{4BcMtF-iLn9Hz`=oTx8Z zR1h6=ScTRP4Hfq2kC#pFdAMI0Iw0rYkdUM2bk9Iv_$r7grO?72-`{3kk7Jsr z?qzy%eaz3lDenVfP4n$;*IJyRszaf%*5<935nr1gA0gJs9AOht3eAPwN$Uo(VUvme z&BZ4;KO38cO=Z?LmntTGHoqG7D*tQqlhd3V)(K&+OB7lvtdchDtHRz?`?plNa&9_~ zhD|ruw$%LoNq4>rfE0I`5NBL$Vj_vN;~yC!`q3osXlEH>jk|aMVWZ7uDV?C7T`etj zBI`Ub08D`~xCrSq_zoFZES5cIx{zTDurp4am)psWB+6L1)y0XwW!|n zv^%nQ`_9$9MK!#ZwIdgAw%LV`>~-xg=wmxs$NtB+Gym&Cdk3^3*Jd^C#uBFstfX(aP<2pEb5S-p-Ehob!U-gyS?syVC=^{QfK`1!{3JEdSU4 z&^`7)z9#>CcJA*7d#6bDbuvo>y8mdE4g%QLlYV6CTs-b3-1K^7p;w(i-BsIM?>Q0h zfgyY9yR(tboQ&1?x`aD>e}vsr8Q=MMjPc1No`666_n%zIM3q*H0ctAPV918U;X@K+BQ9QD`0RFD=4 z@S{Qr)@`g-9atRQQA;i3dLD1o@rI280Fqt=j2vlKvuy4-Ueh9j^y@Yz>OVZ)=r?OPmmuH3U-4;OT{Z-=_B5^F`fp|)3`lJ++(ybb)SIK{E#|j08vkOr3YZ^S-@myrBP)6aOlzy&@HYMXQ<41TL`EmL(S=(%*-S>OBLC~2o)QB#@#oSI@(A1`%$O z7Xgs+1Wd93MEo2O)&u%ZW<9JAe`kzxzyU|p3=}ElZES$Z4#zQ!ou+gtY^e$LrVyU)p=#O49@(S(*S$Ay66y+=~sIPg0m zL88knk~CH=di42&1jQa0m!?ssw)@*dc1-pcGx70KtmT9-}`SS;2%He z1cB|6af&q?kVW!0S&TFHO&E5%1HDo}%6{}tDrdk zHc6k`-1qL}#-~z^iv&z>appec{CrE(Cm((yL{Uog1hmAdz1v$Z@vBX_m&UJ00Oo4a{vIsxH20jjah2S9cS-O@fuPP33V#*`n zC6u`ohw02S9R;KDC4L8tPU9lIdzpDAr5UCb*mG&E-=QDNDpm)ty0QaRw_>NIqSVM> zo{3V;hBD^Q@ZPKvOkwdcXI93VgI6jmTpL910ckSxlAnj9OO;#RDz9-Ww7wE)oSXWd z|9+=w`H*Je{f+9ES6sD>3jcme>(i_@R7!;vvebegU@H8?QAN;fW&Yc+9MY%!wEl=(gdlbTv7|=%&Bmq& z)yeuSRwR&$HAt1lqFB|WGum`=v*|QPGex#p->mt})n=oFW|OLBv(aXY&1Nf(78}_X zJF}LvS6j}#^O>b0hTJ%Lid&o$THN!loYpR{nuK4zKuZYswDwG@=x60=n) zO&5whk;B1zylSIZ$WcyXmo`wfT|}R($7V}l9*ttoQ(=qWMU$EEwNlJCH?HB9wsxHp z9Pz10OuOHOdh(JhbVmhquU)LMefT$~9LcprI*$Pfy#=eA_oK_rfJ!0E*k-5suH?om z(L5R=u^3ZCL%c6}w)R_;L!dC)9w--U@A-{Bxqs=!FP?mk6Z^6!Ca;=Jcy^qmccjz0 z?)8EOXq!169u(TdF z_Y$Q9q#f;ot^_Keo}}L{4ma~tKMxZv+wkuzOJcWMRSyf zaKE-vpIUyOG^qdle&1vQyV1PeTro?T8@v5rzpMDbbb^ze8+(@mPZ-E$l5un@7hN0Rdt=P}?Z*QW93olHrpgt5 zWIYkZ)or6c9NYz^|91)lF9|oVlVfRMx}MVq9_QKCbz;W>Hz0L1p`PMbS6Pi zOm7UjByJjM*FD8CGR1oO=o0%-BC@;3?kJqipLW40T}@Nz#f>~vROE9T>->%V5V8%Dxg~ zDS7rvEM2bh>VJzo@Nou`s3xC@L-m@EoxUb}GHLX=*=xhwXiE!#l7!sU9m52^c$NO5 z3v%9QS@457FpeBIQ5jDNL`JzKbhj%*BB=m^jY&OA5nh19mx0(kBYYLPUX@j{o8YTtz8c(aH2p2;zSMC{`b zu}lrvl6~~%WR*N7W6{{&jWq)BN@fB2-1sJU;CvY)h%>IRepa3yWBwn;X`a^oZu5gl z)>Wi-u3S`k6^uh2xM|JmPver%XYv?%(f%%hSut|=S6A*3Qw;hWgnkhit;)j#<7oII$>L_4! zu;YYMro9)064Iu}<{^>P@mt~Ozkfe$B_eaI-&X~{*Rru(RdXH(0nQA=mw@yY70a=D zB=YD08LxxdzK&9AKt1`3dauJHfsYV&8xC$dQ*E(&8qeEyN&Aw!l1t!iC}Ya8M+t3? zNvGSQS0Hq1Hy(VVWX8Sf(uzL_?td>r)Sjc1XXw~#&|vC_5mR43nuGp z8=%(Ruuz)8oGI$E=o^EQ=|C6sspd6+`AMLsL$UC`SDS=xkTB}bG}L;jPak=Z#Nn=s zj!#BjPez8+qAx?ygLL6xYr_}#As&>7k%NdToe66YS@-M~-#w$`F1lv7`m`JUtLMbO zKp8L?fO_EU({NVraaSc#mHK!-hLwE-UgR78;_WVpAhD6e_vsU2wWcgr$nfzaB>WzA zoafQn8*Ba-sU3IyWuK*@1|yLp;_zFX!1?-DH<_-p-Cq{|efgvywqA=~N=B}JUEnGF zJYjay;JO4r7DsZ8qZK}v42=EIyU-bd25|!$|JJ@dLa*>_xY{~@R+f~Cko0YoJf_G1 zJCcD@6Y8~tut2G|1ybRS4p-hRE90fxEWc}^WXk51ii%`7)NBMAlwnHbCweN@)5KLQ zxmF01`l|BT=H0UkIsP0mUMa8BHQn1(v5h_V$oNT9IadI+-#khMEn7${oO z?D>H>+J@nG&-bnW{cUFi`P@aH_B+9xY(n$=x8K)@wZDeOo;W2`XYu6-4Bt*i>?$j6 zTv7xTD>f$}YsQ5+mc|G7k^YQHePWErwAbE`<&r48lYU=I$cvxNe^|cyahKaX zp%B(-h3w}3)B9oP^7f_CI`lvaa@YzLV1-Oju${6O58(!u6Ms&u5VU%Jj;A19T-Ark zp7v1|gJ(_!pf%nN@Vw7+4uv2`5ZG)M=3smi zXZi2UGEYGD?9Z7VYDhSC3p9sga}H6d3AO-QS31)4?OG#jQ|bP= zu9M24e{*|6S&!Rco{Ktt*I3o*o_yUigHaq>=_>Wf1j8gk-}Q~z4@Y+a2!=`qbExi+ zp=d%qvY_9W_^=qksHgc3vPboRi@j*6({wSi8BjqH_{V^IHbAU5BnBb-v zd1s!3Hj)g*jkIY#FX2>e_vA6g$2(su{`BZwTzp4k#h2FkjX6$W0G7&t0A&;Dqstq; z{RO7}ki7zxR~VV`m^;DW8aqnNO%goEoSF;2bf|Fa?gI5gKmu3pvd|9$o^tKTHYKv? zF-m7K^S3hbvjD`$hI-B={Kt=TZjrn<96f%o5cRoO51{%b0QK@2_R>Q*v7-E2ssQ4& z*1A){gF{bV#7m`N5rmGwr}^s@@kb3M0=^iT5fhEDt>lLJiEpFk>Eesow(}9_u|D?e zuP}x`<|bq=HbGZ<87er!_#S`+n&`P->1U^x_|Hg z4q!&}##ZXx@!+d(EGGh@S2UV$l;5D`dcPXxWveuZtZmG%^qQ8axH$37Ydwh=4ubp0 ztOtEJ0}6EIKDPAgO6PUt_Z$fUbKE*|?=J@b{Hyi)tcK-{$e^bWSBiy#x@t3Jeq8(+ zj_oZmU2xZm^PabT^}RqRc<3YcF-M5uXb07I*5|Rn`G1G&fp;I#ifnQRfbhysTtGDl z7NDzd&FP)tlrJW*Xndd2`v3Gc)t)qeH>v-T+p7M5xy}7?JX8-;W*sf- zxm3?Q!yAee*Ao>4l(Z=+mdH!gger&F7+Z!fAR&lA#S&pzTrocW*I67{P4)P-V_-3A zIGf1-zFKpxgvMR&c4H{8hs4gXY-x^{k6z@OiZm8BWS^d~-+sTAFXe&$?n_IA>jJ`M>?q2i_hG+g~1x{tZ`gc2NJ)-RB#F#nqM^On-Bjqpns zVey7)jcF2N|A(o!3~Ta#z`n1IF-E$LkY;pugTOYrQ>3N4OG0!3lM+S<2#9oxln97A zQbG|B5s)qsun_@+o8SL_j^}yaZ7+5l*Nbh}b)4VN`8kgbZm7jP|MTfJsx$mOIvteu zHJK6E_g_OZd}V}(>ap~Tk<_6Z=_EDJz%H{9@hvuNZ`u}rZ=i?by%RHk1KZ-)TWCpb z1T0UFN^E8=br<_zV&`cK!rsbi6+%iM4zPp)X0~W>MsGerxFVcNB=nkiO#2U=uR^#> z)OO&QN}`ahoWAVmc;J1*H$ZHvi4uBtkt1FeD6?+fQ)4fM2LnY;2u)E48^~xtqGm6VRgV9rZ2Occ@S4Iu&+w*FI zeWWLH0?PzBryWwdsvYNV`+Hoh$E7IGx~I2l+jdqfO9#sScA6it@9L-t2?MEa|uN8uUu{pm1o!?L?O?kt;nDKA}I?XdRj%F}(Hu*BuxD_?SzQ@*E!C4EX+1QksN zZ|F<`&pA{?4yEBl^FUistb;I9ENx1dfQO$a`*W_HR$EgP0E6(uG~A8AA`~i6wF4m3 z3eolT1|fpbfQ0*)bnX;&#*yKmbXzzsAv2HH`S``b;x`kLRGz?Z(J@8G$XoaRc>CRO zpyFO20zzn*(5?p!%3=WHJIjK287FLkL#J~9GyqRet@-D);sB&K;}gf`V3o8|$>ufC z^oei+Df0f`16A=TA;tvC4n_op(}+_C+}WZ`>`*waLp&1$3|st-fmw53=*@*^N`T5T z*^*Ce_Dp&G$33lIes*=IVK%WJ3>LvSNHzNf7gr_g0kiYvm?CJJ3QQ96m8u{gO+P4d z)T%$=&LlL!zy_nbi1s8Yb-Q1%jeAtb&+W%>@o2^>`r9MTzv|Z(I-5G@Vjl-=xkqpn zG*|Gd)|-C%Z2M+$F=*^4TfF>%P9Y`T0KX`GY_lP2Uwo&qq$|Gi=GGXn?I;x#}`y zEt1L|B;s#+9-q=AS5@l5vs~hgy5T&I##Uqv1H~9hT@HHAWck~0A@D%1!A-?T$&1F>!s4i}(Ur>j_R9;S$ zKBr4%PpKh7tuTn#8W>zeblxiYQSoN!BjVaMYU&hK=&hp^>YADzXn!k2e`7(1dU7O!hcb^ zTG$nGj$t`Ow}L>+$%D&%S1yes0}%9d*l6LuL*1*YyD#`+zUApGuRptf@5Sv?*caz$ zY^-W%8HN*JqCW_9 z4$^Y~Jn(azzE3ezy}krnR?>6)zAwQUi}J<_Bz=~m_q)Km>1W}k>GJ?9)6vf#!T z+I3tT#M<=@#4ZfT1k=-qsYB{j6u1G!A>G%uV1ZEzqa7Gd2AwegkY7Rcy7M#&@RSF? zb*#A51<~D5H~^J{QNsaF_8}2CP6w^$Z1=Ri>QZgu5Ug{!OmH~t0Q36yh}p{#oA>e} z-cNb@F#LIXZ#MN}&GZwRUm(2o7rD|Qus*?2wV)_;yRIRpG2Xg6rD7KhBjXL^K#ahM z8U&CoqEQ&7QJmKbKUDJZHt09ucTks8tsesLBuG<05|JJKD?Iq1uX9vgo@G^wfa zn8i3ZQ^&G%ENW0OCR5K+X&`>dq+H4@fn{7=5q)8r0EgrBt;TDj)eMvjli%R1)lv;m zp!{PBe95GR1t+T3&(a5CW5H3y^;A#*P%Eg2XxwWzq<4J`C8TeDFkzI5mV!!QQ8u_>oOZ!-V@-*{2VY) zPnE7OJ8ewnv$pfO2zLCwq`H`YhSRRLd)_PlV7-R-uX>vG?&)EF2I<^SG@m8v%pdeb zQdw0`m~R{!_e77+51Ga{VP6MZz^Kt@L&+AzV}c3RtljA>S~i|Y)e{8Bp#DUJI}U(3;5bw9!$Ez$f2K~9#!gFL>mOnS zwk>M~4LhrcLSLGKYF>*|4sAnTN7{f!aByWq*7sN9&(#utpt6 zZ*{&k?|<3Sg{nX}=<;@_DXYZ5lFb}M(B4=2oi7h4ng_%=YXh?-oWF2}7lg3lxV^4K zek$o|mX261Nm9OY^MS0CD}N}Xde~ok!@pOO&F7Cc?AWjbTK2iv5(&~}hx7*y8BZND zUpd@fcF6kVkp0(z%;=cIG|{j@?wiJ+-Q`#7fBmAPty2%0rM5w`;!zhPwP8M{SW4J=aaN;{dfR4_%*9nEs4Wd%5Hh0K#0KW6FXfYOr+{dsr;s+~i?`9|96yb+dum5a-kW9G4P`fq^~&9OxAUdv-qDpJ_*F3K zYW~-iLa_^uoU|^}t{_CkJvg=ZZt=2~BT8>_m1oKQ)0I0#;yFf33dSqF4sMFp`30zy zZ_A?K@&=0a>RA!sUTU@WW0{uDU^NftUa*Gqq>vJ}Q-2A=PnOdT&q*vEM{R#<&*S7f z8?ZnW^x9V?#iDgy31IDSZ8)bWmKw*QLiE;hAQgcHPS|Ct>-5+GkQ2R1~R(&*V}6Bbh*ZKOs=QrTL$X2Ca%2NtDk!M5`$L;;F46o^K7 zpysY;|wU4KHH1myDacXqFe+ z;(^r^HMhDqY1dOWmM9{!g-rFdu&2F}bK$6*+G#2sPU12uPw8t~N??3Xgr{7|^2uWN zI3vf2Vdm>Komeoq=fQBFwAr?QHPpM3cC1{gnUymy9_#MDdzE+zl?=&@q)rPQdU80- z;BpNZQ!4d$ew<1xv&3Ry>#2b0_<30@)i9E%P+lhK;diY799PEVV3cJPPNkYgZQ^vB zq_S(4`{6^y2TcM0W%XS$g&|72%A~jY78G~m+3n1g)Fc&HtXd`xio1kmj3x^mb0iCV z^fuW^Exz#~?z2$7cAASEP`d$3gu|%flFj{ni0m{j958Pf>6=n&L;NjLIQ3c7G3otu zp!43|!%&!OC@i$Trtt=fL_uNvYfgXq0PfHZdEcDN>953-gQ39l+Vp^F^53NNAf{lT zo_hjM)53`h_pS5_nMsnwDA6tX3owFWDtx54>b0qRX5WLCL7x%~BsW4CmX6BO5TEuuVDq(^3sBk# z5nP?t=fSB@8}WSWp|H15z!>Wfv?6rGZ?9-)P8JCe=Rfb?C_AwKJm?>ocMSEe-y}{! zI;NA&VbCZFbbgrc>@KxqQL!HycCIcb74bQI%=-5)j0*Pkw*USaF^cmR^;hIp zj|$E+4tjP(VgS>E1D&7k%o~4YlaQm*Zfyjk1pszvV=BqAb%&wB1DL7}@}(lJv5A}( zgo7A7cfavkmVzBp#w;dpi!teUi;Cqy9O@wzZnb81Bz5MMI`loU zn^Ecuet3gf>I;YZ^yez=)Q{ho?c%7+$c#4$qg!NxD{wav2*{HAo(L}Xf^$|bguDnO znV?fN$yuT|8SC$UA1jAM$5p%Ga@F5OX@?;tUVN8){hc^PP`e)mj3#U7-0K{VdXXM| z4B`;eIb5K8RJ;&C0|jn;uhVOwcaWo2I4LBezhG~2o{8(k0QKKZzJR24Xbp{O+bp2o zsba+A;=ftt1hv#UrV{bEN>2zoJ=6kg&(0~n%?x`$EW4qOucs6anh zJn9bo%mE#*{AwB=v?F3kBn8x_k6Wj(X~U56Ibd`S6*nLOs|1swI>KotVnmznTV`mr zSUE2us>(nCW}Ltz5uPWUlP}tkPnvSC9?LYWSemtn0dOG+wP2op>WQMv#{#seVX*SM zMOV)9h;c%GX!Qw7+=rapvDQ4H0OFUdto!N=MTTp{wd0QtCprEn@7WUcFz%&cJhxSU z(1pUJ!n-6j?pAu7?(eI#nDVsV>^#QTitWsbI>t;-8WuC=ZJx(pHV6A;uXk*gSXViWP+SZDqbC? z;F$Yjw0evT$yYoTJ~}3MJK5b&&=JK6XS2U@YesfgD@;+JXu}pCCl$UH*s{vH`-`5u zn>3ahB2kpNH|(cBf5;=wGBc)F}H1L>m5i zuliTms)Z2E#d5YbtE<-lh6}K%2H8$=(nKIXYI~ALpURS1PG5l=?;vFP+yfT0)kaxBKDNJmK* zSI~`j4%aceXALjP64NQ7eAl`+K9tmnJUW#CwM|L{;9m$7H9Z8%UsObjcqHGCgLn^2 zg`9xoV2_Y7{?m^ZVi#APmQWpAY2q#O0)QBFFzwmz$Vvg-0rpl}KqH13@$Ap%{V+W< zai5%=cc=!TJgC|jJfG3fyIRg8a;fbFACbF#R4}iP&3pR#QCcyu`{tec{S!x=C-8Os zBI|=cj^8j*Z0CbzFUbwmx=n|djXVl{NNm2IDRx}OAq<`Lx;5o{(T|(J(UQ}T%TGS+Ctv1Bz}w6SY4ud zoAkK->RDm6%6qDwB&#>V92Sq4*T7T1Fiug7=*RSTyk$Vmh&5Ba<;npojt>c;DytkP z=9IaN$HJ)~>OwsWQ`v>4-x^*4j~D@i-XZcAANhk>ON6Z!pgxp9{Am!ed1LIJ+C z0BBeMZoKwN;2OJ8Y;8DK-LNOh%sutIi`Sbf=Yd){&JR!Z;?6suVG|OkrZUdu2Sz0X z5JKoZ_DBlEz*`$a<^&|<;o{YBAVG1APBe~8S0EEag_v8*WPL=Ow^CAvprN#_{kdmS z2tYD;9ph%y^JYpeO)dZ26YG!3O`a063uj~PIhGQA3JN@IGh#QM(UpZFh@8P0Y`Gp; zV!YnWP<{k*DnaQB$c~ax}{l!{DV%8^pH~m%Q@C7CC4ur>;D<`S}Bb|aGJ`l9&uKzv2@2+A?H;{ ztZnK(g1Zf-noHnSs$e_uReRC%`o=%S^FxwdRvJ&M2!1zJ;Jd~2P!v3ed5Liv zfw;xA#h$M53eWW2Mto>CL`@i{(z7r_47V%Yl9~`#b42<&)ELr$ik_N;!>C>k2vow8 z_5E$MTJ(k*9o|Y@F`i-cMpp`5d9{b(&SCJrbOEpj-NFErOixr*9$UkvV6wsZbFfM) zfk(=tpHNiE=zE8TgYx$e_=4K>OIah+Hz$!sjw7=d05z}7s|6Ki?Q)8pFEdBEtn_6v z%+|H*KC&&f=SYCX4pBvD)<8XW{wOC%>O*0QmOw5{`FlRUNMGkF*3vUf}+C*M+N^Tg@0weODbnj*Ct zSyV=`yb3uP47FD^3fLtT8UF9Nz-H^$a^V>hx!ce51O+zMOs8iMIje|@f; zw+pIR+MH!AZYcO!dY8-j{nNgKc6*axG_B5S_7cI{dyp^#6kyce`L$N!SO5{(Y*8iyA)&S#` zR(jQgN_&8O+~qD!n|hwDKgGp4V$b>`vP*n4Wogha{U+J+s$90E>f)ASSE5qi_ict4 zLmKH63Krn#=Yhr=lV2*IbQULbbe2;;yJ$dflv%Yu`a5C%{W&)btK5rJ#x+Agw6TRl ztYbyIl>N|OPd0g4eY%X4hWc+2uY(nuQb$+XR7*ApKI`$>qwC5~_hk@VvbPHlH$T~c zkw^-sFn$;X@upKQ$nkDDHbA8XvlcT`KghVMweS4pRF<`jzvSbpBt1F(2N-oEw25Qe zD?aw^D*N^9`NpJr?GL4Q`o~$aH{9GYbjl`}Z7>f^M#d1H>u1R}EccjfDa+;?O*DDP zr*kq9_OCa(@(358pTm0d-&yxl4YQoHnLnR4c=xlArzkPcnY>jCKt`x`Rk5 zlzX~LdV>;MxjCS#pmSl*5Oz1-7-Hf6!U07+r!VY4RQ9G~`1Dq$94zHP$S)Az2?54baouQANHGcK+%Zn!h;tucLfzi_&C0qg;%TZbb(5S;4>0S~0aI#R)d zS!10U>%n5O&SK-i>a@=4>A@Db&KBu$F=728!Gk@0ojuosqj;U8(u1>co%6f9f7?3O zfCu+@h3j=R&kX>apGt2y;twDZrst^ z*fSS!MsN7N8Wtv;W&ZxlE8>~W{F2P1d;nMys83|_!>5^T59Neu*{2vAY_3yi7+ zNnXb6f(n79#_nF1wB0dI#ySbPSl>;ZT59YFwO%E)u0^#jr_h1pmb3q+T4Xg#ftPVL zo|lDN*9-^DVlGX3X;r4s!6=M}ARak1{OhKUO|>z^TcKD_uuX6JNF8!Zs6&YF?`4sb1)Wqz2E1!N^z&mLP5~nM$lctMUg2TE5ogO zj^mX_2^ul_X3!K;4ygUPU3}k%0nQAOKw>%6s{MbZ%VmF;4y%ZU1 zZL!-ybo?OW8V`2?-}zby3`gxVGUFm z;vU+F=JeB3!pn~c(8UeNaaPgjVWdJqa9}EwAQEr06@OY2Z?WT_B_d{U=If)enb__d zukDMO5sjX!ORN=5oU8PZc$0YKa|Ky-{j;~)il|ED2JW+HJe|Lv%&ymfZ?Z~7FdYsG z8~0nN_4tF<5TS&I*4$LtkcHvE;gkz&0M*wWz@?wINMAdDFymQ$WG-lF-S2Y`MQlwh zYX;EH-NtMIkm&P~%K_$H5Q7zPjSdYz0I0b^=ife9rr(W`72=$q$6}qHeL&(KFRt+e z|G21Eq&PnCqYq&>-^AM&d{r<~{H9H-H|=_u4&lykjo-dsObtG*8T45Jk-yiO~@38O%`1C85p zAy71myHTEm<6s}5H9Ega|H9sns>OaK#o~S=0e8W^Md01ST;KR-4aF+m z_LF=Au8xSd$=J5eee5{;(Cj8evM#;2`z55&k{kSmegu7F{dAFpK9s z?6*tTpJ764llw2pQH5v+r-Ol>Vt@-3f`Cy#uzq0_<2x`;zKk+6<#iDqd~+o*AYHsb zq-lIk>Sfn~f>Z5_uDT_Xly9%paC;N6{a{FB-_OExeWcl6Wq)b1Ie%ntB}=?`L+X{x z-uCIi&IU^Hm9H;E!dDHTI`3WxdCka#;M(huaM07mCL|8W;0~aaBz@Tjw8?le*!U|> z0pCA>Ks1`ORE7qJmMW&uyWkgBw*2gHfJ5WnPW8%6;Dhl-F|g=}!I#Qn$JGL;@OnI0hvGtv~Q7E5-i%(j_uRy9gA9l?vkoG3B=aKWdS?7?yM0 z$1x6&mIai*{748pnv@<#O175;(^u6UWrf{w3)@uLUF(u#YWi|&@_B_W;)E@T>3MU9 z!RHceeXG-#4UOGNx~j5`FDxbZ{}p?63*1I{;{gWDVx=TVvXRNQdCC_9VNbqT1aOv9 z*9Pu6NtAlHQ|b~T>_xo5@IapOuktdl=w3*}UxyD%gpU4uFoc!$j||)3YzthJdXx1K z?%doV@_pGvVI?FmAwy_xI1?4!MA(J%$pj7X4^{EX5Yz#jvHQ3T??T@>95 zOOI$@tc7NRb(O%hr76$8Hw8XxV}u1uzWIhO#?ZiUlhty-S9ye_BEMqPXG9su@Y^s` z8|w8Qqw4pY2JQUV4(2>5fr&5lM6r#QFDFM|bqzY$nYRn*w$%+ki$3`=nH717zMS<( z80}OQE38qH3fJq|tmwPTmW=br$1xN>P&fmT9Hi@BsGqf5Qu?KZ2->|Hj!Q=Iy^9s2Ya92lR_Mi2cI<#+DAQ- z^pCbTzyU-3jN}+cB1rc-K(~aZZzX_d@qije&n4R6=9j{a=#|Q7v;7A~k9XQ*n=eer zT@~DQv;C4V5Y5aN+k&lLj{JVO@zeNz@J}`s!@7r?(4Ri^F~IduMJ-T_g($DWPwiW6 zj5_7za{#Ro&gQAWK3Z@|XVx$BJjCvmz_vC%2Vie#1bX9Hfq(5T% z5x(ZTk1Xl*c&-$|^>{r?$+IKabidB~;RgtpzniV9>O^Bc-Q#w972k|&Cjqf3+AWr~ zE%aVz-Xdp$7pL&_$CzI(svdMLt18t#O}{MZcNMO59ImL|u>2k`>K#j8%d&ZhnE0YO z_#;m7c<*i{LRONbIi#F}KV56QF6u-x8V?l6P@EJ1oAq>7=+LzU0YC$zXix z#7XI!`15APz0LTt{gbjE>I~ll?^7j|(`yvc{3_=|O+e0*1Ec9?64+_?YoMl}l$5BPIx z%A<&}|J>3_tewj#mx=}-(I)nAovQz?X{(bq_v>*0tfh7d51&$ZW{^6c_{#1Qc1N!` zK~gB0DP4)i-yPD#P{g#N-~Ch?npc{7H>=wpC!T-g!V>jUQ~Xoe-;tMpJN-{4EyoL? zTuY-kkExik50qRg`+<>!4~qVAH9i+eI~V{({V#1D2lMm>wYcjPhF+dq_s7oyhf4Hl zVSlISwT%BCcQp33B4qeSsdy3i^IvrUp7gfRWu!?zH`r`0+i{rNn8BHW%|N_#>M>fM^{&4_*}c0ne+q9ow* zOuzKm&g%VxDYhl6OO>>S!$miC>a^#mAON0QRitV0b zrybt+6ut(piBK)lO)8+WQ3kiUwFpxFqm+siV1-{%G&oNreG8_oV0FM@7zXWnb-u`n zLsgmHRf#!e3AAglZLoioz#3%#z_};(=P7HjLz~xFfpQ{S$Ra+kAgR)mWLXEMo}uMd zd5rF~ocU^j9Ho)P`A1!DKayjW_E8@p^Mf3equ6ud+U zf=VzQ_`0+8yFgWFOTX{FXCd$gAo|LZ){Z_yJjPw(V879Zuk{%ZXP=$y`mws!`$0NU)A)YO!ai^lR~ediu)vbmAfaro(Bu=XEAuQ&e7mwyL_NP#vyo^g6ZFI3ql> z#;P2-__g`ALbP>i`KA!<5$o&XHU*rGfcnMd6}t4;MH#K%?Gkx^r2I9^={8;q00$AX zcW(SsM=iXANv+rpZD%o zuDKie!e#fA%dB_Uf952-v(Z?j==$25nQx_Mx%b;9Dph=ogep5L&Ak7b#H}J_ZC}JJ})bLaCwn4JK0F z>8B4{N%-V-CII(D-2cX}j;sH;Mbt@Zji}pRe86?EI$r997BpbC^3oLyy&Ig!F}nuk zIc)cL*=0^fj6S3b&!S&%xqK#AOwX!dhqF_I0}nHJfbh$JYn#7JO6uLlgkSmW^7`?m z{q|x7HUzgJYyt$$3p8KsYKxHt?ox(W8rVBm?$k2sDWw;-e6Ky@NalvNUc`JACd+ZA zi*rbtRE?;S6*aa!plS1c5UhO0cAB|j+AWY;KSt*tf{bU`LMhHGM!1OSQ_Hyu)U`FC z4_{u!bD(b>W5{|N41jb(jw`Y%({c%>pcQO#oQWJF*a@h1yU$_kmC4^KuqgAPvZL-> zHIlUFRw*lC+irhWX`w;x2Mn~<|MF|)q{GGki)BfXZFufC;{V06Yy$NJmOZO|gi+Oo ze4gLoE%G|c*$1^TM~f)7-I%;J3ZOl$_=cZkHxuVb7bIfrdw9T1h4%xoz3F%XPd9ytKvw$`s<+>&nh!29jE+`_;eacG4Bhd9<; zo$RXiz`=)o^wFg}E|Cb+f`!Blm$xxj`VtHt2J7B`&)}Y&(mV)UxSOIUmMeSi=ofuY z*0(sbz%wWrWNAS9jC@s_(k5@j7LCmt$PvD&;%B!+I;PV46TUNtk7C*0$>(9_?BrYi zv32*eehxPtVQ)w3CN~Ngi0)3)dd9KxN=V@vP0&?+a6N8`2@hB3#@u5WL5V1HUR`?6 z`9TpjU?|E-jj%QS7S~yjJe(Q-E#2**^qj;wLJXm=O!Kz-z_oN->yx*a^F(-)MO}E* zsz9CDkiAF)W-o_PnP!Z#dI8Veyb!}XZGb=4gMY2CkaJg43rAiY7PtSF?%2%6)VaZo zj~jQt)CsrYOy<1rpCU(Z$En=6&UiU~P-dx>{s%_?S%fm325ITsiacFU?*Wzew?5k_ zoB|^^TO;il@IKPcKHOw@^5q~?ehgY*P%&b%%xTG2^*P66gvzKiEs`;!6b9UnTabWZ z{fzI_K7^P=+KE|9#W@bMuA+CguMceAov*5oEI6zdcm3FO>WI>{HSmmltYW4c2;bEx zEZ^p0jjGsZb;{9~7YXh$P)*@jt}m?#a1C-^O(5P|Q*yK8Z(3*4n0z?$vo*~%*z4No z;s03yax7V>xF)w8mf9LzLxQeyz4yn*cJ(ZWgx%y?y0a47J?0u3b)RdQz*^h~gCg{km( zNZjq4s&45D+q>ft^_7U$>%bNtnu7hm0I)~^?1YBX9hLe1{ib~3$;*JxwjeYLhM59k zka8ei7_bXQ;e{DI@umNvzV+k(p}vN?+uOjyli3Eh7*Zh`;B*-Me^mh8@kn0*LbdHM zEgaCGTC=)SFWbKtQTTgl{dUX)u5)~s{0;pdzMKE|z~=ue{fB02EOV^Jy@-1M+0q!8 z`qm2XkaU$$I(~w7;K%VBlQ)r?L)7RowtsEF5>#l>7g;`ns!cpUhhVG-N<` zdWe#FEn$zNb}wf-EWZ$V;V&JWO3{jne;c450I{P1gGn*&aEW{z?D+NBx!u$opaMX9 zGT~HSR!~1HX^n6c(w!c%1}h>!Y6Pea*4ZGH^e8lxvmc^Fp$5UB0c6^eDcX+n$y^Go z9SxAm#S^9^+EL)|gY;$qGzM3_MVrcnAf)IX=ZS z{)Nn-*$R0%Nmo|M*x*TzEqC%p!|%v3e1jvH<)NB#v^WcBBomT|+hy3ePd+!2kpfN-_`Y^j7Ap}|7ms4rNv_~o!g$kJ6+BG2#hK{*!_ zBR;oUfH^A=ad?S947;H_>s!x@NjV%P);lKdkje;1Y%8QD0utQ6T`TGVRt*9vV;lswypI@Y8#8g#fzJEW63Ul#rv(V5~tX`G&!i$FHh^b)( zNF5TI27>ac{AFcD2M0SCtjgr%sEM)G+S;O_5jHK2n4EmW)y={FinXemyp0w1%a@Pt z?#^>_Q$9XdwJ#}pxm$hvwx@&9kW-L!b2in{QInJw3JCBjD#|M_FTQaj{!Rh;{rlOF z0EZ_}9{G9O`g+;~`d;?DYSH(!YjE({*w|2Th+pFM*oO}rnwn~DY|V@fFNFm;I@lX3 z>S$P6nUF|0FK^d{g*TB=!BVmUg)b$;a>XtOixf;qR=k%^?UGPX7r0(6u45(`k}aCq zCwcF!6nQ{0>$#-36n|2!xUq@e?W|N$G5-37%DDI_a!v-u!M5vhTWxLmn>Vj6U$)%d zUL7AFj*pKv4f0DG8SWo=GCea96C19tujA@$=Hy@;#ObVZV;!Z z-N{+TMw-^wqUBX(hKHZOd^r+OS$^5h;Q8|&2S=NqKk??_!Oah9RSmJ>;eqD{6a1@} znwqkfR!TA5k2TGWHa6nDiwc~a?F_x$vAWv&Zcet=dRH9OoE=SkJgmt%wyCKWBQN?B zoRy(a`9YGCNCXAOxib+^9+lZECn)aXl<6)IeWtbTl|O z?{;OC^Hq1v$K5_r(fSDqM!I@B0X}v(ys5O3jI|}!&|dHPbAK%xb8|NnZ6l2n_apbVDtNTvP-m6U=YS3#6BV?+%fzL##|duNVN90EWKBF z^JW6<+;|V;Hfk;JC&HK|Tt-_f25-Uh(4|IgmBShAih)a`ZB;L_QM&2e#_iQ(d1AJW zE@SOA6NPd*Gh$-;9=9`VJ@=NzI_h5EM-%CIOgihQtBmp_lT`~dsC-a& z>-u0Sv!vTgwZ^L4Y=s8QZHasR=>orkk z{-o>EdkL-(ZpwRV96Mh)J)cEi_qWZ=7^z271Fsmirm9TuTRc5o=fCJNAFueL_t%%T z!HhG$)hI_pV>nj+)9<|+TF<5sQEU-*Jz&n z!d-5selzRR(e7q88Y*5LqRtSom186lu*hVh@^LHA%0PTO-_AZ@`;LQe!*+p7?8ogw zcar!{k#|AB&Rzf7hMnTzu8%t<;UnT7N~7ljKHQ7jY4}if{pjO|`#7k?Zh10Wpud4A zcfNnLs8X*#Cd+_R9FwbIVqFE*a$>7Zcj_h6Q~+Po_3|Y&;C19cI&@8aOXFT+UHjSI z$BNFm#>+WW@{U$8YD~(Ip0Gl46S`L=nIEGXKMXQZL?om1dEwC;=su@tDZR19#!p?? zr!(+}9s&Ie=w9o6vM^12;`F1CJCvzTq07!W_-#5N*~iB_L9^X-%M%DF%{NoT6R-GK zazCKggzWo=)oXnQC(@Sa_L1pqk?ek%-waV|vtQB7wvccPkJsT>`yRREubAfv-rq2M zn$eL%N?r>ox;u#c$T3*V*SF%3;mqk#CeW*?mrmyl@Ho{s!Q9O8w?QqBl&>&~uz=ql zHXDd@B}eN{B=d9`A%$3^0261uL$r@zbS(C&vvACL*FtC${i-;>3mf5l_UTtvd{y+1 zX@2UJ937ep%}0ho%*oxDblF)|$CyGT3^sA_@2?$~(^3{bc^_@-O)hhpJB?tz*`G$) z9K46Ur7vV^1^^=zC^pPBnbU;-U}fe-NE2i3M{5ujW$#kWKaIETs?UYzSoLMzZc-b+ zZkh&Ox*|S;tu4ui#d*}HxSdN)HOd@mo#dP%m=^N^Rha z93nT42q--(e>jUhS)vz%dV~IkWa^bmR!g210&rTHXllgBM(UR{6(X5GvXy_ymKPwg zKTEqV9V&Yrc9E`Kis(WXHsm&9i5eYVKdx|q>|;Nhwd(?xf-}Gvcca-yWGNXTXEv|R zz8$e1RIgrOOv&6twGUY~Fh?L%$?GBwN11}i)^#w)D%uTUlshIRXu^`#*Z!z4^WXx1 zUNk$;iLc>3xhbR&e3bWsr%@&Zc{|yxCKxMkLN28w-(NHlbNiX=NcX|IlN%;^d2GUs z&DTK_Tq}D^TvTuJMbVI1twQ10OJAl`$hD|ir8?tRflfb)=U>*UJRW-$n((7!jiFBM zh4Ex$@sHA7vpS7;W0SGHKkj|ath@BVwqdXHwaSAfQ|*V5XObU4@YWEohEhqOybrpVB7o7ml z?`_wXQ8qVAQh0NFHs4T{)xx5w!*;knUr zg?zgxb%!5Nbki+Mup2bH%22gnz0pH3%R%LAjkGj#0Xowa!cq4mEpQ&@O>|54*b8z%T_NuBCt_Xe*@1Eigpo8I$(|W_;P42v}nYS?vS=b{8^J zJAy}TTzF)j8b&Lyl-O^Idi@9{MQyLX40aD{OE!wGYFfy(`h}VsZov)(kvHriPbkAi z38J3w38;sUr2{@=U(#!NcbOX5G@ejWWi{+bH&HYpO z@KKakoG6%L(He`|H~*~9YgY1?gcQVlGD(oVo&zVw@S{6N&EAZ|nFWQ0?H<4yjx^y& zP45xT2v-BEz|FEu2maP=qip&{_{HaH!W>>bl2=`n&VS{HKVyZK~S@2W-0JpRZRz{qTwGwf z#?kiB2(E#!(D9zQAm7#yMuY2_SrBa98Edw_jj*?@seLAr+USZr$Yv>-@~z$WOZWov5}Zd?)V{C$T+Z zq^L9f)rirnv+q&2`u+&$8jg)KZpdsKu?=Cbm`S#69+HawOtXxowbOt9K%~T@ls>1= z@y+~H*$`S}J?TXsX&&89mFcjPOX@?~CtRrFFEsIa#;NF4U#|u46whU6Nl#Z<*Qu10>Ru6Od zT84kZ5J{HqSCNY)TZ>TZr*^?t5i5m|U!&u6`+uF`rd)_rRL{_IDGNX|Rh44#WNctj#!($|4J(3j$FsH&{ zYL14Jnt*k(h043ju@INkKxfP3KrqJK%LjHam$2FbIAb-sdpK>=B-rAOI%pdRO;cUsC zqJ#00cYwRrduUXo6xxtzF)8$H%)#tP`(0+c9c0X|RYJG4m0DmTJI@_IHoTY>QH?j{ z_*QCBs>_Re$d<98bkVIv>VP~@G(|U>a$P8yOcsn7Z@t7a z?x%(zxoeNDa}5xNWUqd+V4PKX?05zsHST#H^Sy*5USH#cjEF$h~7B ztq;gAyGVv)Irn)4L!S2TsNmwf{hwR*w*A?0>*0QH5uM%4R38znQCB6RJZ0X<9v5Y6 zY&cK1J(+rEK2BU7c?|L%E>Xy5HSQ?>e3-R6v$d-uF;` zM4&AQt@2zrz6+5L>4G9e{n_f$;BTmV zFN=w11>Gu+h4U(3`{|G^%zxL;8qbh`fbPMWB~qxZD;yBIj*jrN$4He!Ly&}k4t2)s z9)D{2>lfD(6Z$JTL1q$8H!p3$sr}iR9qylq8?VQg3Uc!O6@~L@z^Ue$b?5-hDSY=a z{DcOn+naEfhIoB32_RPqPFD-%RB!)cj`M~mR2L^f3~-%QF|$?L#rd@OWTA>Y7$%u6 z0)NXJK5{o#9AAs6$mRH^5Nd*aSx`scMub}vP&vhN-;CpGt6j(L7VFji%PDL~M>of>ORB&VVq8+#j@7aLnn8(TS> z+BKRwotnB5n!1addV8Dt7Mq@(Hc>d62Q-?8oSH`xnn#P9$9tP!E;dh|HcxRrn9+DJ z`+opwK$gE+t=4+2*qW`{x~<&Wt={^r;2N&tIum*du2%E49yRbBAi;#kb8$qfA^@|Q0 zd7&~Y!}zcQQL(KOjIolju2PIJft@HJu^d6NYf)Dys}w7%7A@O}y{Q)U=@8E-U3~vk zNdv>Muv%dIbcpx46XM7_>0^#S0glfGR8e8HC-Ji=p|oqZ6i)jWQTvH+336XiIrPX9 z)1sVY5ok=i6<>=KVXLzuL8WXJsqVE9SM;b8u}@svAf$SbD*=!NA-7*aw@yihu{aeb zs}Kpf5oh(Xy#z#$vz}$4G%Yz2FgZ7G+Y^S16%g7Gk9(F5fm#!&rWet-6*0Lip}7UY zxlGm(m+P22#}OyFGhKBMRr?TV>pX+Qw$WIX9ZC^aNf5V*mF#&CTPd`N`V+8Q5v?1$ zKG+$TNfGd6RunN{MX3-6ws#}95X$R(2QiKTGrI!uyTJRr1j>{*TM*Qnw+#PLyAA=B z716v6fnU}O0LP0EY%9Kg#=QhVzNMAE2}npWd$bNwor3!iW@{0DiL*{r6?R!WNZSx@ zX%tIVz#qY=kXTe`2@&1Kz$LN21I!R_xxWz064;x;34tH{i9>fKi({K-6JePOfti^J z0Nd8MU*WYtv6nrl5RqoJ4}ob3L1~_Qa%`r%3xUH)A(=D05*YlFWY=q$yFSqPv{+$0 zD7+Gp#KKr@B%x!mv}4|jWowAL7Y-yr_R$jk(=K!b5ieUt!Rt$t{GKYu5g8Pw5aB^j>Jl?M5>hN0Eoa3_@yZ<` zs5ti>{o6&qQlk!`p)e7-2En1ZOAtrOyAN?g2g=16s+1I}%#Fdzh?f!P7!t7L%*a!?Kj21VV$UO1Jx2F~^8hWGGz(}Ecdg0DJ5u+oK&JFRuSRv0H zp?U!NH&z-G{Y(+{l1HoPrC%zd4`I$hp?+A36iZ6N7V*z1n#v5}#{>bCO?^XQ z(I1h~3qfxUtq_Zu5FDKq&$Z9oLdz{dr=y%Wg=(nKyvX6J5q|$_cMSokL?OrB7vz2p{YIc$zzzq z2ti{AdJ$OdbzV`{Z?+a=os0epg*N!-~Xo1&uT_$h6*M9xiUy-VS zJ=la@*oJ-Bh@IGqz1WQ1*pB_!kR92QJ=v69*_M6Tn4Q_0z1f`I*`EE`pdH$xJ=&yQ z+NOQlsGZuXz1pnZ+OGZDupQg7J=?Th+qQk%xSiX&z1zIq+rItVz#ZJeJ>0}y+{S&} z$erBEz1+;*+|K>n&>h{<4J8#z7DJ32eLWOtJ>Ai<%838ioZRgudd+PNcW#W_TH*a4 zw_F;P9Bbyy6($DW>Ae*QcU7zy&U%{=tcbD_Yqu$Zw*%qdOcmEbu}}KD5XpGm^KDl_ z5zQH~x)%YuqGb@HOA^_A6~4R>5WZRsQIQC-;iS9ZJwd+fdk`gl5xA?qL#PlZjuG<9 z5G`J}$qT>B`(hBiUmT{q4Wz>N$N zdCAV$h!QLI;Xo1JW{INC=nx?8rWW?&@W080#I&2_ed+8OH_T?7Y4d7gSSq({$yzkjNet z+`JROtP|UI1flQ! z&Jp+w5&j+$^gI;s+!Y1S5Cbm|0sjyUe_QoC5D)JV2~Y1Zv6v&B5#@sMK9TVVQPKbq z(%*v-AU`8MA@XlZqy*uA7U9tbf$|pb5mf)J7c*~c9TC+Uanud5=KJ0gIFAuE{}4gn zU8xaUY4g-Q9rH!;)%Wh!Cc*Tv=kz)O^(irh9vcD6qpWiJ3-~s;n0b1coA?+;@S6o(O9>E1g==mz)S{fnY zMNHuZq5N%&5ROmog%P>HFJm0(5Pbh$5{^INeii+JZ>r|Yb7mv{#7hx7{t-(qyivA) z?ptNfM`AG!zC}D-^OX?gPkhh|zZ*Od0Fev8K!ODg9z>Y1L_&rQ9TxOpkdeVG4*>|Y zm=MvQj1M~ikPw35$B+&&7MxhHqQ!_E`2bkR5J|^^Bt!i8!e!dNLcf;X$S1+BNw7AjW505+a zeQ>$K&;UlO<(*yocJAH1e+NJCG}2HFdrFWn1c0f8&%-NBsGeaC#6R96wSPaO`=t5x zXY@}g{*a>YuKL=l@hJ>10$@WLe*`i}Azx&WKl#Gzkf7u&a_>g)MD$J) zf}H%$3x=cwGRLE^%!o?uxI9YBD5s=J%puQ2Gfg$uEQp_|IOym=4l`P*Js}s;p`cgT zH0YGSs{6}N%FN`GEkgf=vZEvi0(2m-3}SCV?s`%$Plliz z2t`O!({9tFP^GHV`$Bcl)ktNvh}EPjjWkzXcO5bQVqE0YK46MJ$b= z33!dF8~`GNHX&)L4f5L8o|Q~n2Z^mVTye)ONJj1URMA+x%#ErG_8gj&pxE350F;8F zLy9A$kOe>si`eZ*->3vOh+lvEdY37J^)vV>faA5Q;mhzfYGIlrb_igLEGD;Ok3XhS zLU5I8q#!t@gG$|3aNUk#0A4ak-GXA0Vkuye0zon^n7a9(oEvf(W}|j)@MpYarpoB| zdOk{NwupXeI*|XTrdmZu91P_I#4-)<>esmP(V@qjpK6v4WC%$;& zk4HXv<(Fr^dFP*pK6>e=r@ngYug5-n?YHN?d+)yoKYa1WC%^pCPe4C?^pWEGv-a5v zobmVBT9SQU>vt4?^Y<5@<*G^LUjPL-K;HSUJBOMI0ONwd-!v$5E7A@Ft@6OjNDwI$ zB!~qGxIzEj8IU^~Jd0&O7?lxjr-V;AVVY9dlofK&g|G8qR6>Eb5J9MH4$+_DX2=^} z%+DY@#7hq)1H=~=5q7rPj{l%G5MK!ii4R#wD5TYqCrZXOMHxuK0I-;)ED-=r{0mpm zwX07nf4@|4Hy9Il!(6_@SjGoq|Y2^ZOr zDuVwcANrYJ%cAb z8E2&yk!eA8N|O^1GN(xiDmSeXRs9Tzs)p)mR#ErUr&QA+w89JkF~}6KE=65jb6Z(2 zgGB&HVKZ>Fh+3IqD_DIM0Mo>aS9v4XkywSVS_SNTymcS0{%EjCVb(zon;mr_>#G0W z$%)b87g)+xmO&Wn&QBlO5RPF6v#@E?K;t7@C9^|x@X)ZyQyPfF9DYw^ElSR80 zmC1TWy9nu|LB9K=zvZgC0I=I%PEgA8a(BE-X)ku=J74JYfn~*uodaaE3L!VGeiL!yg85h($bN5|`M- zCq{9KRlH&rzs`q0YH6-sT#y(qWyYqfaf@}lV;=X|$JO%J$Qm+MHkFXb%p?EuQh&VU z(^05nO2!_PnLOq0<@k11Zpe+Pyk(xkH7Z&*h%Mh39=*~8%!47bL2AQRgm{_DZ}!+H z|D&kzIwh$Y*{C87!sdbSnUoT-Bthy-6*(uwsYki9MK&rPJO+9oFKMVz2+1|L4ca_# z#&rH1G)}u99jT<*MLM%t`q)UPx_`Q^!v$qC!xnWvx9e3T-J*tj=}LoX@G% z+9_o&%wG=O5h>5w*tPTXr3Zo@^=J_xcqR6lrfZR8GctqsbT)ySGVNO)+uP^dk%pF1 z?8>BeSL_m0e82f^c9U<_<1Q3zrSfjc$h+I^#<%H&Wto$8B+&ri_C^0A)$hstTRX!R zb-op@J5?1pBWQI788Y#Ocl>b`r^;##vTuSowj)9w*J2q$@`i}q zA|_`Fx0<4Igp^~~9>@9Vpv~%RAEXmdn1p%^&L`W(rL;8pdC&ncblgbg=mwd9|B9Y- zs#mU^LCc5_OGc1>BiAAzHxPGWdNZ3- z>@Ih{_ucP*m-UeWKX}3y-tdP{DciwfCdNrl}^!v5->t#>**c+8<N9Fmh8EK@c%dCO0G-V@*LNka+;|)?Nz%Oz% z{yQnXt0a|p2#w3Xp4vaEP`ZTONhO@K=aAKsTjek z*g1pnD)+!9@X#g{VkQBx3{E?~jPOC;lZ+W`!BcucsfaLLhgvOve^1FUC2q^umkv%7|uc3Wl5vhdi5tq{#n@w8)FZ$c)s;jpRstJ22k($c_}r zktE5IG|7`h$&^&dm1N15bjg>5$(WSMnWV{@w8@*q$(*FT^*IQhv<%ln2#M6mq2wK~ zsJ0p+%A_2h7>q)tbjsX0N)ybCrhLk(%Rdv#xuijm2*c0tKO)o=hHxbFBM7ETz&;Z*KZ{DBuuG&sKw6^9 z#RRYLkU4l83#6DOuWEyU%%k{Br}zQ3 z?9A8X4%ghvWy3aJ8>)A52)%^O-7K6SltTZ6xJ!#rz;Nr4{}@Q#M9$2pG5!e7K;jdA zVZr2-&Vm!dsf5L%f~V=!PRb!gP68_)z*&;`vr-(%1Rh0q9<&DyJD0<6-*ixhLThNjs?>OAFOq|69Qon@S zETbaum|L`)+=H-Ns@T`ZgcJnrjynT63v|1VAVSea2q>iqNNWqE2#TbbQj;~zk{}4e z%&WtUz`lXprK`ZBP~HEBKwXDGo8N^A!E^}WT?*4hh*Xmo;$;Zhb&27XG^H?JwxC&S zLx~4u2;|iXay(nxMTpjA2tZ2AWPM&t!pxfRUPFsgN*Wc9NMGm8-9mA->--MDEL?)n zrP45@`&E(ieT_l0Ot$df6{OfvOTiCXipf+xOX&#y6)p!HT89YWrf^`-SlM9fi}$cJ z#h{5+qErq>M8}ZeXM+~)^^7MlVG^c^=y2SwY6^M_&{1U5s%WN)L(K)2iWmj}Z_-Vb z+74hEO;-%eRe6%rBnVwYj>%}@-?Y8VP*bD;I~|5hr+{JGm|-7YVclqm8-6h-GoCA~ zj5xJZd|C=^^qBu1&I~LpV4KNCPi;anh9K(&iP{_p01}ol4qJ=JS9d}PV`Ma@Fyn#{ z<2TOZDQ;rcOp|y`p+KIBJjFdUc9e8ukaPSObSyV<8BeGnPBrF^FjcBGwBQ8(j6%I6 zn%HE?Amz!pV5zXiOsh(NTAJ#1Q$x*Sgq)ToG5=$om! z5l$S!i%4bLnYj;N79n4viam7YX~shc;Svvubmmwb=W?D5q9Ta7O=rrWXLe-bkNuo&j>CjlX8<9bj0+E$YUX3ST!Rpa ze3oG*teXENE)nkVDq-f-%IHqDg|>`_-h*%rj+SGoh%d2Xh-!`sj;Na_ zl>QHwR*_wlXp^Q9oBNNUTh)RPW{22mhe*|<;M}TtPbBe-pKgeuK8T<`3Z{1Ef@mM7 zHVUME2udDe#cYV8eh8&jtZ88isXhunZV;-z53;rjuC5BR<_)bL2)2n>A&I(!_PKuIQnRfgDW#F!V+N(x+Uh{C?r_N`CF-ocJ=?4~H@ zAF1q0Mu^Kcip-{p!#)VWu57;s?8bRosz@|TxQ<;#nt=Qjgy_|T_|-;+5ZBHKDXt3J z9*F5o7~rL-UY-SwrI>FgwF-sg zmAzY5|Hj?S*l!L@i1lWwra(}KUe`zY0k#&MvdPZ|Hyw}lFV41bi##$kpl}6C?+yp? z5EtZwTz-I2s_^nsm%yIe~6ufJy$)NVCxbHN9^C|0bUOXyMP75Hn2oMfos2Jcc{a*>B zA5y2OiaqzF(C!eb_l%feUUBp7=;jma^l@j9rmW(mc;Yzjh#D4Kqu^mR8K(arMvbdB z+#A@Bfktz&Wt@aV~^h@Ic7FE4taC3hLkN2(-_8S&F+J?d_k6&Z^Zy zjxBJ`4$mG|?MUo;Q3~s?3R_Blv2Tj#uea4nZEHs{|vg;syu+0tXT- zXz+)@gbEFUSm^NKLM{*=BAf`Ip~D>p`B?1e5rD*wG(M7?h_U3yS0PXmRQa%kKq(Gg zX57f~ra+hgWIjxT^Jhnz4@X*TM34hZMnIP`ZR+$X)TmOYQmtzB=>%Q?l3eWyaS4D> z7Lh2-y45QH4+|YNJ>gX?+M90U;)F}mELXY<$?BcTccBxUc>Dhn1S^&>;>3yeQ-Nvu;gN(#}x_9&L z?fW;%yugPOFK+xe^5n{wGjHzvIrQk#r&F(P{W|vS+P8D>?)^LX@Z!glFK_-l`t<78 zvv2SIJ^c9c=hLrm|33cw`uFqi@Bcr50SY)Efdv|PAc6@hxFCZKI`|-j5lT4WbHW7( z7IUXixFLrfdiWuTA&NNScoLvzVpp;)h9ZeAy7;1aES4wZZZyJpBaS(`$d`o%@n~6( zEd7XBD0WF@ijGMtx#VdbuoTijN(DDjkPA5}*()AZX=VRHPzogFWD_tsCYfbMWh4M# z3X}yzx!{DzA3!-N!Ae}x`H-6hsR;m^5TOYXM>;9=S4VT!=}?{t!D&zi3jH~dpd^K6 z(4=~rc`2ruI%K0l7#h??WrXfU5U3q_nh>XqiCQX9saAzZLVjpEE3KEh+ErjG0_77# zyjFES7lq$wob`9ExG09 z7;ZVj*Uy8y5Y5xO@4BaoYi8N`pd{rXE`y%WLa(Y%ojOj5v(9bE9H|2q8e z!wFX>@oBDV*wnWWYrHXnNRCU{5CG`Vna91AY|;OfH!;jH%Pmt_4gj#O2D8kFiP;s+ zqH*TXTywenGtdT3B9InL#aqz9RSgY5(Rv|UQk*C)-Sk68e-w4lS!<2sNmUVLRo9ed zd{fv`dHIvDTdTcxfscB`)#e)~I_$B_K0EET z+kQLlx$ADGCs%Pp&^ADg)6q3_(SjBU&g{NC^SBw~6cYf%(~&B4U2}~x0JPFP_uXHI z4FIF`RlQ!nXx~-w-mAYpaM1(c{zT-{W&Z#6?As5tHsQ?UP&iEO^FC!FAix0*&>(XO z#6#Q?2x^psfDS}VGtMFq`4OZU5iAH3;75=QD#U^dp&vxXaXf=?@O~!Llsf)55C#r} z7!xsvLb5@SVc5eo6-Y=r5&}Na4DTVL7zhO^xU7L>Zy_2KA^@0G5D=o|hX!%h38Uzu zVF2YA-++huY-{7{JnxrIP(0S$ss(1`$;#y~zm5Oz$&jA#^y8VSNggWLlmP9%pw zrsoiNNU@I-LIwa-2$B6gL>~egAM)dZ<$lKELvJ)YsLFVBOMmq8vjHGE|&H;<{u9p=BVFg@` z`xN!E7Z&cNizW>sztckGwF=>{L*fB}Z+aw^%z{8`2ZCJdGMGNIJ>)=s>5*Itgr5{H zNH6bMn@?f}jT3!{YUTe&3n$_N8r1d3hy_yO6D!0Ssx1g$3*tsxG&dmxZZMANGui&V z1HBW0Y(jnE{us9FG57R01zz^mr_@PK%>S52EcPuyCpUzILBT#Pj+?d z5PbaPf5asW8OVSVH8Y0IO}X($ngM5$$QdWqqlFp_@?&mDM=~3I~1hFJ@>Nra3RkOO) zu6{MFV=e1h)4JBSzBR6Mt?OO$y4Sw`HL!y%>|qnT*v3A#fxZ?KhwO|cNJ2KWtqTgi zRRw09p;)xDeY*cWRR-JI{&wh|jgmYhpxovzH@MRcYdR=I20uxey5k)=xJiZHD6zl; z@||xsv;Y7w07{}9LN|F69CQfb2}|?IRS)rY!6W`Sqx@t57Iy&vV(=@8b3AAx z%ZvqD;D#9h#cu+Ec*j$IxR9X)26lME9GqgcldHVum|F%@)Nls?wBad98wkp6E_4_r zp;A{ddP(H4@U8@X=uQ{W38Hp00IGCGILz8-mmy67n^W{3bcuI@-LlC&fDz8}-?Skn976Q4Ty18+k5x0L@SS1L#T$N&>vz_%8^`o~EjK@{ra zggkm6juZ$DyTVX{%=ISYw?6uT^I(=(5sOnfKSavk5w{vdpy|K=Y5)n`L_!3zpdN@K zkrzZr*hko(LEINX4BtTP9z;l*KrkQx7$E*lU}?bBJ*B~i`cnKf?n3q5}AylZ9MU28IAfN+!f^kV8B&MQXte;j9 zphaAmg?XSr)L?0#qAK2EU+fq#dE!D0SwRRHEG>oXL4++f5CA+ME+!*dgqcO4+D(|* zVjvJsIHEFEV_XOtp}FCqJ;v`SqBVXaZ*(63SR!NG5H*4$I;uwZ{a-q^<9bxUsk#57 zJkBFM)}uY%BR=M%KJFtw_M<=kBR~eEKn^597NkK&oXH*JKq}i#I7G9dgt#>Z;sHPj zP@F;<TB;iEUU1UIVTg7;!NOnX-k_5S(o4K(B1^~dljHF9W2D>GMyHy3ez2rUG z8&u#VN#L8lJpjM?+f@YILJ*!!D&)bjgvBWw!$pO|HB3=HB>-4t#aW$VbR<+3-^XD_ z$c>!0IOSDdCEJmN%fVb+%p3q%N&Mk$`@f=9w&05W9uP?EMNjpX+mEBmGJCF@+2pt4I^R*gD~7g?cH8tM30r}1uk@% zbs8H4B8DeOXGhQ>d}LF3GFS;JhU-lPd+No4y(erPAOH9d05JwK8V~?15KfU{1l$)Y z5YRsfkn{;qLd<7DD9{o9MDxwrFGLWf6@)5`19_HEFl0~(8H5KJk^B6@@IVoMY7O?S z5JB+bK!_t&4Mg}g1`EoeLCD`k^n!yrgpC@bMbIcq%-K-Q*(g~=Qjz}z5;2)TY*P}b zmMD61c?{#gX_DTMze(jp0j7Ak}*Iz^Zcgd#%cdl>|KB9x&5fCEYrLF^C$ z4nz^2=R!Cj06^fNDh3PsnX28yD7oiA_*pW@QJrRu1quWP){=`B1P4Z8Cw?F>2@^2^ zfOkH`2rfjT6+{U}XhL{nLi{H|?CKm&1S0}K75eB$K+{9CR;DS0H8tx;z*#tvDg>-) zI+ZHKz+gRDVm*BXEe-@60zeK5#12kG6=rH3QlUcpU=Yp~vQGa5u(IoV2_XOw;X?4L zx?07B(h)&enO{MJN0G!vO@yCe6aYXgwoc0uy5UDuDfmHQSPew3_C=RI1h9HUeXd|* z91lmy&zx=0K;)N`E(F3BmPeFq!qQ3>W)&9-M7SCR7~<4e6+~IhURMlL#X7{rI)oTb z#Fa9|loR8)nhPt!>VyqMEE+_HxdtK@MBdVDT%fC`Dy~DQ z?voY7NChn^3B)KdZ62xZK%^L(nwUZ~uCvx|%jjZ{k%TYK(2#wrRAA>sbS{_@qx|)P zBknBm`s^`w1(GHN@{^ zn-fDNNKUawHnB&XBuXa0P4I$=TJbH$q(RK2N37*QxCv>h5*QbrPC7*!djwDF+fV-6 zRDAIoo8D30gi=;TXqfRGqn=bE<;7(jRs28||FP3$#IV9i)vwvGRFDktU%c8IY=5sD+FERC`r)uLin{o*fm}+ghF=&vNo_( z3xouc^!py8e4#{P69ixXD9KWALJa>YRUGLwZ3UB#Y+6%Al#;}hE`-BU#REUYT;(-N z1g~VIHbHFXK-4pA;{;*@fH5FI1Qvud;lylvRQS1uDnzm^_3k00X zZb%sfAAL4c-064qpX6R{pT4L=1Zq>*Usg9F8K|dm#iuZ+wnZqa>7qmggm+Yo_iL** z{f%x!Gq6GERG5xJ=uSj@6E*-Ws--3dr#8i>nk)c}sz5M-|4R2#oGJjMss=(tt184F z#%faxQ!#bKtv-Z#3xqeSHauH|uj;l(c(_w^IDemDk19lM-*#>n1dUd;Lqv8#gt$d0 z>#`Op%2v}rd0z!_Re57$xd;NlmMerpi*zHZczr8&L6jdq)#^vc_*I~=K-jpy3IxEi#J~=y(s1%Xo#KKbTOj$(C;zUm21W-G~0&h3~1TSC@1W+kdqU-lfEc%I8^i8ZdZlj`k zzw1Pd?xQ=!{Ob5aBo{k)wnFeY03>*-|2a#n>_D*NLv-Op6uMl@EJ4&PPCPcfGL!g> z`HbszN5~aK@OrSLguA9Uup2~~({`G-xIirXKzKStfcjG~FFAGWs&~cF4%TK*ME<(^ zL_BREU3W)JEeXFYYjpp*ipF8P0|lcud!{eMptkunN9=D?uzEpAueg6i z+nReH-o%8@Ez~N80rKrbNc(T|tVJ|DPN0ItcLc=8wn6}INiY*!+2VZ}7hG9{nqK~Szo_FJ8C|YXMJA^1MFiO}Wm^(xN-{!rBM zgbbI&0Z)bkp~c`&ME3IrK-Km_U<1%M#r8)lPV{pH|3sZZ|6^>hHj)MiH$@;E*`ngc z{0l_=vp?gEa0MFcPuw#=002NuU_pZi5hhf)kYPiI2t6qz_>f{nix)9wv`9;1M~@## z0ATl#WJ!}JQKnS6l4VPmFJZ=%Ig@5hn;p$9IC$)4&xW3a`4kFNXi=j_ktS8Tlxb6^ zPoYMYI@SN?32gxIQ56~}f>xAVy@nM#mTXzGXVIoryOwQRw{PLbl{=SiUAuSj=GD8G zZ(qNE0S6X5m~dgkhY=@MyqIxg$B!XLmOPnqWy_Z_XV$!#b7#+=L5CJSnsjN?r%|U? zy_$7v*RNs6mOYzxZQHkT=hnTOcW>Xnfd>~poOp5LF=-r>!m!3iQ^%o4mp+}kO;Ao| zmaD#IVRp^GFW>ULYx?3`s1}#1mC&1SJ;$h@m6( z1mgdLq8(7I(Z(Bt(;+MiT5w|qlsdst$RUX&afps!u;Yz6ifq!!CvRNlBsJ~;pp5|r zfKtmXxx_7rAZY@#BRN2X>69+fOjFImPSBz#KQ3a?MUv9EsDm}}%u~;}zOcznfrj|= zAs*NGF{K>#OjOZD*HZ7up2V~W4us;+s1qnAIa0!e{$SM8PeDDZ&Yu40@FG0+>+c{g zLT%O6S8F=~)>&z-wIxJt%~jW3@uHE}Ux5u)*kOq+*4Sf_O;*`unQhkDXQ7Q&+G(k+ z*4k^a%~soOx$V~5Z@~>$+;Pb**W7c_O;_Eb(plHtcX6wr0*5qt2@_8us#hUQ4C?>t zAXaRW7cqfP^4B1MRWi6BgpnG@qHAvAXeJVzf!AW6_}zsiO*ARxp`aY%x1f28$`~z< zJwD0glSqcCWt31Ri3tGWu}GDhuDM1T09v`&XSifpsU3{)RcIHD`^7gRp@KGRXqK8b zDFUTmn!0F{p6==9o_^t3CWwCyyCrU1%9^5=ry@HovrSTaFt$6I834H{+WMxhdloxe zZNiy{p>R&xXKtlXDM{9TBZ$D5f)ZC4fW#3-rE!BNPaLMh19_JyTlA-o+LM`G%&*IQV11TScHVjeO_p==Bq#-61dH)tD*dO@2d zkuy@HA^QPnx1sovrx0Caq<#l+8vr(kkN|3gfBs_#054L&l^_iO=NN@RDA*ARw!~o$ z5k*0u2R(s|2mm`<2;D>o01_I6dm8y5LYybQT@9lo$M}Xr&{vfB2}FMeSp`MTVGxj& zWQYL3A4z)H5LYNCuaa>3X5poX?3WOX2so6r{A;U!>0|4c7h~NJjq7Q-aWFhnD z2MqzhzJ|ENC5aFS?*zgPScvf;{L&WyE(n0AF$9wW!3IL2ctnaYtRQg1@v7@VXCGeH@= zqlnOs0s)&q{PV`>9i*E8_~t?Ih!JrDU_Jnto*+YowyOXj9|BPy0PfikdMxsW3CSS< zC<%afq@`9gc?sMq}L$N?Ib}D^2?TDgu4QO( zNQxmMkS;Fd%mqoaL&W~~iBlKy!DpcH(V;@d%=Q7vEZeio4?!eC=HU)VO7a_!{OwU>QCy9TVic@A$Xv%^3le#S{C(*Q zakoGs^2_3qeu1DDi0D^x#)d4L>h>+kj>B$tjRU}`&WNEwM&j|bYYEzyW=K{(A~;r$ z#otiL977=N5dd@S*o}r(eH@%tIrVZXN2!48NW)Awq(`ED%p}V&qVy z0cipUXF>;If+%?71!u5UtO6^7kR@QD7sP9_7y>MABeja~3863wrEm(VunMj43b8N? zwQvi$unWEL3&Ai9#c&MCunf)c4AC$R)o=~j5Hx5v0-orgIA_*Mv5gpMGC6NpDBO&->5-|~84x}YEQ6my$ zK^~w%9t0znp%hEeBL=Y`HYF2Tv0FBz4m09ILZl?-P#|itB9@>Pbun91-hspU&*B2qGfOlFZA z$q`!GPy(eQ2*prHVj0~r9~Z?@d;%OPVp0yGQZOPH9-<2n zQ6CX(6GAZsD;GB0g{d16SvvMYDCA*5`LR+BUfqMU&5A?j$@wo)K?Dz*TCwyN?V0!cR8kdQi!A>vXY ztZdp0!jZPkAxcguim5NS$so=toU#WY%E>I-a?uQ;ofs23^-!J!qMq={o*v@lY}21e zP9QeTBnk=ul&~WjZy+23=`!#|cg)Hn(u!pmr?CW-iB`h;RzgETNFY$lAXbYZh|C~rv>pDDeXgjiy{!ra0)^yf5Lo>;_v>lC1h|xuQVaxi^nJ;JrUx` z*vlcZ)JVJVzc@2VGlIZKbRn8_xEAc(HZLPYCd5+ArLx2$=2Rw9vq(KlAdpPSmMlT# z=*IvxM<>)ZbqqKULM*k8Ov$jy3IfYAV#}1&%iaRdNP-nKbyLSeEE}TGKH^6eO*zM@ z(H!**X;UC3t4G%X>f^CspkAz;)X?ldE6^(EAjzKAU&n$sjIbnF0t_SEQ9 z1M%4kN!tH1v)T?xA+l{d0ifFi0yBN$9P%n#%?;oTVpmN9TeB4w&d((rE=&dDI89X{ z&@~}0ZZt`CgaDx95>p@~6Is77RduU7DMIC1M&%5G<>(?;rvmDvZbk*d>I4Go8nq%2 z7626XA-+x_#LghdE?9%gUgL1>1jzsAZy7&AGd+q(Ky`K1d$p&o3$t57Stygw@nE5E% z6c~Kxcr!z72%Ua{L7<>cTen>Qz3_mKodLwpKLSn_?ws-g&O7h?>AXY18%PlmNMUt{ z-b(SWLeNEiAiHAV)t^EBs369!Aa>SZNh<|`pLawH0{STqExO zj3`nR6IkHG|BMVPh$!ibp4{OT=L0YWK^QBq1}KKfxRNu$$=r;hEb2hU1JO$nQsi-@ zWVCzRKkvD3-PN?>jjIHlDBeGfNXmDP_!>b<4&e&v9netT@&bssRc* zUP|@KlyuezMpqyWFOJ@oj;0dI<{FVYz?)VHSYXAkS@Yr{V&s672SJprgp_NnFeW$! zA1p?;3cxTxsplO5DI}wbqgX%B^xt6@<;!Rj;P|kW{F!9-@KF=sKp~P*!h4^e3>wV@ znCjvM*^q&wa;;u*s3m08696s1>@Kz#`f3`Q0ZNt~Dk*0QG~oVtH?O)4FS00?arN4e z8=eZz5MGGqFAAY0hZ1Q3Ans~%^(w$4-Xy0-1^3pXXH7)5+_Dit#;Ei1sU3eXC_BGOxp(58O0#h5)vspU*V;|#nkDj>71EQ)~nSHpPN zuI?zte(1_OWCb+A?|(1A1P(m>YDE{g#T(8Jm@BHe7cEp>kSh7=iYbCj>f&)02TY}1 zIAJ|6N2MNRDpCBawxYLT+_mBQYD0&LMC-4Vu3wFhs~f+tHI4rgCD>+9sx;^AG-cT| zzg-tuo_i z;y=~YmHq)fN#rNV0VM&SB>t16c#`~1lG)kS-99w*f~0kl-+1}nv0y{~-CyDA* zRFWl`og`Sls#988oTPPFi=p5;{f2_8fNwgY(WkWK|f8Isfa{d)q^)>2CwVeeoyI`-=Q`^|sM zPLf4RGCN6NCrLcDGS>+I}u z)3HQb`kJFn5r(&P?1F9j`#t}WJI%}u|G_&+Y-dta5`o}rbw6f&!k+|rmX=w6`4X$6 zeUpTSlCVz_>Y1Bs-u~3pGg(+xMYgfY$+z~Qm9>evg#rntL0FlQY+4fYNisg|?3MKm zZn(Ot_4c~^r}~=QzNL)j%NY?5$P#wdBJ5pa2u2uphL{#zE*?tj37imDhFR#k$N`2RZ=)WIikA1Pq)Us+Ibi^u9c zk^hMW?fi^x4Y(E4dRmDbyLxc{`L9=+)fIozCnt_WDCj^a%}dQM_N z$8y9!P;b;e*!zbCjowKq(9S0ptGOF-_-_`}sNXjPAi3XUu3>iT;^)6v(4R3Wg)Rq& z?`B`VBvyUs34I5@qJZAG4-%@|N}!`*;x+grFS3ncvh04BD8Us}oW%Jr7Ie%7w1XAM z_o|NJE3ezZOLUIe;iX1I-lxeed%aIr`p+!rZYG-L-z;eTZnnYyhy{IQCB2ZxfeI1C z3}}U@Fnw_Hmo-m91uiLPy2i5PekjJU;Fl_a7J*=D&Ymulc;Ft!93QqCWo!uCD=@*} z9D$62kq;nnGrEz85j{6RJWs=>T1tUsI>~vqucvR6{9#WHjB@ zFxSEz6qwn@wA5>kFXCeI*Y6>Z^Lskvac#GRrg<5BHRY%$Gf<$z`M77_5?Ct3;9!^8 z#UyG6e$J-cXdZ`^mit`IgGeus(aD*Wdq1bWlLJo?uwaP=nFtxM@Byd0jXN5_t6)ZT9e$CHp%TACgMvMhmJJ z+fb4PesZ|NM{a>5FhTnH=9d%RkQq*92d2fs=G|5VO4056yz|vGN-gV%dypmOW`ntv zt2cHJ{yYt%_ocF0_#s5f+8jrmF}BwSJPHAm_()3vl{aZx$S==jktajGILIy=Vt ze)wNtnL^}$PGLzCF@XB@zb5Yy6iN!sGTY7Ij|E-ou)ctKzpvU};*O9*f-KXgS+)9d z@No+jkK-$LGBwLJ#TzqUwMK5Lh@%Op-J8e(+B^4RHb&6Ln$eyZ)z1@F&+Y}ji`K~U zzkq&|F_$vDZ~T2_boR|IwY+xn2jF;&35#Qho6;Ihd=gY|1#HC7w!7ZTeAEw4e;dtqPfn;ZiR#+w}Wiu zLU+B<@b-8QlNwQ|Ps3QT1j5a>)rKp;bhLzX-Xn5=nj`oJp_BvhIAzg0`$KC|*?7Eg z@UAx`f`w8mSc2wA4oW2alE;_;4nDv~sIp>$ftBR`<7Jz*;KX3}D&X2CI*_;(YtDDihY*LE37uDC(LJ(BM0T@{5%C_t)4H- z%;Z&U)-k%8jYu%h;z!Ak(c7QB)~I!>M|wBtP`v6-bereZRMWAb4_>NvV;0nPa7G>B zvYxa68~CUjQHv_zr`&mo>WD-ARXn)<@4oH`?Zh}%DeJW)u#zb%j)NjQiGO!NAVF~K zRzz>sgq!da5p9Wm{y@sgUdzFEqv7Q9vd#vEW-ooJt7vWh>=nrZqQTP&FSlMZ7gJ}QuX zZeXueQHwE8^+xhs9xPn{1F~1Vcvp;`Z;=@r_9PX$8$ft*1@;8BJ2{7G`q`r%e_h{t zX%fE?p;&4-=5^&--Z#p6uoh9|9t))SX`4BqBqpeSiVWTWQxYRZ zWtYdXE{vN#0b0rW+&bEdQ1=AuhzYA8yp2P*dy-qr=)BGK{ApQh>Dz8oUG>4f#hlrK z+SWudV@JH|J3p}e7tBmV+gImrrFpWqF|%5OA^Lza)*c1SG;iDf2X$Aw6t-d!{0~qT zSHjjJ$4^5!M>!;SS+>^8ul%K!dUg5<)6@!X3)J)9ob*0}&2OWZ$~JL9F8-`9zjg6p z|BhwZJUz@fkK%o?uhYtYc32@YvBav}X_V|=-twprR`T36Ae`$nX6v&ILX-9>ePU<& z?ynX=;G#ZrwtxJ_o%yF>*YsN_vw~R(YnG*BJzs@&(g&Ukf92Nc<#}~nxbaN+kC0A* z74#&FsWjxr^2DHUdtj>b=S{uwF8GhnnJPBjqV2d$d{STLoyJj2xuXvB$309#ZXcfz zv2T`9R5ln>syf0%)S1*i3r-B=6cyEW(esf4|6;*>peVXP1oxj+fVub-H6GH0Wk9N4 z0uQ8>RVE4?L$ONtM2xj3ESa;v<3?j(4zv2|FCD<`jJrF?o7C;Be8a*whL5f(^U1zZ zzn$3Rz@73$XZ5!iyk2PR8c{tvvnW~ulcKYu=^B~VmnS^TJ(m2+F!ROXqX#yF zG5WiKpl{!HWjNV3KD-jEQ`HR_fh)x*yztEJL0d^+5R70vwx275`S-9eMvkY zHTrv2LcBaMdiiVRNtWH$(LbItLbkhCb1K_ANGaW*&u^#y{(Vyaof={m{?xy5Sf2m= zeJ!MyVRamKn05GrFF&K~Kti1At2lkvc!BtMfh;Q+D|E@!LmVBiChH=0>M?5te%}cd z071n;08x+uSjLP8<^_i(!retdWKz>B$i5tKcLW4Qk-)dA65gSGWt2s`4va9zfaYW9 z2QgaP7Eoz9Wj7R(*;P){s0bJ&hY2&I9waW7`K0u!zqsERDlkr$Zw*!{DWkvB$O%f)hI!9lOg#LEFE58 zu5j?v11HY5)a#H`N0@S5aNLts{((BkD{a{5fjhV@jU9q-%uyj&r`_C1qYA>kk58Af zgsewGmm?wI6x$a!(ig4yo`r+o)um_#WyECRXh*!L$l_``S*H2HI|Q(~(oHAx3>9P? zRlL7?Py+4F0~Qm10Ys*DygIiT*zPg3R0(o@?7^f<5XazsFd{21MdMevG(GHI=yulC zDtB^(6qE|!w1Qgl!g^`3R^UxDT!7f%{D^^Bj9F`6i#@Chu zhvjyY19&5#Y9E882eCpu+4P89@of|(85$&m)vQ_^@&3rrw|Uap0r@r4a5 z1p=s;w2Q(_8y#%ugDh`7Q|qF_qN3uSqSCdZ@{6KM_Tp;g;u@RcM^VLfMa2z0#Z7C) zEf>YD>?Q5WCC_Y1I-^Rui%NQXO8VAH`Y%cb*h^n2mlAABN1{r{ib^MXN~hLJXD&+T z*vl4_%NA|QmZQp6i^|q}$~M-@HZRJy*vof_%H_K@<@-_P2Sw$dddiR1%8xI~PuMHY zlqa`9DkTRiG24~3RC)bw z*=1x^Uql~J!s006Gx1@HcRyAd@4ez$Wrz?)$A5sw8 zH5w-MTx97KWDT_Yp6z+i-Xy#HVx1i&@FP9j<5vybOW^8WyC7>wy$>W$uK~DSQ;kn~ zA}{A>ol@|tfy#s;OH6fK$C+V19m32QW@|}=R_nrW@O5x%r2PI8gv}Cn6b4zxHuI9T zP{JPXs6eyFz_+NI4~C)pzrc`3+!rFMU0|mx@#)Bk$K z?NmXjj#cfIyN|;r$X*EmRI@muVEcCo@4rZKSEkEORQv#s07h^LLo$S6y&_e;GF91}ZeJYUplCmplqDu#Kpia%z}@PZ(1JxbF>E%Ldx-3!b%u^j&*_AZ3f% zycqipRcrvizM1Psgxx^pKCcPxa(5{ZE-J8%>Z5}_rG^wxn?piGne-=bbDF&Lb&2{q z$+Yj==b_sMihs#E|57~b86!$<>v5q#)c~}Y5tVwaeq}%ec9*?sz}ICk3NdK67zMQ- zL~}4_L6O6u~JH0O}4>X4lMkV4FmQt6ON-;nCYkox5i zoRff5C7|sIS}_EjQi5I|!C-@M>ylv1Ic%yrY;Hen88d8MI&9lFY`-z=cscCMIpV51 z;$}bM5i{adI^xqe;=Hy6VvAh-8Lp?YyZCxpXs|}biwX>b@ zM%3!$fx*u^91jzUrWhZrLn&h*Pd8dGd%?$V>N56O%1Xdps*Y{6kU;~;OU_AdlO}-i zQ}V$na8>>E6nLgop=TZZ`m*bjg~xL|v{kdwG^p{K%rvlSs(ZbAP~T}cZOY~h`?eAM zPA}!DuX{mLbJ*}0hYOaGEaG$1jOwY!u@9bhdsh8)f_~MRwaSx99DCWsE}aV1y2ePK zej7B{e%1%&#?OT}=El9Bp@YmbY|l4$&PBmyN+F&?r*lj4v$m%=L5T&XZLW9mU}?1| z01-aNx!o)1^7^LBLU7#z3V~hNoscqQN$>2s`v#&l4atom2_;~+n~*N4vA6xQrCC8 zl|K9Rjok*k#84TF_Avyl-sEqMHR6WOl<=O?JpRqQAa(w<&DWe&uWuz!GIhU; zL@fX6oaZb9=ig#OXff|KyM@?6%KD)ZcJC@O9ts}bubyTWp@&3gWGvyKBZkb)x1fe| z;0|uaipawc7-lQGXJrS6{+7(!VYo%~QAE{I$^4=F=|NNTryHeX6!R|wJ-xMIyNFn3 zu@;CzCG_nvM6ThpM!fT`dd;mrkgEPtNtHAXQb*yMAag%sVGHZ`TTDM4^G9*;LvB${ zh+~qWeeD7y(f@rF>|TNd)cEy2YVc&JbW&{lsJx$ zufBn6|9o{kT~EP6_1;1E-hS&Ff1`E!1}*c22KHS7k=V_;Art?d8Sx!W_QP!Zdv*Ym z{Z&Rs4T$Ugiszf7{_i&bGYcA7@iY46&zN^VV~IcGc+L|v&S|SF8G|K*2f)67{<#-?ta*V$a;{C#KmV&QH^N14%u8QEv5KNqFM!?>Wd>icCJjsvjxEupM! zk+xr-6~Gh$TVmV4KwXgTFHjP(5r|LNK9jJxT!zV5D<4~kATGNormo(Hj8?RSw$%Xu z-`QY)7GM694c!N{?l}|L_66e4&~3Yy9(yC78jKko!F>t8G=he3$(_8=847fUHDa1@1SmQ;AAG{2*j$fg_% z>@m4Lmd>qPZtex$)6181=*O^|?Hd%!`)?A8%s$*IV~!j#zc3RStmNdUp?lqaV8nh! z|J1oBR0L3O)-2n%E^}zv;_xDt;+o}=b%x*=%{QBQ?bQa}>HV10cF8G$s|}V8cfVVX z^{D^zV}&!bgped;#y-Em-Qg)KVTHZl-+vq?47qR!m)lxi+`7!`>fnsDYOnZlB1cNf1?3w>KfBO9PWeU%Inb0BKy*HjwT!Me=L4YZk4mR)n z4IX~MB74#Ryz2HZ7W7DrmT+)mDn3uZZ(IY=U+Hw65Jjd!qp=0Dx+nNYh79uYrKBHupU=HFZ+jQC6)0mQGhgxJuPvEU6ql zu9tZB3#4E2>=|gPu}@WJDt}4YiV_7Sf0d!?sZr>-KS8nc1aQJw7&g7Q^Cf)z`fJPvm!~s*86d7 zr>*akVFf$?uDwpXJ1;2|Ni3*fmwm{rrlLdGihGws#JeO#$EXjrU52^)MJ`yR$tU!~2jJsMav^`|_8=qh((b3)(6N zq%AMVSPAc&pEe`0pla!Atrk!3T>W+Ul8V@>qE2&Jw{tz^PD~ZK@c5@f4>$?v`0$wc zV%GN4Q@+iT=l2a;?(dKN{iFydPpG-ib6O0CV>%w1xS<7uL8JEB@FD8}L0TrAD?Dcd zM7boOpJdw>(lP}~!!m~v7SLe>ba&tZI@(A4sm1NN%tEk_{8Dn9zCK==W#h2>0QhUT z8y3mOa?1N51S{xwkO`rwp#_@o*n$%Y^}9GeBT|$Sjxw9)69G@tmWQbGLd)jQr(Mk& zf&u1QZ*d>FqouHr z^#J20AgHXXXStAFKyVY1@6o*#zK~M^bQgK=Ud3E~>>}*KA9G9hp*embk2315xVy5x z=di5s=2QBTz;P9a_LTgWHCV}@cKr$PQ<;$?u8cICfwQb>VG1&fgX`6c)?8w{kYLQ% z+{~*)l$?x!<7**A_eaAe%u`+tAY87bXUsF2CgKXU!>D~i*RXMpa;=EYWq%!G3=~~) zcHz9bTr?KmA{GDu^J=ySViLK8B-3u|ZUX?Q7Ku{9*fn^*cwP(tvnq-J$yq-9MF551d?=Z?pePFAKL3vGXWAwLA zq1dOwg*0xWx49k@ZzWQ?vXAI|Lk<}bhEH6tqb+TvmHr0Qypf-#neKtu10hWJQ(5}_t>&ZcB z?y9#rR#rz8M}ji`g9X)~49-kab>m}Q8`IVz250A8ZXa~k0 zY~gV-%R`PPu8EBcF+rs_ZYFBJZrh(1yxUXFc}zE(=ZIsx5bJ`*Z;VvWRKDN~1$?A3s=dsjEMsI((rG4}^1D{gFGO^GB3st4h% zHg;G?BS+->gEAsE-t$mJjcKX}XBTYj3R4Mm5Nm^T-xTisiH@3dkL3@|uGv@Z!#y$y z{#x{NL;gYvq{d4Att7I*2WbUbU`B>kD3&S33+X=e-SITKu?RDch{oQ&C4ow;Ii$k9 zUFJCp8);EF#4+8Rm|-}2#(Egj7mn?)d68Wgfa42%@OwRIJ=|mI+H3ibIq#@UPZGe6 zU$S<8w*w#aXByu)NwEsrISi8>MLLeG$8zpVYU~On9=_(ixC};-A0KZBe0v|O^Ffg~ z8s4Sf|B!Vo>p&{tNgsDP)5Wh(VMHRtEu`kBhE1PltWzeLu*vds?Z5her;GP^YA(i8 zV!zdD-1}tp?$^p_?2nF@_l_gp{eDMv|9n^@_N?IDo+Eh6JjL5Ch_eDLYK%8g&~Pe-Zy6+>Rakun3Bs*Pv)z)~7FTlf-o;4!{%qJ*dK zS}L{qGfElNiGhKNxB>flc+W59B|DxBxG;&>Egvc^2z(0EyD@|vEZQQe1f3~`gF74` z?}efiXG8|CaG5v=#tGt+!}7S%DgGYh=o{4Y&IE9R1TJx$5+Jd(SNJ$&VI(58^%Wg? zsuUqBl985H6&u5dN{Q@B)afG1ep6ANq_KJfs!gRS< zl)s89uX|d=Mo0jmIh6@1nW&o&K`QoyS8-^(7n*e!tCC9CJs)V{9cr5EOQ}@J2yBR( zln5B=9mLY1QJPN?C7ju~cQnH}*x}ak7hf_gK6$y~nyQ;wrM*Tx>c9B5_|fOx^&z)_Dw!&x?j2E z7@QEA?x{G#PGu(pkglOA>+VM9zV!HJWx4Cu{97BKMoj5$rXCeyGTs{QVFpS$(kaqG zeJGr4b8Bp})?c$pZ==y)!SWECD+~zfN#`23{BTI~v>`c~c+fUH@m-sz{{qQzaB?+4=w^V*G(CB13cc_+A0bpDGz z+&Eff2d+mPo|{OYGaRrUW2y$}dbhtLK=zuhmb1+)0>=2tV7ZCTQ4_pYCO92^yK307Q#SN^ z3nnT~T3XKj_<>u1^D@C&5GZWQ&wC*!&NLs?&(qr#_o{JcD5qd`NU{SjoYvd&wwsa>+|Sh5>lvR_(q*jsY^zT`wJK%Oq|GPBh7(U3irhgS zM>8Ly=t?!kL>;Kz+;EPeHW?!8#kJV#x75*p9<-!trDARJjcr|B*7Q{H*d*#BKhvm7 z>UhqvtEX#k?rO7Bze$wVF4ocRSEX*DpjPy!?kqFnkXdOm9@~7i{-gU%nGbV?SYaJJ zFM0Y+KwfvD0c$m3vc=hwQ`bI;ccU=|J5pv+7D~ULOFdQ#H>o!gL9HaMZuIZgzB;gn ze{5_9y=~r_XaVLmaMcV9v-B0)4FtaF`?Ucxw{8!d@8`m=xYH;Q1c*z_pj<)vtruv* zfrJ8XDgo=zqBHIN2J|jWvoX*zMY^I8yqN>yT>f@_)O{tP+rheagG1MG>D+N{nCC)d zCLYYY+m!VYXrqRoec<)(J-Jjtx6w@qp4?EaMd<~Fy!0PU93sYPB7XL7?#slwckv)+ zwhP=;*lgVJ?Bya3*h&4jmVx@M3_mk=)gIeoW)*+nm^t7ae_-;}6bp{U@^YBa_v2{k zoif?BD_TwP=UZ)WaI2-;O9xw@*KI&SjtFwwRBQYA6VqHa*Z4q5nLh>vnPzUx{SQQT zo_cKy9plcLK?3`X!rTjaAhQIl(+i+UD*ScbdnNR}tA#Z3MA?13E(K06?5aWlom~EA zzVmv!8l6hAlaAqHsmNO&u5Lq3oLVf{c<((zXcw9MAX$DFZMm!Iv8xrntDU^7lfSF` zXjiXuSAS&JV0qUtmfu}I|F%1r_ zP|Ps0Y!!(Ipa7M7*2`^Dv1>WqPg5<@Z*HLEnQ07w9&qS-A)8juL5^qIkR>pVTMFd9 zn;MT1=jnP|7iKq3v)jHNkxQ6KNrd?Ol)*m$jw%#g-`g(T86) z<3U`h#h3a+6k=s39rtGVeSW(%&N;kX#J!gHx{356?pq(w$9S3G2R=>f6bu|}$Qu+C zZsKPiM#X}&xM{Pwu^7saYp~hf0Vgu`xyZlZvaQA3@`r3J5Y9Xtrz4Ja*`-|C1+eAK z$NZ$?k++`h&iXe#rF*!CQlI!r%$K=nm1bz<_d$xASl)n7XIFNcek_^oeR@K9*vfL) zCUn@YaQIZ~@R{XdhsR-O_+eM_VR!yvk4H_wIkinCF0d8k2*x{|q4100L%czC7mQCC?)T&9$E2%Ok1fp9#Q+Vfsn=^V`(fi8^}uubXN&DKzodc0y?wD`ZV+c3^&d(cJK)X_DUhvoTs$~A5kz&uLTLm5c=O_bRB;q{ z0#gFN#7k4f8wVt1et9tGd)dPJLn|p|fU-m+8G1b^A&|1o+CM&!BI)EyNn}t4=<`O((Aq?MxG^Ah9%WeCRm4)DPr9;ukp@SC%$;V9ZTMeUp5!7&MCFw(KS!7 z`A;tJO229fq7uA*?I>V>3sIMAP&W~=d{j{h*71UO&Z=G(=u2a(yKwh~(+x$6>piJE zsc`N;fzhm3r|xio2-QttEc=~^gvz^#-FG8cDNV0~jOHl4ABO-y$?2JQ+niY88X)_K znC!xU1nH=F`0pXm&-gK5J!^PDV0iXiRQ$ks`~U?WbPvFGFCj8AvG5#w|GQ!r$oA^p z5sd-|-aM_YLt^tuSZVi{8&9x-tEYK@zd7J9PN2UnRB?eiRHcva#TQ*BIH$PF_!TML z+pGJXG?z@lcCr72)!ry$oEv0lor81AIMl$-e)t=ONb)@A|7vvqJ|b>%mfvUW>(4IY z?@{9A3h~be;@_V{BGvz9L3v+cXjobAySg zIuN+r>N=V&>H9-s{h5!Gj|0|C@)cF!hlOU}pHiEB(Po{s=q*MSeI8`n-G5lntAnf?eC_5Y zXP^GXf@&!LW(hGpUMVhm9P^X+lsq1uQR5T?0(8~?koj%KMitK)i@Pi7|z^-Zb1 zQ`hea@HTF@J2F=wL&iN+^daCE+-<#?5*cg;bK+-WeSsJO(wNzDu$ zCYfQbyY|a8fB4*F0JpK`4~WR(m_FG_%wF^t60(^aV3-Q8!NSwQgrG^a-}cPY;w}br zb98GlnIj~(LhiMSgRAizA1;Qe+tBV_hyDfkx7KB*w|aAvpC+P zU|=XSbS>5B!w=s-it4}oRiZd_9y!!(!y9WgG>Bi6)+jFxd*wsb{`@hs>DR)3VETLU zB+h8v;yj%EW%jO=6lF|h9-uDklYCMfxUVuZx)3%`N^%yYpk6m2*@4n8eE zLJp^L8(uS^n)xY6Lc*slwRxwSbx34HCc7=oLzSQ7b=`=3ds})y3_s_4kx}J^wv6yT ze(tYzqiSbu4`MI*Q8R)?y0tZTc&Sq?EGrq{ve|wzGH^{k%`sdInZRirwaTp>dVpJd zR=I$IU@duS_6a#)>|8*Mxn1fRMpo=0QB_yiEUI_XW!N7S6)%3Gm4#lCbf%D5ny0L4 z;IF5#AUCl5QRoxJz=7O;tkcreDmZ06iC7XkMcrLC-Oo8ioGnGKI3eK+)&EA z4TKwIwzr8dugM{(Q+8cXlgTxkIVj15YDYgiFx5+saZFP(dpa?9p_V+#TaN;oF}ym& zyQ2gGgJsQA(P1~WbkGu=ETpnt-0mSU=uVz8k9JP(`=ajQQ@f;vB0 zX5M3{$vYBV9i-$lN-`&d-IoOU@xj=UvU;DX_79-!9k&6yq+Cn zw-ss8DJF!1hpmszJ}+m#i3O@8H|rQMp3wrle(=#2CP@>bG7q?GI9Oetgr;k+=M;7Z zY;ft!ANfGu>h1QESkSACXAXGyZPxcyo%OnHKHUJ<1kxd)-EgJpmG|6F%1u2{J z0_YB6mj;*V*#vZ#U8k4Mqrp)c^xkD z2~6Yzj?pXIJ3O$l&g)*~6?Qm;x37amZxROO)%hRXoyxo*-K=@IBX}J-M;B)! zO{mCtBvy0P)g8bT&G+DsM~%FqVp|;xe}peKOEmZ>^&tI@hNviVH!UmBSb25$`7=03 zn~6B|!ehm3P~vv8q)Mq2MOsKz7~inJN^s-zx3UY*p1+s;67~A|=8t~G{;$nn?tOj! z?(bj4fh$rc@r-?2lp0E}KCC`(i4ojp;GsL?mI@j#wBvhSqBN3cdRl$51@4$u8sl#d zstOI{#R34#sFvVP1m+%35RZ@f4Tzw64UM<8@|ZSv*6#~94Z+cip|BY++20!A{VL_T zMD8r$C$|*c`@LG2888i{;GVH|H|0CCTz<#5+x)u^P)4iY+ny7Wq;Rmc*8$La#oc6O zbL?vqKGhDY($7~#`HXBa5xrmE9MfjG8iNNS;(xyoR%Yv)pnY&YOdONC#yR$${r|&) zzHr=X5JWkm3*zZ%o;|MCS$u+f-JG?XqU<_VCD1Dvz%VX!-{|*6TQTgpQCgCs=|nq& zlfe_#Tc@nSF$95^{IBk)_sk&OWS+*r##D8#)5}hs@?d^bUGzUU$P+swo|zvy(cLH$ zjs4D(^B0K7>x`Tf{~;`J$%j(|=-Anc0uj_an4&yIc>;hN{oSSF_AVQsG6z*x4!2)V zpT?pC*A?aRKC1y6PBE0h&f2@LRp|*g=rJ;7(;`d>Z|KP5f(TT}gxit;xHm=vg1$ln zL_jc&fP7A>r(7w~`;3R3ZWk zk)`h;o}Z+;g$x?8duHNc8;<^vey z3o&5aC4n9$JHjklo-m*nHKAVuV>ev@uY+lVwSCxuzVw7qYJw2h6*1+C#_*#m-zzm> zl+Romc!5&t#3h5u+bGUTH+HlHDQt$F|B4te#G?9{E>K4O;XUIOw6zsoaRs8(no{i29%dsCT3|noA2RXDV3!{tT$vm$j@v`k?Z9K!=T~bQ*!MLr1$Fvrb;;s{)pt3sx3W0rpFs@=i_eVhg{D+c`f{uu70nC4>F~Ayl)Y zl{ePW(t<%OBQ+3otp$bxiVnWDi!yizud}Qe7e4+%7pJGUmurcnvqRCnAxS7vF82;@2^1JA*DM00NR^=H`jirI3*~q(l1AUZv z>4u>bX}HEEhB&cbGil)D5}RKFa(MY%gJl{K95m%dHsi(EZN!$U8eX_N=v;C(?z~y4 z!cbRb8Um3`_^h=K;QC%ew~ZJcOn4&*tPgkyzodG7(ZEVZ%KR2}*v}hK6zwHwfc9T>sL?Ve23&(;?tk{w#U_7X!0i7J*2Fk_ zw=^Ns0`#2o;nKy3qb+#oViFBTfB|?!1I#6l+ZF;IGGGpANZ;@yxPfEoCp|r z{TQ=niSB8q(3AUu?5p|~i(%vgN&V^d_4fPjk#^mb0WDm{OuBk*&N_j+?cYeQ zMrFDpG5hGs>R4qUgrylSaUFf$Ixj>dd~FugQuWXVv>^a&&>=J<5Bo}sq(pfD!ny_O zgt;z;F_v;}GRfEEoD_F0`mBgpJ)+0b3!rSd4dyd>w#9fmAzjs2#^RyeM^Fg6JSGCe2@7Tqj{5z zpPKQdVN(QZ)R)8vn(RL1{!~%@YoRztzr2Tl7pY2COY@ za4rA{boFEtcHaXi$Yz`r0)`BG;XMhe?>mKVIX@$Q|Sg`%Z+&wZOliwJ$_P& zK#Sg!NWx!73JfXgW6Wl}l0`A*;nv7NR-PLe$PKj0O4ZofQ~1U{O6N>dXHhjJv_4V} z5cdp)l|#CHGsr*I>i&j)CisN~lVe+DGSdRzdWNcOJsAlGKnYn|^$z3!pb+MFezobd z5VW5hqE0UC6Co^L&Qx07Jn_A?X^@^G(5!^Oa#)Pkd6TIQER`f^N%BA6IWfQ-qg%a5 z&(Y##C^4KC4S%%O?WSWaUq{_$$BJAe;$73THQP^ z(_J8J>=nsEh-6ri6JKZl^23zo3Kf5?LSV=t4VqpSO#*bH83@tQ^ex@OH>;}>5-Qf^ z(4PE+(>z<#xA~CH_cWcn_o3)mD8c(7FKvHEm~Tr24>0nvq9Y?PmK+yDI^`lCxUcul z+4ARvW0&Tx6x#X#vGocGibTd7!Iiv46Qu#U^75Wudf_6LM-qpkXrG^j>;H?i`wWNc z|N8_!7>t^k(R=SDdT%pE?yUTvYmqe^Sz6cWn)&$9U zy8jr8ywDb&appqBI}F5|p`>r{-8;SI$_ePw9wvOLGTywcastW6ejadt08Bw&Y~wzg z70#rq0V_#DIW|NJ<$186fT_}v;p9k45h828IXnqb=@Mv^FJZ2a8+h%eJABB>Lgb|l z#uCs(qp_H$)^sYjgY-gEb2$@pI zj_}HnRDQW^dZEKrD9O}4%0gzpe9Tn@iMPc^h48ViBb(zn1@S#Q6K)h;U|nhgh9@6^4GGVD;O z)yZd8-}&_J>BQ>|BVGRxb*ui)TgA8|%$T?0l+gO*)`_mzg+yM~@9 z4F`4&zfc-Mca112^(01P@4lG5i_>@})NeLQe)pIzx+kLp7KKtY*42 zdxa-{Vkd-btuK_cfL@bFgOd(}7hWRoaD-c?g{aqq&&wj_IjFA^h&AVdIU&?k5y6Jc z99+qNdRgP!v@RUsZJu1LX6N@L194<{dFVHzwsYn~(7U2uJw-NvEPHay3p~lZ`N)TI zqYBfsds6oB2o}-!JN&L*^bsun$z|b@KH05`bJJZ@Ei$9QCk7X(*%Zn=t^?;3fdt_` zAgTe-^CmbS&`0B!FBOVRJqQkN-J&9*kVR2&p=`c#0PLikYk)g%xinqG;i0dcpP$fi z-IB=iGe~YRR5mjzdK~U+Ffk2C;j1z84KOny{sv%Jem<>vC;jMh4(@@xEPA04(aryU z30ZWiN{SLR8@MJ=`-ApH0M3QcKhHiBi)sPkxGk)9e6i$zSWu}84IB%42Tu$IGAV$Y zQM?hTv+(&w8qGlEt)#8PA&f@xG6Hk{7Zz03_xnson!8bvY9tYjLOPBG6+^RxIW>VJ zV5&U==~n)?dt-!?V7IOvV|qOYzy`;GLJD`k3olctKlYc$|IUK`UW+xSOrvCepY<}z z5>%^V*P87+HX!ys@?O>WS{-tRw~!!0n!_#A6=Iakrcr*Z^rR(HS(OwDS(jv-x)!gS-RJ*dLHp2r3(wDGwYER03#)`y z1fLDkZOl9d8|m*z9`zt(!JRfpA>p^0U3etIlf48GedE4tQF)9~@!x*$G(jTgBR;aH zOCwa%q*sHg$kCF);v1r+QFfe;*v#RCY9{6|YK7cZv%f~_VBZt^j+qRz1RqRk<;CiN zG9r=jALydIx%lDpg@XKPNU;Nf(R8I;9R*~%5GV`Xz|5}~)vr4uf#lDF0QT5NwR_nX zAAcT~U5__wv)>G@s`lQ5@>gAbf6mWr=y@f{Ydis*VZZIyL3b!Hc+E^{aU@7paous& znl92@tkyeL@z>5HG<|D6W1=H6I|D@j`H_f}3Vy18qHwQj)a+sX?3}IdI9Z0f-{JX7 ztFV7q&|f^jOeqU%&jFMFCkt9lp|<*L(cUs5a6N&}!GE`Y{>$@|@rKo~*^JxyuYo@) ztkxn)M6LM4f8WgCk7Dp%SVwcPg4P3QGG#a7#3!u2dGoow*$9%QwBAh7nRxvmP?e~C zGsD_@(G|n&!A}r{^6&um8~%`W#j}C0Z52gQ+N@=>z~OK62^MnPGec>Yb}LK%X6|&h z?~puv`8?5PzrG_Tz!SfbmK{nsBAWM@I@7Rvw_(wH`OvI~RqXL2qN?Q|oh90D*`hA6 z8;3o3ckHIySx)=;faF;Z3!@hJ`46bfu}Y^Zd*Pg3$X~Q}KgZ>tq#bwYE|j|E_lx$P zeJ-OfPQn+p94vmx7z>Pet=PEwYx(~5O1)^f;LRC6fF6L+wyM;*vyx(T>k$0b-x7nK zrBxjX{A@(eP8_b^!wdj98u6pI`tIES)0X?>BXLp1i~dLetGxX++C$ap&*g68i;7c< zrT$7&KZ>y`F%nauaAq~zyZ>sEj$#TU0 zXU!3|X{pX5D()j2ss}U)Y6)C-0)#~L(llFPTNxmL9CdbR4!x$h-#AuNzJEtJ8;%D! z_73>CtY+t)EH?y>f6)4k<%NZ2Shcuo(AhV(uN7JcsQRP`sZ9>`BHocD@aY4L|0Wm5 zB~;TwI5nenlZQk?C)z1Btw5@r_jXIiBvB&1*p6PnBxjT;ciOqee@kd^SU0&ZHS;y~ zJvG38xH_EwC09pKnCIKK)&E3w#KeVhs1Ac#AI{ssF*`VN2j}hlgYBfHCE{Ei9JYhwbo{*StSq!}zzz=E!3jD4z&ki{M^0V> zhw5l(s5;*_{0G~?fhRbl250QNf8UKWc6N8a;qV+Bl7nM&78gJNYM@&K(=k4J19vr#j_w+GN+QGRxIA#au+u(d2I~zS5wj&`WjAM3OoJ?@Wj<2^Z z4yf^ZXm#Jt;2&uRr`+J!oZ;bqaaoan_jc4^3Vr==aq7;q0H6QFcGT5naM%ux$H8Gc zvT`C)Y6>{92j}fXO-=nLw)2m)gJX7ZF3`i$Vl|kOshL4fPX~@3a&orEu{Jn$2S@JU zyq)#+ARM;y@5YXzg4jRIj*6O~gpv%748ln}N=gz>lDu))j;6Uf&f8J5Fp*c3#OXjd zY{$V?&(rOmuC9ivsT%`XSEA`N!VD z(Ki&gU^RMf_vzn42KHpFG4#JIdPf zIA#ZD?BJvw9JAx-q^O`S^N+Nnqc5iU;J)<}OFMs?lmQ`odj*`m^N+fNlXjl?sQ<(4 zpj!q1k#=yp4o=#^y<;z4g!~^}9j5<^tD|BJ!YjpQ%RSv&`S7apQ;}K}DT{7v)l`{w z8e_h^c>Z*y@xQw|vFQSEut=28|LW>AdVd=&_#dv$IViC4f4VxcVRW7BIZoo5p+wus z)MUl+YD{R!|L*DtQSG}pL@&aD`lEYb-Mi@u8wlqDe|QTl0`1E_-CeKKl--Ou)FK>=gu34ClT(h*ZaHQJ{B4E z{I$OL_48k@&h7m_T7=tQBY?CXYmxYPJEqS;GCONg;JwOXU44YddNjQoW(CFgFIR_s zblB-%uFeMbO#>enQP0(W##rvkg>a(LMVun1FHL?FSG%w!q)YSZLPkIPHr zG6wmV;40eSE54UaL$_CHe(53udoF$km_^vzHk2UX&8VPo+C#x~8+COt=r+73Wv2Jl zq)J@2W*?8y z>ZA5QrX5x4)F@zoFM+zR$=eQl^b`0m*7Pc!vtL5ZiFdN7#Q%vfC+rg_;qQC*TE(^J`mnNjq;#Al9 zrJeD#s#b#Yh;V|^BMpnMolQCxNrd;uv|u9V3*rv@b7KM$)B^7nu?D}E!QNR@AM8qQ z%;rrp^xvqJtK4$SBD|?kvMVUAov6=urELXXy9oSXYMJ9X3#DCGstDqy_XuA9I7grvTYsw;*|r96cQIv)>z3xZ1n;$5{*uy8 z(M3&`hRxScb_3U!#cICNp6zSC{oN22+((xF7UuXnp89}T61ca-R_5Pr6T&6sM^Mf+ zqYU_(*K>0N6f`nv9?VquI?X=C_LoSz_vN3)2+(8euen*&fC`aFaC|Y4PrHxQ<`_vo zR!k&2(nlF`9K}vv0@Bj%hvpum`1MOjEl2ukJCCEq;!DWgwcj%?9mfpm82qu~>g_r^ z7E~D12Hz%eDl-3d!N?1gLKNFy^Waxt4fWXx%Br#iOns4K9nOv|a`cqvN&Ie~wa=kQ zHW;2`Jb^DWqI&@%S(?J}>^#Q$0wXcSPq-VY z+8ZKisBMR82wkdbiUiNBG6l- z{FyYKAodEivBhFJW+1_kKG_DVqhVyXO9@aKvx`XO)!A?<6|MH*W80Xt4?wx|?0V?2 z>w;542FiiW{5oP+kW|xwm-sLNbr;Y2jHYxRG1n!va7?Lxp~lNV2(Ja|it1j@K$RVy zpfARTxq`GdJV$ZlN!tgiN3@x_Dp+-ziRL|Zk%*o)^m&4^tv)GC>pR_fWi5ho{l%WU>p4&CTjd#2Nc zas(}3hQG4-H-;fUWaNspP7dO5C z5_G{qoJkT^?{`1G^+R<~2*o|Zmbqy5H_ClXqVQtJ@gL^ef@~F_(DP9+CDXurRq+!Y zb8;v(S9!lC!-)=D37kub8Y=r)6Cc&`Ez+NMh-6n>!|HKzmmjXi3E~I)RkMi&cd%<} zlB5nJzaf5daa$?25pwAF0BpkLEW1MN8xN(Z^mCEjTeVcR7$SdQ^wCZ4g7q{ zFqT{yL;!AO=t-gepL7Nt+H5pBc{zcRE1Ns0Z%||Gyrm+9=T>W^-rcjIv@V}xhZEE3 z|0X%&smr6t_diFNs3+6f)3}xI$Ej#Z_{T`)bIRNuQDrzisT+H>OC)f0YBQT0cE#{e z@r6l!%W6ujk;^`<@2iA+8|QIW{s$zm9ZkR7^jb;OA(g?0@Sh;_QLwHlW0#yH}T8kj8EY1 zKC6tW+t$Pmfn&vI_*av|H9s~Zm9-6ryysRXVo7uI)mtiq=dY{YD#S6JB3pAXHq zP<9N0{9Y}ZE&9}#cY*IW$w}J3zDWM1h`JzgdhkaJ^4AjT$*W8RQwBLbp`Hre-ws?U zm#1D2)_bPJhNoOlBNv?sp{94EY7P>I$sRp*_(>44@iT%O{~3Q@Fl7mnpC4@Z8+m`j zQ^G1rX5=oJe-z)DpTa_v%0-kKJqj*|LRg_RgHYPpDBX6H{sPMI0%c4eZ7LUSZWV12 z6m69qZPOlYw-D`c5$#AH<182BVin^S6yuQ{Rn{jj8SH+?x;n)nBjYC8LJ6jxdzw72 z&~RfG_bCaAhKl2D1=5o5fXgyGt}WtA&;h=_5<6%})kef52FaHeuLKDqT=!*%X)k0m z+no5Yz6QHWX-ByD?$J}NT!86*L$>$=>75d@2EY}izRcpjXCAQSKw5}df_Wg4yyPiI ze-zNy!&wT_`H}`cn=GE<$5@iA0eMOw{*-n~3)%s5lh!BLf|wFRICde%2(U$^itRd5 zRXkP93_MwuO4RIcMFg0k4n9kNLU21}^lm`*@^=dS#7N4QvRxyS zDM^@;u{6SJDfV)~*)44B3s6Tw7r0+KAzm)=RE{l2E*&bzeJWCUJzK3032)8-iCgid zNWZ|#%PH~v$dg9|%X=n{XL9+d0u3f4%8Y-&GcKF&Rg!Olm(!4AKI8gA=(8}b^X7y!c$a6fdXT2e%xBB2M{yc!j!7g+2snUQVGS?y1>Np`UcXy~9*}i|os< zseUg)F0nM%@+`mjMPqfsAM`z(y(rp!PfOJz6+E3u$CJcg62jM946%8!5g5j_UhH}j z#>7!VU>^k&2g%ROM&7MO}p8JhZ# zu8dE!6c$;=Eglf*TE+}3w{{Zycp(!PL(AE2c6tvs-}stwnd?~)uy&Bq_#b`wzIRgYpJ&TsUz@}~}q;4d) zZnU#*Y^iSIs&108ep;b^#-@HQq<$f{eyOv5WvO2NG*P)E?x%R=mrm|4)(tzk4H8v_ zd!DEaUfnk`#i7*RC9{xM>51;GiAsCqHKH2A zMMee7YPP*aX1aG|l9iOeoHA|j0*1H14V*Fx7cs(pexx!#7H+>j|Fj zuu>8%S2=n6b{{O&3D)j(w#8v4fp5WS?oYCyCPN)&Sct0(wM#D5d>mwv4650tI5O~L z@%DZ0SRPeaEO<)~y8Q^edkx*chCUxm>^91?BgWhC(+zsW)n9?yOKH*@7wZ)nB#u3jJ)RU!iR$e#Fw%_xPl#MKhOO zm_FDN>Tu$rlSfTT4B@LQy;uPMv1y_{=_l-Kyl~PMAr~`&z31+01c<#?;?Mz zTBwER`Fom_7P9q0k+`&Lnzt8)-6&O(@#NfVJ1`oXy3m2^y&X5_11I-?{fBhR%5 zqnqD|06$u;k2Y!c=i}X@i-oi)(OWRlP}$MMz4<77@=<;2qjgmirx|r&U4_sE)GKc+ z_c^s`GMMW@k4Ecb{Yi$%Mz$8ymcKBiKYtN`5YVXY+fAw`PZ6 z-@qN%C*O78l+!1>l20zMG4F*UCt2EQCYJtTIN&C_7%^7$$f+yuW5vD~3&-1fU&l4l z68gSTmB^`DD{977-OAcPpE$Fjrw{^`c>3lSr!>#?$Y@L#(M zE{<*`lOaK;*#*66E3bEk7u^HR?N)-TVEg{i z)%oz7`3RN;r1ApFejz4o0aLIL`)(nAbs_O)!E-v6%A}7Iw)oy@ks8uR8o4+g+~--c zxL7lheE7Und8x#5se(dXr4CxfLRG5_X%q>=FXT7bgu+?_ zTnA@i_o%OR9x2n&3V`Vsp&#w#9TMuh-a+NjBZQEVc8Tdm=~W&YnyK6R7U^K{!VNgd zbhySWqtXs?kTb+10{vc4Eo-pKT4JJDVtOJ1&aeajHh`v#LC+GXpNi1nsVvmjGkFwH zziRB^H^V}^F$<-qNFKXc7`{ePiH9Z}%NK*gD<% z&dZJ+hv)N2t#p}RXbHME^S|ugMOKO6?G>u*l{@TJgzw@0&^6tAbzk-x{_Zug?zgDy zXO1jtZ7v3y#I-vtPU9`L8q&Pr+U#-gc|j#$t8(x@vtUFt>P5BNJKr^8hh>TZDl*nX zz`h7mvzDaz>TvhLK8gzdYz3I2+Yb3b&qS^J<8Y*YRjuTJ;N%NsUqc*oU)=^IFR*E8iy;nUOXp3D5NmxZ^N#cWrls#oRr zuPR<#RTW*;^jy^$^+-1V(%9H1cG@@QxORtK7wn(Z8$Isqx$d94?!NQ5_dcCK7g(VO z(sU;raG$y}VVQR7&m&*0L8JEfMRd#DKd50VA+;;Jx175)CoAJ#bi0Z5vqyAaUV#1T zsJAFmZ*Y_mN!mde%{P`|8QZ_lr@ng0(hR?#zV5j(B!>VX#J&G=byyME#_RAH3KkU< zy~zdw=ju2NWSe}`Ok`0G2Qrv$YNOP&3lY_mTDqCcUSKJ%!6{RJ|b^BbqB zCnOq=?6RlFYsSO%f0^%@*AQ7VBXW%&-uoY}&V1>EXK?z(NY|Lepl}yyCd(fqOe9ki zgL#%m4&7l1ndi?>yzxX7WWjrDy%{3+hw>R7q%}lr`FVpvxVEC> zr6r}W)PL^9ms|J5u-N{(eVkeN(9B<%?uU9?koPTX9@B--#$bYbTi9u&!~CO68M{JB zg~?sTTHErb-<>0e(D!Q8;dXz5PB#O;P8fnoJyW)+I)@X)Z+g!u_G1s6(mwQE0``pb zAFHDBL#ldiRY-j}@t!Fp7X#%zeK@xnNgI{O?hg1!OOiql-wbFkB^OhYk@^-xxS&6p zFe(QE^6?F&n874LeeIzfN9Iw@6n}E;5cvzBgf<7de3X!rPVhjRC(ETphpz}Fp({{X z-l8kiI3V${a#RkZm)9i>(ia)#ex)z@2_b19{V!KX_A5%#P=34om7(I%fTWS~@6A_6 zs<%KXV;C_{tMNasjs~4;tBDp{w3Mk1-^*50y}N@_W(Klbt!Dqbt3!O)@RGMRHh(^p|C(>11R|C+*S0d99g=ByqyuKF)E=rZ&7 zMA;PZgNn>+wQV1N(y+7y1B`v!2KpV5?~nt8y?URy``<64P$HQ7v2$K@oFRv}ijl}^ z4LK*ZPtVzHO4dFL=)~?2uHD0Q=V6@CTsAu5F`>4WPAOV{XSLZxBNws=sAD8IpHz#HaMb&v{0q;9@ zBUD;pFo%!3vz|?iJ}B;S{U^=mCInmec2qcS3>3XPzINGguojU&_kQ==a7H^*=DVU# zAMscIC;fM{lza#2+`D{-+0aUUANVS}{65|tR(d)vyWREllPa;Y|CAQrJO9r{TFSU^ zwfnng^Y_up0gLXH?*f*e3@Zn&25!F#{Q6?voHqgW3A>YyAy&EEwEnB}71_;-2}YG$ zc89EeO?XopN$i))d$1S)1_brJ=?>~rT2$u$@WyCt`ojAC2S{;ehl zhmL-CCy;j{xmT5M;3Ui?Is-bR?w7tw2F8F=O2{qS->1|Wm`S17;SoV8peY^<+y!$@ zUW#CqIpGd`&OpsH-Iv#1#ctv6Osnx-w#&za!(qmmeo#*HU#^Zj;sN7qyQU1z)p>$? z!2Ex8bqrdqGf01`lARj~(=z37xe|O(5IIfO-I#k_MW3m!U=o`}{dpfAtiyv9^B~Zt zBOFKSn%WQpWEW zqvM7M8ccJfz2(jY2Y>f!c$ntQS)NC<$ZJre17^Wr%bWZ2K|YD#ja3^Vx7$AEdQ?8u z*D#*@To^<+!UGLeKox|gY$Na)QzE~+7O4q%q*oC`LVrEIOG&e!%;h)vwds_vWnhHw z+Xe#*9wjFrF6E*n3z`f?72KX_>)b6hiFr$~6`0!CHEGVlmw?eP+BD5}GcS)% z$LK;hXVAyg+zKKXEjIWJIy8v~KDY~`4ap%SdRYl@EQM1J8Dm`T2{S6j!Wf5=nF4@y zbc=i10lW8_jN?<+c0F}h7*kq2QT4RW-|cPvERe@EwU7@LMt^E7GcRa3o{gK)F}`Q3 z0S3t2f}>L(Gy@l-v}L?AqbXdkXH;{%G`LgaLB{W#O@4A~@D(3oJUB{i&`q?QRflAc zZ53G;Nsakmuf}of?AIdN#zkqZ4M`!U_wpRqc=Nc8{&>Lcu=JL~H7L;2zKsy9Krb+^AgwR_zn(7Bkn-grae%7M&eEC)XdOIg9~=PmgH#5vh{gHkTh!WLlgsY zEebcRWlc<*?SyYglE{`#-t4FyD>C(rKlKshO>}$WcW;0bHTb0u1hyyR4zk!9?ry!+ zPLk(ziSb8&pwiET6$;Ox`4_pIYTZ-Rows82gSlmfK-qWtT^p0-Ii1_EISDyX5w3y3 zupD3A&flLnSj*veNL#FE5zxaW3czz2vcmbiB@VXo33-7H{j-pr_JHUq#>M(Pwp5Q~ z<13D&LJ&R|3lz5>Kh1{ck5DiGAM)Bv8Zh$c1?DHK+y-#*Cu--DaY|a%?v4QXLN1tPOV5hYtQ1VK`?@)&_^=J;ag*+0*6@a^W6RbTe@Nd|u^_~x zMyrdZ`So%1GAeSsJ<#vR@)yXE)dO5V>Z$kX3iM?{S)kDQY6r`~a+1QYz}{Oz6(1zs z|HIXZvr3g?9VQmfnM8;9vH$sM0r(7{vN#(RYoubxj-0bw^Aw}IngXCE%mj-Tz z10(YNSrblh=W{e@vrsk-287xlfSFNRS9cFyAF3lY0C1CskfPy9#;| zmekb3t`t{r0gLU0m2zRY@((8JX8wIMIwFHT*&`E^Fk`!=lvN+q8Oq?he~x$jOX$>^X*d@vR5Sr z)He0%Rl-FMJd`upaUfc5ps=YoPn*Nxy=a13qjq{6EM6KdCPR7hD%z?IYxd@2Z(X0z zV7{ZQt9dT-^+r*KsEaBOy0z-GIN9VT2svk^2Byo>EJ!-Q>WUH2&^dnm+mp)Wc^`3 z`20RIXrQr4r6@=v=P{RBdSB)7hm>B`6f4!jbj{mZXt@*yC^d?`?i~#p?cM3EC?DnR zYp#)E=X|VFy)cRz>CfC5Wl_Qk=1bQJ7b)0bIQwIr`yK&=NDaqjn+DnTh>kermB zq{47cHX?K3qq06GZzZJ*(Q)rAd%j5{Pi(9Rtl#fH)^Ra7oIZB4^X5bA*vEmfv6->) z&9RBIu}{G9N$T+_?(u1<@z03y8T0X3m+`q3S$h!Hk3QD6m?Xq!+#)0@Cx~#79ko0& zc)L=LRf|aYa%QkgFp(oSG0Q%&QOAnn#`q@35+_gW=1-usfhg?>vL@hKso~zhL_!lf zMhzX~0R+$+#q)pqX^z>l11)iXig6_R&YbVjn`mhYvJ=Aug5tlSa3Di;ind|OaZHR= zbaXKhAek7=KZ$lUiUNH?(i>lOlx&kOM!+MGfOOX?$m#4+}5>fK9Ln z43RSC;sCUmKG{yft1AZb>IIW4lQ6N6(0YLgjbo6LlTpS-(Q76soCMDQ?dM}ODlv?a#Ivun5Sx{^&Nm)TL9n+0g}lu zNokKr@SqW=$Lw!ncIAM83!^BxiAEGi=o!Y`7$lisj0BlQiJ2jNqN22o(b_YSRx{`6 z7;(bsn2Q)m<$V7Ikbx_R)D>eX79F)+1!v=-UC<>0<2$y-0SZRW0A3#&ru_@ zI|rZm>PejJL3H;pa1GGo1(06?$dVAStOU|6nEU8thAy6p4Kgcq#0^?OPh2q}gaAbf zi`+?5q_(l}ASPlE^xGf9>SZ|q10;i^Q63AJ5sQZ2`P+nStIP|_GXz#lc^XxaXIxCX z1e%SkT8O8&P7+%{1`$yvVA6On>90Y)??3@t3spImvHbTs*6tzcqmlfJaXZ#YU@N5B z92T?`NpFK`LaTdyLbuN(6j&F-B5b`#sx!#K$K!)A#0~tDw(WDM+! zhRI-%Eg94h$xirffiTlxS*moY{iSV`)k35X`h8!FR{e7K`En28N-xbyAJ0m^^vZjU zm4SOJgRUz>&+HytGXCQHI6SK_{y=y1W~`AUC+Ape>_$_SB0luY4oR>&MPa~Xs~{%(Vqf!MOzv%P#*|Ugl2ZS|u*GaF z>wK0r0Lijo8xBE?79jg7OGkE$*Sn2dc&t^N_Jg54QX!RZm)7gCR^N&yE!n~!sMT1+ z9y=qmzbSriXL7>?y~N}ekZRL|_;~nKCraO*W6;VVt#FLWcZ|t9P*|9=#&?b+q_=CTirNIri_`(u+O)+QJ8EwO1S`eM;$Y2Mthths=6LCVEOrv0JE1AFgw zi(gw_W6O@b-<@T?KhXT{V)5P8?YmpRclVg@9+}@CI+T2S`F$C?g2}e)xLAE8%Jy+E ze)rt%YHB5SXC<@hgYRD!*)MVH_uLnpwgW}wW>~PZgP=1W(1I6~>7Mef8vO zctF7mO^i41jxyAtrq?~a={xEd^KBF>II7p7I>-Sd!?MeQ-FxQ{KUa1beLpbOBdNP6 zg?AS&@i5V2C(Zb4nnOYQm#k`j^>+V<w#uOeWtGG?zTbFaF>^XumJ2K{;mV1Cqiz9uHM_6ydSC=NW~8H;gkWG#QC z`DmiVdC_?PH7kQ-8;Q9L=nF-ezPN~3OZgs21Ae-FXo_pQ^XbHH)0dRZxkG{ zjN~_NH2}fFj4CxiP4*`3M3icUpz>E+k&{M6*_40JKE>>;M~bKar-0a(KK%Ni&JfPrQ##w~cR&c$SxsDr=J{x^)*isS9wkD|i2DIe{`WWL)hPR*QXo~p0hyl;F z#bE3-L7lvy>&(xWL`&xNB3znUPm)`21bd&u;J|l`xEn3`S2gx^dmdUKO*ibhwQNVB$M} zx#b&WY!jFK?9|~L3K%YPiuoN}`8(vz@8`q6L+5{oZT}Ac{rd&+MFd^YB&!r=;d|s=b|1|P zF+ulSx$WENCoIp7upEx4Y}7?oN>G6ne$)=Kr|TlW#66{HJI?B1*bs(FB0DLI5qrm@ z2EdTvo|~t+Q*6bMeLooMvz=@8Ft0JckhM7WFG=rMi={~A@t){s{T))@gkBbV$zAE?=~&9fey+jzHQLi z9TJW#&=L_S7(gV!9UORi4Wh2v&bWTK5`K32kQM3(+O1+{t_H)rx_5JcC? zn_UJlDwRnVE4(>XWLjxj?|CjbS7-Ca@6fYFTU{6QI(Tb`YU3m7kbJMjA6#jGD)*OZ zb*X${gYvyI@wz?0arq7B?yb!x$=c(7HMIGX>%#=68T7WXsK#=Y@b|HQTph`sNw9$a z8T^^oOB70eLth(jTCJVgDKOnWHDEufR)A46AG~0+M8{V2hxfJLz=zT-$tOSl$e-;@ z3pg|pvfHR100wfqj>YfxzrsQbb3Hsy5X)4NQA&-nuHH$gKJ^2G4CP^SswWy}6{eSJ z-a#%a{)CJ{>_`&9_F|pg(9Jau)_2ajaBmYttma-dYF+(#2K9Zdw+1dnjzqp7mKOlO zvl$Iw;wER5_^2FLg7i}MqTHP}Db^4{LTH{o`TCm_G?a#d1?>4aiCO`hbjMU0 z^`)j+DuV`5N+v5yl!>Xk!WDmcitb)j05l~75@<_t1$JWeJEH>xNwhx1o!j_%A_^$m zAk_qsxs%n(ewjP4gc@$JZ`xj`P~*F+5E^`L?DS+4&FdWNq(Yl#<%oL5^g2Y5F?E%C zX{wEf`h*Pkp?NDVYOD3feqgI{EBCo*=dKKOY$r&-mgW`Y;r@>r$c;QMAnLj0rEVqD z%CEJ-c}9Mhv3WtXpG2rj%p+&$f=@k$=ZsgLn1S{QJgO9a--*QO54f7zHhwB7j1_Ts zt8PNcEe=3;-Ad>ll>C> zq@wjp*!7L$b7s(c(LNlkga_y}j=Vx!pafmh;GRW8G9RV(g5 zGJ9064_^fQ&2j9&xjHxJ&k1kUMDx=l|1zzoO){%F6I?@@B8VQ7{PpNZN>~vRkSMVO zx%gpNB`}X$FFBaEs*l2NlH(3D-2E>d6ueOq#jE556v9Bc*ilscp&aB7te}6yC%L~$ zjsPh);1iBUF)DvJPH5*Npl#(SK_DkI&7+@7uo-I@x#}^rLz{O4=Fam?N zB*!Rmb5d20Xh^iAB!+Txa|wLVF>OiB?BeE?to~r&*OFHFhnrtrVALeFCA~t4N6;*1 zM1d2d>~gD)Wd$7TwzmFAf;4aGP|jv_Rs-#7Hra)82$~b}`zc@PlYF+2(4V0GnH>(- zk{{mG$=#HZ#w${&FdI~xHms6+@8MuJXB01?i0B@`#_s%#3) zSmBvc@Zh!?z9cJi~&E^fN+?Jq~D|1OHSHy(|G}R zzqP8~V8aLxa9BY>wnE6yQC&0ak8T9yzqv(3p+vY1-c{=QJOno&HJh9%K3KnkQlqKI z*ySa)%>c(%afpBxiX0($=pMv=gC@uufq4(`soovaqdT;6d$7_94Xx*?@4@R8YRXtj zXtm&}+xo2Tb`AC>MHc`7_Z-V-lB4#1=~2Td0km=8Tm@hUai6eO_OkUaidl||98ynn zGYHuAHAk3qhF1IT^6%tLSC&gr^|5`y_&+pUd*|M->8DrGYi{kdup_MiUbBRmS+4A@ zPvex%)+nht4#8Z}qnf7$2jtwXoGDeBrM#@CQaIrNU(NG?I`z^5(eoMe-??g zNNrgTF?iEy;%kV2WO=6|$$qrB#Ftc`Y)+$hB=ESE&G0(5HR@Lqx z>{E;4T7beb1DF5M&x>gk1Vj+=N!Z#W=KkCDIweOVfe$S)EJ%;^)~f+l>uHV5#bo9e zs8=K>zVOGdAx=izAG#4Esj%_xVz^5yo$ql1K!lO{{T1h{a8RRls@H8sm9B!)AdOZp zOVc;OypU)ron~n24{UZPkC`&I^-jM?%vz^to0qk>yx*b8I+KtJ_6=e$0pcN#So`t| zWMts?iZ?4S=wOtoS8Fqc=6U%N?cy6!VT2d4vP@=ziw#XCcg}xByKS- z+qM&Z%K|EMx;{A`3w7gp9~&-Wkka&EfK_dx8WI2AC-c(}57ntx=9CIYyGrBiJ4*Z` z)v1A%4)0Wio3R4qwK+ip-z3R82&*~BB2cfCLo_lb=8u(#8y74)|-xbakQ zT(XMOf}GfKTH~KB$)3xJ7b<6EcW-vhdamYrRDQi`yg7W@bN%I3<>LL_zb9$;Eh+d_ zuhQnbwqN$#l+-!iS-tzhG~`a`&mL8_xTAccRz?q`!phc%r8G=SDimceM0V zU_h{D1ONzUr}jWx0Msb3CU|b_Khp>CeWQQU4-o4jt^g5Wk75$lZB1R(!X{DXW=qbZp(LxX6I9o$bzQ7}M3fuLl#9iSvEfifn8pH1n~PeC;~ zfV;)<7rh{D4%z@pnie2I2#O-am^P+_*)@jhFM>`RaR*bv=r%!X17tGMAhZFJHE^(~ z7&6Uquu3?w{%~Sm%AdhZN2<>(akAlq-3DkxAY>oG<&8%d(8pKog>h_;a0VwO}`S~&MEw*)N;i6 z-3mrzgOhE7)f6(Lv&f=eH$(_#Atd=Gh94mcM^y3*EU};rdz!ba||KF}M0omipr|gi@L2A38w3y&4>-c1o{pn1u}crsjeE7>3yBK(vtq z%asvvCEr4ufO@P0i9CoT4wM0YZwh1)VZP;Rjc5tu1~@JmX4<~BMp#jzv`>jLrx0eI z2ph@~tsqwm8DM4emgNwuSnO8fnXQ(X-dsVs&cH{Txy1}Il&wv4#h@z=~>Oi?P|7?XY@F0raG(wpG z?VB2yJWZDe@Wyfsk|G6^49Abeth`Zfq(PTdu=?ntH@Ug?OET zRfduWz&z;N!uJtd_N|E%x6T+&>io{+Ls_pwM7Og&YZdZW!qMQ=i3mSRvkGO%A8k<; zE$R$#sfzKgiXn|ahx22QJJE?AZ+)t;ZXTG59ds&xT;WG-ZdGiJN8ChJV;4Vq$Rl>T zDseA1!J9uZW+#zIp#01O{r7e!mUK71flWj0(^IfOEMqmA^I@t3;tvZZjR=sgS)JbE zadU%U)*Z}ns|Gw4$fA4*V2`-H{F+9qhL_w+trW>?j7QQ`ote5DeYNi9!cPYV6#Wt? z+5=>gs^O)p5s^ofPy+CS;CM6D1r|GaKkneWA?WZU2uu+%8)`t^H6S>G47f)|4j>$W zlccK&OR0$q?`6x>L~raO{MU?Jc1l?HXu$v=xmxj1KOkQ)uWgs6xTdCI&!WolUaw~z zJ|5l-fN-G(jqC^bzi&_xD*Nk+8fACa-$Q_FOE!9eGsPuDp5o+cM3enoO0|u;`>2*Z z^<#GEG_b9+mm>Zaz{KoXY!S)H?8)knPdoXrhIfDppvIkD>ql8a!7>1$L_lkR&6;Yo z;9mRz&*GL{oLGRnMKWEe=SryeiyPH6kQ(_AK<^2f^sE!CEmqm5slscw5r&`b_qaWF zE){a?^`vBe)S^&_PJNUYUPptdg*DZE?5?AJhKTX*1r`Iy;)OqStI;S4(XiKyvZ6ly zJ+SPrL!@)`69I_8YINFw`2a5}peHwb1Y?9c2|x`8Nqqh#JfwSQXj-q{wO&i42EM2+ z!mmNos^cD(-p(U+gvhdB`Er0pcIE-EV;_}%-}LF>*FE<&zri*5?uJA|4zxO3vti3~ z=o_QZ?v{6hrOS^bKhYh}=-N@!s*d4SONNTW-61-J*KM4e|XA+(f|t$PY{W zlOJ{f=mA9uVsICH{G1mTr@VX|zyBL+?-|up6hB(tgd~J&LYHRf9qC;RNH2AeexfJh0wBOL^((m|SZ3v>Tv-n?1s&8%57lW+N!m6e;j?>WD{ z&+*>k;*7k46sQD)8Zc<~g4!_X34;>v*x1*>!5&cVy=7)>Zf*j~w4kI4TDyAs*REof zakkc=Aq;x6-Q8`V-20{e6KKQs^t6W%13-%y)PO;mR$Ph~v^_!b*q$g1O2xCYlUmy9 zpgF9n!zZoCV`#$4XrC*5`yG`J@q zqs)8Nh)+nEM@(Gsg~wCz%e*4uJfI=DOgyqlETK;fbe^N4LW@iCL0fo!VLCkg4JZ$%rX>~@W+x@Zg@y)x z{8$Q#(7U@E8yi1BsTlmO{(pZ_p5uXlz@Rt5A;i$I@QAmOQKaaY*tmD`35iL`@s{t? z(lau%vU76t@(T)!ic3n%K9pBfeysXbT~qtH?n`|`V-vZ#rM0cSqqD2Kr?;o zivGvE{`dbYe^&HfPgUW_|Jk4I`BXgd0oNM#Kl`(#(=~4A|C2yFL(_-&KLpxVBBPj1 zUv0&Y7sA|zX+}vj%e{&JyFi<9Eu7o9u4;Xx;MRW&wB-+b(~SRHpq=giQnNEh4*YL{ zwkuZb{y_cbU;ic0Hq;$%PJVQn8)*1)yffb#e(A=4`m-a&_rEqa{660OPk*-Y@9&fU z^kPZn@xT08;k<(X$Nubj zjFH0nQml!N$a0*Sxx?~1OS{75cx%t~W?-yKade(TjgymPFodS zg2h{veF~df9|v{BepZc|JN^7LX;=KS`n%`m&zkvQvF+NWc&F{pYk9@nbz9Y&+h2A& z#CGZr#+`N=PF9L{8vh(^?lcWsL3YWo-f`__q)^Fj3$5bTZYxSxe6Nkk!g=q!o$X1< zUI(Yw)?OzjM0~%CKf!swTR6XDzel`gYrj{jQ~Xz-+=TP5ex=otUju5#Tfe?yDJ2dD zwOCyahV+C=4~C5te;$mO=t>-pnpwCUj#)k_Jsh|8`gu5k3z0aQe3amF^vyoM^k~Yt z=I7D0Tc^bF_ZJf`$1~omrN^^=$3Ktf@RX7#^FgdnPZo$mWhaXfirXhYNV<}zOK}!Y zPnQ#)l%1}mcx|7qW`szdt>q*EnNQ|PCohY_vpLV&fnwtkjwwhPnHr~ z|DCSofB1K{RkQQ&_ipFq^FId@uIGPGRzIBo`*XYl{sd_=07^YFlzkVEG|GUoc99V( zyZ>(mTBW{Bdatfl?lUm;PMd`a(QD&n-y`Z7WicdlwF#>1g_^|KFlXtti(2i4S@vbI z)O58=`tF6}XtUWm^*Usd_af|#ve_rPIuz>m-nvC(bFS)js!Z)gdiP~>A9r=CpY28A zX>%}?`dymr`y`@K4liqWmyXJQG$|s7Ur4{(z-m7xu`fqZvAg@a@BVpg25qjeu6~bc z@_t-_QLd;(caM49{=4#sT=6IRy;f8E@wI)ql3v}tHfQ?@WZFEb5dFRf?7tGbjPhg> zy8G-@ekBb?f|gf9m_|{XA{HQm6jFv*ceXYexAh6Ws%zb-z+~ zBl6W&^}qT~{YpFO%U3_{{_21BD;=OKz)~6v2CyGwAdL$&S$hV9RSq&yZws`942Ht2 z4zk$#3v?8Fh9Z3rvN3dpdb$R~G06ux!p4OL7Cpo9bqBdpZwrl{7>p!O9powX7hd=3 z8A&@k$j8zZnS>aOX0aa@=ouH8CiINvsT>xXye%@zHyA6jIxMn0?=Ld1=@~2YJuJr2 z6sA>?k~1E?wM#jJN$sBE5T73PPVWg zl@pCi9^2!06}~QsOl9P5}gS=j-*iVEGalp@S%f34NthBh6gy6%Dp{4!!iFf^Tt|ssKZ>WhawhF(^XqjZA4&e!NN30 zCxC#&Z3q&NzjPrXUK<5NQM)g#Q$Of7*0~(ua0=HlORBTD<7R{(SCBbC%E`)3sjaO9gDW6mT)(0J^=mhXTp(Px8DQ35?mz07_!pRd8Ltt}74yy{*P{0fc2tfZ8bO8e@ zU}FPBpXV=J@OWR4ia=6)>E{VD-`hwcNM^Bdks#-RNfoe|0=8S$))v9Sieq*r$bw*O z#_Fya*h&G@DHW9^xw+}1qXQsdfzg!zO22e=wfy)o3vwG6O#v$@hE7lH9UdAP>zaCd zfHf2_$^s@*{My@$U7fA(SvWa8216<0lEODkzu^7^`;vWo1>mga}?ahaJ`?$4ZD z@^itM%IRsKbyx`4NAd6Kykm9i&!0EnzmF*@iFEh4=sv{Z`+B|VKASvuv$a+G`qeF9 zV8F=PVPfJrA;8et<%vg4wQE`Foi_n$#=0u{nn5EYv$LL33X;!1R{AtHI62#axs*4- z#=n0DZEyR(eQN^NWty6vs9o28_FSv5&<3ok932Jt`RQA{_AC2<^M7riaZPf69}nhL z%wBr?WxTv?uBc+D)zRT(Xe8Ux>S%LcH6_JT*X{w>R=Imu**)4#?TRAE<)*jf?cY4n z(vj4-bKCUsjj1UQJqzu7FYbP+e=KzD+dk3Or&gA}b-+Nizcy7V{9(G=Ua*BV)%tP)6`W$mBB(Y^dAPja2HW9zvAN810ao7|lEiS#s!_${2^sqs~ zJSn)@v!o36YzbJRrSbb`n}iSgZE5$u9JiyO*B@=s?p2!&=iMwmDm}OsyUGX?&U@*V zc|Z1r7&j^dcX$|)$!dOXFB5WfwB09?=0)qXa&{mr(VC##_^0P={ZSH1?_LAy-Xj1fbob2*H)Ey;_nwDNqCKY8L%w;j z?FnVPLAD5!{A9WdGBxC86Vu*`ex4kngVtwezZ7Nho+s%&XyXIu1V38^X=Pb3lQdP5 z7(yt#k-XZR2$BGB8$8y9?x~qHo(%<)H=%q0b<<#FMm^#UhgK940ITwDK@CpdOdV)M z${>${ew$mU97B&XIu)vq3gozaio~aJnQ08A0cIp12XULEfp}n6r2%zde%+O0UH_35~P>>geng1IOqz8l;rOz}&zQaX*=EXaC6dcnljj3mbLj}2Et9vajf@&^x z?J9o!-RQe78QV*rMo4E4nMa`G6oS+w-p|EEJZlwfu7BQeT;{Z_ZRuFZ1}HPJN6;9=FT+#8(F~9!^>#9gku?Q6& z@cth4ga=?iyz&m#vG-~`!bZ7ZwI}bkDU)U#K+RyQ@^xhNMhWYZ%9 z`Ub{XzV~DZE0gaeubk%KnaiiksNGbW z%Y!Ge7Tb#R0kIa^G5HEiO#JTQPTzkV34N}Pi^6CDk^5n8fk?AZhknMcU(_vEDbHMW zpygcKFDQXOg~qRqtnO$KCsZKy*ZFpC&92c~*1@s{_>pR<`z*qZ2lCr2X<_?SzEeG{w z)AoxS2A)u<`5~E@stXblx)hTbz!3we*kj<(c`}U+iXh=;3?S^G3}NMP$fI0WXp$Zj zg$G!X08L!ZqpUs*p6X-)Kmr4(#vC*&Oaq~bX`zu?rO?)301QxAWZZlZS_=y!*s=<^ zyXhd_MbdC~K^d8_fs5bpa3~uAVdADL#gv20``pYUha;%i<1n!$O9HZ?cw^7~*i0re zstjpl%Mj~vvG$S1aOj)JM7)Gfp1p(GFJr4e1_fYvvMH49WD>shMY@esQ@A3ZXlBhHUT-G`xihBdOOBocy9~J!sq)4ZO`IA)jyV$*Mu0XU;)LhoEAh( z?KAq1iBKw0{ZIpv&I<-g%>pY2e~mA+D#pNIuc*u$tKrJ=Uumapf&vTO#&%cwFmM4q z8`&5WHyN|Xbmbe$?kBxCo3TWv8ONKH(0-&|Z1Om*!-J4IOH`vr*4dWBz0_J#19jU+ z+4W7$cKz$E^wn|s^=nsEp(#>02wZcXkD0o1IOV+BtZeGQK~a@=$}KV$W2{ZSm2J>n zI55QP@tpzLov2%7U<~klj-{@A@kPsnj%F?ZN>?4n_1U>f4-T1@M=KDJ1tNS3lkZ_} zpF_}Z3ncyKv9M7ol#S#kOdAguB`r3XV5Z@PkIP2Du|WhNv;H22C^(EmafEtdWQBKp z=&I)aQ7<(?Asn9(l`se=R6xNug1R0<;*U#+SQqH>g%8dKh z9gc4A@u~+}Z4}b(Fq0CSBYGG$Cyr45G(Qnw%&~zFAYD@}q$E(?4aT5Gf?wbt%BU7StOLywqJx?zcdAdmnSXso}xeMJE#8mMc>xn zDX;%*XHt!RJvxg2dj5sVQCoQr7bl(ek(VETY-rIeL7^v_(+DXjM2|C6dmo!53`3ImVLrhrLUEm<{7( zxd8VjC8M7fbU@h1Oz<2#@p>Cz}uV;2kV(F&? z$1g>AUfW8cj%!p~bW!a!&mONlWZh%?ZE^W;f?w~1A9U9bn7=J4g<`^5L5E(=vHGh> z`7h_A*}Dkb!oHS*C^fv^brUL`ngCk_8iVv-)b*#syn#M z61ddve_Ig1t(puR5@w$S@(}|cGZUb@cEGNqs2K`oj~97|-kk97$bY3Uf=2KL!8L*u zEd!)j`I$0K;J$hqV@a8Qga8DRTxyEQ)fZx^)mRfkt%!Yq21h5FAAPE$jLU^H} zkcjic5I7{LIK;X%-`X}rpdWrk9uEalt5wuC3Fxf z7!A}i>4}q}Lqk4;t2Q460ZkK>rQ7{Up+FI)7YGQy8xx$O;vTIhS|%$@X>);u;T! z?S)TR7+C0`v6N_*LIv1G!>@X%h>;+>LleFv@U5qKz9%!p3E>_&k@%MDd?*sO5Vmvj zoXEt;^BE;^QQ>l7gd9W{x*H?)4WC09b5{?gkQAx3&Zt7AGUWYS$~LM>ICANP!%iCk z#X!R+qf_$r+(tXTt<;|*px4f-u#CL)0zw|BM# z2xB=k881*95y$;n%_VK8*!mDA)aF4`FQ?KiNWgrT!VFMS6pZdZN1zjwQuQ>EbHanION6F;XzZR3^- z(?{;4`gg?1tj7VO8Q+qa;8w|@t&AU&Qh@T5=A(B|6zt)h%*X5RDQq(ekE5MJ<+vE& zp^B(WEtG)_9Ld57Yb&7u5awL{($~Y}RfVt}AKzwz98ivD9|{msM$r`}9tiSYD-Sen zO9P~mxav^wV<-#ZEiS>IoPdu~3Rb5|r?CYXrI1GDk42l`N_XeL_i}13UUI0*vknF= zg*@2J?5Q7bubQU}Qsl#U@_#*dt;m7FDsp9RD&08uDwtA^7Da@?3j#=vd|?LYTRnl7 z9^|qvq&=oaCs3m`flz2B)JQKIN~V03Y@XS}eG-~Q1EIh1&BUW8&x$_}nwgVM&3MNV zRa%F#F+ex@=HU(EX?TjkvB6Ki`F_M=eS@NgFouAQoFCv&v1Nh0Th>3HVxQ#VoHJ+1 zvn;f%A14&<;%;+88C>wdS(lbc>_{ zgiI*MR9yLE!l(CMP~3#v47uOJR(ekWC_V}{d4oO)dwq5mD@R%W#Q^PO0Fje|NF_2{ z+$@q7DTm!Gr!+(fePQ5H1q&X}Mv%byxdCe30JS9=MPXKg?+h1nD!)es$e|#CgL{Z9u{1TmS>ht0(L7AnN=b!ziGnAl(k(GruTEQ2g2 z$>sh$5H^w>G!w9XS;u%Orqqo-bRW&v&&CVh(BJ@)hg6m^^`ruR2%noN-nGV;baw2 z>l}>|C9Sl`_eK?M%nNNy==PH@sD2SZR<(V{sr}b`hJUIkX6I6QtTXOc8&u;HMPD0h zG#Oe!E;X$G@I^P_Jc!bCo??hl;Kswxh^Nq=rvMknzWgq0;7Z0K<4o-=ONk~CRcN&I-z#0b}nE|;Y1*vVb6WXQd5HIZb zL$N^BxH>M6AyZt>fQh0YeyT<2a+qEQ#1jQyxYMKT)>Ej4N~!88{nMl9jIQ7Tu9Ps~ z5Bdw#Zm5g(UN!5jN$I5-8kn~ZUi;3nDL#KAfHFf`P5NAz|0J>| zqmSkMNZxd%<>z_aczjhjTh#XhH!WEPj=30*wjL~fvr#l$yJczt9!Ynb$b|ur! z8YRs&K~h7^2Cxzy%C!dr+_WPG4u=u;dlHJn@l$ zzh8s?-jxXJ`VbDi@ri{HM0v=nPl2PPKqFAQa>_;B>P0VYo-3a7_#mAW&SaprD9A@y zzp7mxcUi@pIJ9~BJ(oQ=6%bZe626rvf3!&@DTCB2{1ohhqQ@24%0eXO-C?!}{CS(Y zxfP_Ye;S%`wMjxH=V2br%~1_Z*F~P$FEi6ErzY)O3SFh&7o}(SXV6>yjjLSWX)+(X zG*4YP%>U4n+L8LSn{MdqyF42A8Hend?=B4BG%=iK#x3WQsoSvaElR)eh01H72|KrZ z4~0sbnKnit=f8^sGjb7VoA7bKZPA5i0oF`0zy(1L+TItP7oVB(SNSn{?}y0svDR<&+jdx7CwCt z15Y&s6j17jXxKe6Qu1Rjd`SMm1B#0z2ZIX4JvT^QRO_`yM50Mv{=MhvSM4LZjmp@z~ zaHGhEW9X@@&mcTucS+3#758+V#r<;WIBiAlZh~;i;z%KRNE`2(B#^0Lqb?Jp2e#Z1& z!~#OoYLD}(?s*yd(q&Zg>>mFdnqiRQ_BANy>wS^?`;v3JXjcL8^UHwf`977*FZrF? z43}SOb9;Pqzp(e=whw^;^Igq37Oe{h2A5o<)A@Cy^t77}688@D@1srJ)=bk6KRCgP zN)Io)QeHEG74_`lE+5&vK4O1{RL^LL_vH$nEO!i~Gl(uaCXckA0ht{pODS z&yVq!P6Do;1l>OgetkkrKM89(iI@W)LrzGSPGhc~#@#=Se|?&mewzG$lV+JaD?2|c zzx2EE>hG%izpG#WuDyS1!?Ugz#wdT2`O8%n$X6jtC{tO`bd5_`_v^6E`yT{kQ1W{T z>@t7)?x8GsSy1R*iv^}T=Y$;b%EUbT4^(&S{TTmk#=`&{q_u(VHXenFMy=YQgviLZ zCO_}#O8h*RKoZWkn*?_+oC7!EWU`Vwf*Xd)r)UnK;}X^SU#D4O1dP+Pl1!Hk;&~~8 zP;Sr#AesBgF7f6N9-xxA&=R-KXbWU%3k++i%m)IL*TU85q);1XS*C^NSM=n0huZ!xV}i;^{y2hYugLrqJ5`)GANCD1Bjw+k(N*_^bsvM7feW*$DF_I`2_E~NCft& zgM48HKt|iqF3a1umvqytPoJ&yr(O-&{`I&o$xRVlGQ|pgt;9xgq$V=059i&vz@bj7 z-r(~&sKV)-+QRuy%h2V3d~W~`-3+2M190@^ld&`+h+SUVD}PY8%CX6_hEiAlAc``m zAepylW%vadF+nU=CwMr7cW@_z5f|PP#k@PIi8s{Z>z5lfD>h0B^er%|CfN68QeAqj zg;DI&4d+>-5!Mt!%~=Dnu{!y+hhGL?As2Mr&_y2oY<@9=RS<8i3)pXF@y_s~@S_AUB>{y52Id58UoJvj1b)m543s-Dr;B@NL5Ds6w&j{F&HM3U0@Pb|FAk_7oo=+Y?u@3 znkCP$_8?eGtP4XSJuWJaP|N`4DS)2e#UF^HdKjzFDlYO}w{tBf;BvtymTBkSlp70S zYoA#8T_Cj?G=PwS*F6XHMn*X`!{jlB2qAg@AXom(psrk_xx?;2r{&iBkzFlL@bc_i z#jKFx29}j8kc{}e*jwhxcawysCKp4`PrC39Br*zzKr4~rWpEHB0tMtC12rKh%HBU3 zXp(yq#-=pSif3QLXaIK{J{?XVt%dh%Y+h?CfN2(?dbie}L7~yNMEPt>!ldvECRZ`n z3MvO%7;u5ZnCYy5E09}^#YBetoRuAXnwgLwCAP(NUaumfARS(-*14X_uE4L5#6ba=lL-ps2Ovl{0#NSOA?w%;0BhG6g)wl(KSf5XR5O{V2ioF}(ZQ7N8mLDY z7;io1vbu0A9WNQe=N*8&st19i9#Ej)Vkv~XFl;CMDJbD)Dn23}`R`4hVv+`MpY{hE zx-wR2pdymY&gkDq)B#GO-OzXUT4YNX3$ZnE*M6Qb96Xt|+Vu0Bmd&$Dis zc~alXPX(S-7%wvcD`BWF8zjEe=9cpeEXN1&-jX8yO)JW07Jdt^(Su!_52wKyty2N2l3MW7HX+K5*$d^F5o+?$-}BZ{NDp&hnMO z29e=y(__D7Nflcpl@Fi-084TR!MOs-`}YTSGOuXf4GUGqKmhAHK1df1eh%Ng6)J2= zfef-xa#_5=T#rL2PBt?pT@S?(Ni@iL8edKVkb{cWZWaJkqu-e-u}GCckA$EkDL^R{%o1(BF>VoEM=u>`rHX`=;41+hdH%q?82Bj}Ir^M_h zYO(@{>;~Gy)ery)wJ-KRQWZng>FHg!TDuImfjR!Y=9&(VGLKia>sT+$y8%dqfm80hSy(GnL7-(`5LO($8KX82iW1)}5*9W5}oX4msfL6;$zMz6V##}E|0fMUX zkdU_f=bGf9IGkZSH)Q1qVELkQ_r>*X*~jOv!sGle*O4sz3F+ zK)kSzlim?Dw!_ol}HC5`@UScNC=(w(K~#Z zH}+W^r?JET9fC3oM(_#$q!MFn=+Uyp6rwe?$}z5K#`a`frs_(EDdU%;8J`nErP;bx z?C^z0rlr+?o)kVuQR;n+2wnvinWN506c;mAE|`AobQoSq;s=iFn$}!Bf|=tkh3!R# zs3np53ucd>)P++WB)pIWMlNdrNxDd9ybbyy5=%w-`O@eG&5Kf#WQ3hbv&XU^{&;o- z8Ebm3muuq)Xc=@`h7|HJ074KvEgwZC2lC_HFYrfX#0zkbL@mg>6yq(wXM%tfs4mCE z)<6FeC)4m`nut_Ga%YhVdQjR#JTtbeWf#H}jubnAh^}FB>(n4!P-=2BXAb_XRd!dE z_y=A2I-K~mIFzPDwT-=@#lB%AP<(!bk+4Y>@S~BvUW2Qx`RqsKHxA;|!y0fzx0apA zVkCWd+93B*Q?WQyL5%VIvRQK=K94~}S%pt}^kX_(ipGrewR*9Sh;ns}R&~vhFF$1) z^qX4<-guo6WatA38mE=mm2%iyD2k_h3B}9t@&(mGAtqP(iI)K-I<@S}V_o=sD3&Lg z2%*6Lz6gcE0JtC7BBPkmrW%I2MwogCknSG zst`Ge(5-@^O4ZAEmb%jpx)JZ`Z@e#$C@NQ6j1>p)te6OCJ)yH&zMt20aW5D#0TW5`$- zxRf2mh!a-s<5ROv{dO&^akMqK3Q4ri#nN_$$_ZR#M{@Rbg?sCFXc5EM1*4s_z91RS z2`$V%%E)(|L^c%OQ5AWkurN`Jn8ZZ(7gqrFOxX8sLSb@x+rZZ7z(XIZ&liib>M8?~ z=@%*Rc~EFeK{>cyYojKnzDI6i18$)4CL&!5gi!XAf!%0kH;(GFa-fS;K4Vq1A6C|` z467{wwqpR=#PGnu$cRy$W(MF&cBrh>jiFY<5hu0=t*`^@8zSMFb^|)QAQI&OjT_&XUf6L}*hx@?fhFT_@jPu8Gg>XAG!6oE1yEoESQ7Eq z;-nZ*kc(J?G!_U|X$q{x4*(EuH>iLK0a@Prj}b471?aFnRn(eSVvzc|W^8K(hT1JA zsa*r_QRRbXz?zvg)CfH`i2KX@K;Hb3_RY{WS_(3hXP&?UWwH3AaVPio-P}%&$BeF5 zu3tYiYf>UyLRmgxn!GfKFUXj%OdYd2>`QnqiRuavUkg1~Xue=QcH8D~Y^f;Jm2SfC zQzM?s5`qj2$ZdA58g_AkSwkS41q3Pk%)MA7r-OLtB<~HrkwE<0xuAe+OpvRj0Pq+G zA_pSe56w;pcW(D12SgVb1w)X6}m{Y zVa%z`+Q`=BkI94gh7Kn;*kRKdYTB}Q?54-Xrgh72vWJi zL=NF{yt;=Z+)b5RN^NyNFhkGkZ5c+)-Kq4c1gS`KlFWHPs9c}m6IK~zG9bz0Uf z69Z}V01omzu>dNM2Xyc=lnOu2Wpy4}S~Du5tZaEQQhk5Kp%!C^4=GC?l5lt=u10R< zhx*ZvtJ}6KcViPqnH4=Bq}Dx*O?()mw*+@y3NMF>oFp2M21u|aFv?=2@Nh5`DeQ(Z z_KegJ_Js73c94mz9;LM=P#~RX3JZcfr+X3aig`R$rK}df2Ucdail}uX@L? z`sA(pRQ>=rCw_QSR6H=#9B5LBT!~XMf&8cr4ZwCy;+k->gK((B z+w1Ew|L9Yz9q^6o(ex?lX)%f8I+-l%zoi_nt*mCN|3Df$ru(kvdZvl^Z`c-Y#MN$e zbZrEzID{Xqmkkh0uhUno6y^`uSLUt7=s2mGJC*CGX4-5P20Pa1Tu}58&*(s^sn{3N zI|Xec7h=Y*d4~D)@--egJ?&rrAh=aWpW3wY=*vIHcoyf_+4+XN4VCb%v!y5fc}`e| ztwt&5?tytNb>|iZ`v&eUGDG5!phG{m!)V85%0J?;o%58=M!U^Vw{Q06tFL}`A{@Wj zQBAQd4IF*>Mqiej<~%t|95#Qd^sk1>p|SJnb{L>BuhSpH*2>bx%6N-< zcwNKOK|#!@&JNGWwnwV{THfZt>{Fi6-Ytc7vJI(Q$N3k_j?&T3_3@wowx3$kyIo<| z724O%_??Tdw?!^IL!9o;RPXRAGBrJQL(N@ezv>FR@cfd+z4Oo9R8kh}Tys0n zRc9uzXOb4bgm~Re4V0T|T^Wy&;!hGA2Y%K!{^}ptx^{7!+iOQ=u82R~RW<+FkLzw4 zO*`tHn}_NzhBOWsCY}iy9(*r*LFQdERy-KlTr;tlS(|-Mx$35Sp+ogNR(bV>ftSbW zQ>Q{Zk6WECY0?)u{a-Ac{u&)W)c)Wh8|89eH}sxj+}-<64VwjAl~F2 zUFL?F*mci;E_&lA+s4yp=g>mv#q0B9FI_M1rUMTP7t-3X(`84?niuDMSC36K_3%}KQ{?e}sL+XT&6fO)173^M*RBVVonFs%J)7y* zU7xf>M7_9qb)PfpSfX<$Y2x`_^>NailkkTVwI@ey!FxHEym=|T8J}KMv;yw65Ouy1s<;<625z53jR3AGV_?e;3~H zYk2M3e8au;st3;p&w(bd@_g@Zp$(-=K2I%PetmtKes)q#d7A#g_mkr3`I-Mqx6Z#^ z^nay~{aRLE(lq(ZO^AwF?3Q2MZn#|0{?#kxLSoweJ(a6}6)6u&L;hU8@%v%tzd79q zk50eCaletK;}DkLb~P^xYF=#~zgYP2+r4Symypk3dNOBXE9m*S~tuzh%$w*A2{e`3Ep#j zvmyUu^quKz8F}_kTYW|5L*ukP3O}dH?Y<7rs8~4P{OtKY-q?4nVEU66eH5Ro*!R5cjdX&S-IeMckJiOb zrw(6fxxoYWA+da<|KIg3{Ksm}zX^4%xh#8)6JJx$?@o@@Bs*STP-JsXxv6{Kd;B*4 zoGJ0Gz%;=IJ;`P1uHDY+M<>I2FZj2QCublRFCyix>#}(!Ua%u?=8n)aVP1dMmSvmg z1%;C~ZVIMKNg=X}Cp@pSQWbIdC6UkkAyhhv8NPf2ERP}tR2;_R#5dL+oyQjvsaz%;(c|eU%W!}-dVb-UwKC`z{?=Gu;6{9?{c_Nk%~>O|G+6O&e*Z= z+q-0X$4$TFVX7SW0MWDAfJTF!Lhm{o%c8{ z0cESHPqpmHA~nnVlfuDQkHQ>_oA%Exl~pp(ES6Rq7nkP8H#!K_Y?{`Ik|DC2d3CFi zJsS-?2Bj82|w9^_V^UpuUCFM|N5#{!znkU&GAYuUX|mD+_3S4+GgK%!z=P*>bm#j z$8SAP`7~hh{IC3^<;$60%!EgJ~A);u(eS#YY@o`356knniHh#p9b#&6VQ^ z{xs^flcx;+Cox99OO+Pis;2#zbG@1-`y=-Mdzz(5?N`6*x!S>hq*)Hf?!LZq1g2T8 z9M8Ob{gTt2R?1(KtBqj7z;8K!Gz*xa{jV*w?hKz(MaVsXGc9p2=~5ya?rUqbOf&`7 z@A$!`)Bi9a$pHH<=FjwfDBlS=A!!+Uw|1Tdi;F!db#<`#457*}QEW|mjO1U_&{Xoy zJ1QkTUeI7hYTJ|c=rS;JFg&%ZW$9aD?wwa(5~(eoXfkEpc$N4YPDR>nm=DDQvV(IP zSr|MW=OYTJH}G3;Ertn+1?I6`)OErgQW5jiRLTS{DU1&N36>I}K>!NyC^jUH3Ls%w zrQHGoahc&%!brL{VLeD+CI-2-NKKzb2`R|H7_jm4-^I#)EFi%6?FoPpj#2EvO*Pqh z4O)y)^o@>;U@B=mz%QkVe}x6;&#_&A(l^b0lBxcmFpG33-r)8C$q$lYEB*lqu-k}g z$dxQhz4|OBQDzWd?6fR~UNq``GemC)<7R`A0AUswHIzt((wGtinPi+SK0aW5=S`9d z&VWmt05pw0_`sBmsGGa3)Vt+yzP1j zGEiuulZJ3I31UJn(PFruCqP}9Evd^J=izX}fqBIKs4`dUi*v_56HfqSIX9IVDW$54 zr#EgZ5c-s9E<(IwA6%Av`;g1>HMWt%v$+CT1Kd9Twx|i3jHfu|z|yT@p)OEUAW-76 zmIeyKY7`f(&UOEx27ZqC9U&3z^3#=|Y8~orO9!mA(DqC~=#W^N=AT$YzOk#+PCU&N z;$4!U+H1WmSq;6|g=g#FBe2!-ysr9`84_)fxR=D%PPZTkBif_ppPjVOxl6tffLgN) zWwfhy?7l9R!bKc>AudXQB~t zw*Y_R5Z@Dk0}u@R?*w_VfspS2U}snu9oI{js z8ws!6s_35S{pX&BUdd})8XSPEt&euJ(4ZGbivi@Z@|6|fg$v3_u?6Gr_KA%yiy|j( zV~!G?!=a(pURTFFL3yW@a$}}ld?{1PC=vK@VRsQSIE^`u^l;*_A%$A}X{sWX0B7?! z;Lr3J!_I>i#_%4s77P#VnjIB?B&5v_0&K_;SsO8U*{=Bfs%j5-OpiN6@6V6o)XXxt zNPs_U+l9-l{J;Zxe8I$*2?bUxMTQAfdb=KT2Sxr$$NM7deeT$UEq=SG+4j4P2sj;z zpE9_7t@LYs_^lgV-SEPF)f&?XrmI~gPFK7_IF=TDMo(@*=8q&>&bjtzbbU2(QUo<$ zC@p%vpPFAS1_O+k7KS81fl zm>p$OF_8kO{G6NtBk~1GEEWk!!CX#9shG=nc%rY2XBtE!;qJ|5*>vp=)AAWUTx1p& zlU6D{@-!Y+Q`s&7aPngT`8nUZ=$^@+U%uQMjPbf=M&4P#?)t>jX#tdM5CGMDAqRl7 zX+i&RpV&6<{GFvjrDSShz`r&)FW`wz-_zI7Al=rO#Hzi;BQmh11cNk;o(rtOnLxyX#v?M%tTx96?iwD)E}DL)7K`cvH`kkK_|q?Nwm}AL zxzy)1P_{5O9tKe!p)?$IS;lfE&%VeUUvmcSFm6dcODfg0=S>DXZyOB~%SFaB_CY9v zG?w0QPts+v1}q%kUKFs)0-P5`7qj-iu>e?&(t8VA{nsgx9M5g>OofmNDy%RMvrsO} z*9=qbg+Z7W*-9P&z!}@IiP-3|d;wOoyZ zM;iPZDrN8POrDdo^s$VocQtDHjo5<(IfHKN0Ol+~=GYiR9Il9I(T;R z$E*Y!4U@c<)NJRncQEe+I<_G6(h810?~Y7ftNV(EcOHPZb3I#fR(~(AkG&+_EI)Of zLJQBDLIAdG%*U)4x)Q|~5=w>=G^&Q-Ol@!^nKh*i3E+{M*Ew-mSe*4GBvxcMTbI5W zHIG#oYgTATXJpfYTLS^yu+!Xx(>v1u&}>FUhM4gC4wJ_|TU~`EP=Mfm zcFyF={wA`=GU}hOI~35T%X7+PQm$TQ#k7G}fgd$Yk9iq4HOTkBk#v?}QT*@Qo(*7$ zg{7BXI+iYJcVX#HX_s!K1u>RRk(Sc$N=dhfluIcnNF#zGDJ7+#A}Y`Rf6wcAH#5h~ z@wx8nK2Hu191Eht6X+bMjfhOzAH;wLQ43Y!j)N*J3l~%Bb$r_#-l{g!#jg-dDzx&_ zzFmt=6)$Fcl~cZpt$CVT=2FrmrpL0KCxXl69nKx}E&&7Oj`_e8xgqRl4aPiKs3E&a zv)t>dIdNK1b;hT=&SG_2wtH1zj1pY?Za*e!i5>>SP*@;2pm7Xz7zm!w9pj%)^Ld2G z6afY-OCAIH1RquqFudLGi@O>JI{!le#PCrrJ5)CD|Lk`(SfRXKjxwjoB1IZCb$ydA*K<~i4Vyk@00PQc% zV!w&n1RLmA%Z$fPNX!SoqDbL~fuH8n05HkpnxOub0#oWdZ<&9fwQtktLZNXT~y#GO$ zkl^Sg*>;Vmj~;-YVp|GDTg@{4SfQ5M0B()o6ZcT)zydo;zL6mKv!yO?G;)yuFTx7e z0{L(uZ6N|9i_?LK&@I-)TaW&`{d-5&wlb;u3qESIod)3eh)y+fFCiIKo(8;04>pbj z9H;?!CPsW($k#FxJ6dAEWTvA%s0^h$;L=-#5Od<&6&a;}buoB@eXJR4zhn29 zZMJ{m`@4DpYRtZWEvZd1aN@mirn$1*pex33R{(vnvK7oE73i1vGu`r6vd1IoApMmo z0b$wyq-FI~La?}y_X`5veqVO!^}vcbKnOtFLi%!N|HdbO_B*oLP%FTA_@DM=?&UX6 z@8Tw)L*}o*@L!SPr-LC(T*FM?r`OD&1{@^ZcnJFkS$gA|Eo|t8(czU)fa+J{R`*9Jgbi3QT@NNmn+l-xKeKoR^uRH!r_-``{yXJQ z@ClVM%6!232Vf0+40KhP z7u={L%HR@+hkr|N9g#~GPa0t zwP3{{;MbCiNnC;VIj>`V={*;3mWlH$%Trz+Q2w-%XbxkK+XC8IRI@H+&n?=iGaeiJ zDgYtv(HgC*$*q<`AW9PwO};nQxqzO1Shc-PO*9`+4AfA#d#2RsA8$ZQ!9x*=2kt7OV|3J4~&A26F7L41`8 zq~`g@)^7YY@}U5fHmU|_{)*R<(l!XPPUTe=&0|NBpmdjmhv!w|x_WtkCHH6=6*w9J zW5D@lp=oY~hrZN!dF7|>L@$pY#w+c#4^MUX+fAW?`aHvp^bz5OomkI2cjH7ik3_TO zlk4okSXd|XBze<7v5N-aMd1)35jxQk+N;XiUzLLdLy;*t^Q}$_oe^Jc2!QPJ-6(+S z>+JKDY;pbZIF_3iolik!xXJ0gGrQr#G0Yi=fDlpA#?R;!IP^W+0uTj0Ym0KUu<~`w(QXzhQ!E+ z?C=9#iYXG5Me^Brn%Q+(-}mLd3N73;n22darcC4Qw?%n^UzFa4Vl7@2JePU`e!-}7 z>df*KF=fpYeS(W-k4mb~F;2|xiBefU$>M{?+^o|Lzry!U`I_a=_g;b8i>ia{ox9@F}E@%Q&lPNS5NZdi7-S3_%C-F*a3644@H=x1-y-{6hD_Ij;C_TBtB&!(`GP-1Cr;&vRTgNlPkv^5>ZiEK#7 ztjXktw%hLg=;t?*eTv1|>-@HfttPFAUz+GtUUc8=gwIE_mVur3EGY839SjI}R=lx9 z7P+@COvhvU_9y#FzkI3M1&%>4XR~`^g_k&n>-8}W>bU%U1f0W0qxQO!!f5f5S1&s8 zU!pQM81U(2xfayat#mu))2Fg5^I>z1`6g98eDAk6%ByzW;ibBy?m(eJG z92zwe8Xhw}o}6O+&A)jLdaz=c9J`z{g}*nRSj7pnRy-7|6dZoXmpEztyKK8x@rxMd zjR&@dU~%u(?i@g_DZzDbdOspDjB7ei{$=2fcwGaX|Lg%3BT$kEe;g}%5Q*4Yj}Au9 zIFZu7G#G-;fNTbV&tL#yBQDT+83Vr{Y|?t@O7*k_MM792Ex*6#;e&p)ip6T+`C}D2 zZ%%hQWwaErP!TX}o&%0!nxAMf$VE-E+?hI+Ku07YQ3TmHP3AEm_ALUNJ%Pfvq>++fRyGNQzEi5Qdy-A73NV*$8>Mck}N<;$@ zg4&rX*UyV$oe804f=7`*4$+_l0HIMPX34mg(Q|7`G36YBB3J zbR^PJr$Vc8`YKZYzO1U=5Knz%gL8M($=+7L`I!@dhAs~HV}U{m7h4#KSb8gR|9z{^ z`~F9Gh9HmC zO@3nm_N;Ka0T41BOp`=x!K>w{Sdg@mq7iVNtChJJfRUG*00l8wq*4Nl9t;F27VS$6 zz};e{Bg8r^fq)h%xA_vXf7gta1615IXwk4Dj8Mp2fVt35D8Zaxd@!Uri@oc2O+4dZ zktx8_D-kAG)cMtlUzW9wp_&4ar3a|WJ#NIaNlyg>P!)?*3UjSdIN{9kHWMJ;xDPXH z_|gz=0;6(20?n{Vg)0M7HU?LJ{MkP#&uo$3t;kD7pi;L@z%2%X4o(54i(o*}B4-Cc z01~a;xoC4?P3C%Ihw%<{V;eVm&hmNqnXUFd+Dskoi$BVMMsNn(RW9~eNh)x%?oKzY z2Fh8k%O(T~YUnPtn;YDRvpBpTjASN2{Smtf3MJ&Xc zl&c0YPr5&eBY1Hwg+I%FUDmRyYdz)K@8J8=(y5T9bFFvwlAsYzR2D5$%Ya8~odpD} zCz8*wnO3_`fPkc@?{6M_DSc5-^U(lxpWe6W-FBC|!75E{m&aQgvBGrw%*uxg@KkB} z8jN?o=O^Edtbx2~*dtw$Z@vcvwi4f?e%BA`tr=`G@Ty4TSl{~Ah3+eL#S3QOE03ks z=xZtKHrHM>r#hXCaNPKK@|yqY`PWhLW^U;#P?G!lnAFk7@W(RVT?v0jfAxN!rV#sd zI`5E@5eHNBclq(bulZBdr0PqTo5w{6RKkSLXP4+StaPj!^{t{y9e^qMKV-~S@eSAC zDUI3MM@BmcO#1GNqm_#zGz0IS6A+<%CN*62`rn+9h%TBRbUSW;k5<^l|DB)k?X%~^ z`{Fw#zp-OL^w|UoMPlUeP0aDLBey7|HsdcMW?uyn&*aRn(3Q^3xgW79$j@PDXqKB> z(6K2jS8Qk+oSXOPbW;?|VPu(=n_s24C2m=4WZRTm&=|3WcH=O1c$ZuFtYb?mwAk3? zF!y2K>6T0!hlv|~UeSo+7rC5b6EEq!;)#ea3Qssp{mk-8<~zP9wHBKO1?QE1I{k8G zfWs^_E3a%zaa(n|*etRs@6kcTw)z@}dCa@K$7dbenkU8PIFV!b-HNQMFBG6mqYTnu zVX>j;N<_jf3K80Qn``Os&21jh*bYccV%X<%gtAFs*epjEwnNVJJW?gtPx1RgvS#$E4IzIyQ zc~rutB;KZ3NOPY$eChoon$D*Ku@YAqFWw&w&!aQp=4q7KHkFRHP2Lr|xF<%IRqj=F z*)%|Li7Zu<^7wyL2m<&OjoOHNN;r>PBRKuXQfIZHE&37CV^-AZXpyzKP8a3&;rY^h zfo*&otMqy5#rRl(QqAj6SstqUPm}rz#B-~pt%YgwAGs{pP~)cb)STp(zVwSJTl=;HgKCN8GJH&Jm+MfQbETryKmNJwA8bR zPcpSK0ehE)x0-P?-nbsFfQ`p>m$Sl}zqLd*!ybl`Yl%DkNY!Rs7!SYWZqD{? zmDRC`sC&nLNbe7cFR5eaw#&(b25B%knu`@g{&Hc15}?grx9OZKlz?ydgTx-0Gf0X5 zxYv<)1N)-JO6mi^+R{hS7c=qcAns?U)WohARgbwx_Yb`&m!v9R=g(hj=bn9F4$pr- z+?1(85o>VF1gtr}?>)2`Ig^Uli>Ui_QEl97+xMv^%9KR^vo6#jU_bwXTA%H`=*HRu z+j_2}X&d^c#pmxn>OZ{mwfvIuS8W<~z`@;;S!=4ENoNF<0~QC9AwFklDTe}y7-};l z7K;1sJ;2Nhq?q3xq9j5=h?QeT3s|MV)$>7h*KW7wG2mPO&;H9h+b`Z~Z1L~~12*Ko zJJIsRNI9!?2#VIk0)Vs716<=?P)-bpm2R#;Kyi~YWr{$t*HQvS0f6+V^S;xhV($Oq zQ-X_lJky8Sl^Q+10=MK8^vur=TRmU;sZbJNs!^B%~uJ!7JwoV z*rO1V|={IdzrFiU9ui;3rh}*C9QrKkJ}IvRy5+WlH+scg8{B6xGW^ zO0-B_=i%3mELb~)`kpLoE4Z{|>ic-zv}BNAAo0Dkw&D*A|1XsJ99}SlsEP8T1rcdk z*J*9dH9BR%qX@uv*nB1g{<7tJ+y3`DgoqG83lH&GnGza5o@f!M$4{bV;~{jINPtLl z>W#8kRZ7JR67XOFB5k=I^9%{?ihjnTEokRKi8^^r*^0OVW>lDVZE>fDt|BD$UQ=Q^ ztBshi#503dU)K!@*`M@5F%-R+3e>a~%e1v;Jgh5dLfM_+t%cA^1HI-tJq3#PYB}3w zJCuW!j^T>Hzu)*EB1X_ao4*c$&d=chVN~t#CSVM6c{RJ{I=d7aVMn3~q%U6h z$*(X@5XO-bP%Xq<0W$-^01$SgbHz$#D-6wVCI88+m26NFzrXi;pKtc50#Dn#M7{iF zC|br^A6}k2+truG-A;n1#T#+d$E4lZ)CI7aw~^%PD=KKby|5b z+@8M4BA{`A*LeF~!{hZ~RQr{C;e(a4%AwXk#CP=N->?R?d^Ic!dVLZ>wJQ3byP(mj zjt&bDO;9Q$g`6^JjO1xVk~F4g_eQ@o>@e}GhAUw66k}T`U%XRzYo?UZVfd)Sz}R}e zLx(?ZN--l_iA$dEzi`1(6kYF}aaEOm_o?yFDqtZD(ny4mk4O2QDkhe&S4QEeE!iX@ zdb7iAhXvb0GN)I-9CgfT(3#44k_~mpk$AJKTjo83A|B>|Ubu3sE8p7#CKcsM*?0z)y!&{au?~JI*xZOe(C?C+3HboQ)g>$=!It+=|Wp zVY$}@lfy&zAVE9+k5QbLwn^gEN-!4fVBrM^^+B4u1RA0#q);GmWWk4jf^Sku`R`b* z1RQgA5?UqQLmx1kjWF5`4t>rN{#lxej~y@i-iSdScJYj#l|78(y+JfyuiM=z#RI0u zf*xkF5_4DadhYSEB1+xssxLbbcvH~(r)Paoq#qRR{NAEZ`{q@FXupMz!JX*jHu(ra z+j}5us&?N#u-4dy;7+(-3MRwBI{DKm-nmqzI$Y(O})$*IYf2gDG zSV#R$jQ;#4@^fLpL+yJN$@dNl>G19!{Ruku@1y?~qJ;pZLV;U1I`%d0yG+l!{50mh z!mg~)6?U&<|I3-e<(2oYyYns;3$9pemltE#_YajsnLU$pJ-yoLGv_<>!UQDaHL)i0~rZYsG7~cAZ zgeCb?fT?@TICOt4lB6TBH8m!Gfx9@Q>A z>O(M>t4j(?j%N$f4RHw#L+8_!#HMLA&6ROQPXMqQ5`}VRa&5>7c*q|{%L))>=>_HF z$&*eZs@z==ImkZ~Z`D4j^**Lf87$d0-GHkWgvO)j!2F7(5-4qf@gXzVgt(oP1Q@vM zq3sM1aaC-b@%`q38tp_8m1e4u<2CjbF7Fx2vhx8qj|HW zyyK7eM52%Pb=heBeE7hus#xyr^pC zYZ7Go=sY-K-vYOT-jeLrHQT8~w3qOMX`W-`=J!c;Lm{!3DQ*{km&EM6mK#ipc2KfV_G`0`Qy+^4X| zJ~0boOQAHMdJG=E*L>LfH+=84rB`dFNzBUbqYQ(eE7ZJbF|qjdzE9`q&$T;KwEx!l zwbq62u9KA`QvcTFv^JFPZm9NeX#U&4YHjM?-8AgqH2t?}skLQ$cgtZVyot!zK%8G& z2X_*`JSSb!!K$=1!(1h*8!DlNFk1JBnIA~UuZ>(o~>!oH%_i2;!4nXvx5?&JO5eklz33gB`S^isu2eWo8hxRSi5 zrNJF=F#Wix+BK~KW9W>bVOjM)M5@b{@83x2@7y@#_xaii>6SosNT!?!dViB~xT#zL zy{)A#$>$uh^PQb`Q10co5BoN?vF8+@^Pl8maH$)_;GY4oqFeI%8#q6 z!}xPe`Kf-goi$K0|2kV<((i$xDa3vCUnYNg)`yYkw}f8&LiJeG-Lv4#>8Y2mfpRKB z98^7G3WdqQCP2CB3`skDiZq~?z;n%N#P=EhLW$u+{}GNtVO*NolRAr%B$G@1 zE}d%I=2)IzF@oTL`A;dIkDZa=Rn76}U@0Q~hm-)-{J z@^$ZDwH?WXB1VW?f_x`!SFgdI=$JYsJZ1yhx%I;55ncz{C!r0@nhjw>5CooRx%+v@*CB3am7gKLLU34Jl@T3ljjaG@&q{={6i! z^CVTmakr|Nre)Vn8Apm^e2h5Jp<%ha&0ZM|&c2cz&Zy|-}M||lhxNCSkV<| z4)aWaOn+o&2C3)7tmDSZOUjQ^Z4+8t2OY_(bgjcI<~VGVs>V{ig@ZlQvV@d7%^m3*&$elfO~J2PuMniAwPJ(zqgk`dCRdh{p2dZREl zxO?AmQ@R)Ldi&WcNRo--7+g3gWRYfnTox;-uh9yyI%(YaXp_MyQIjeCE_x&DDt*i* z8YG8>x+qo}a^{+M)blW3s&Xg!Ng(oZTc)DtOGdA%a8pcRZmY%TcMEM2*D zn#}OKJry!(jsz%2R#jqo#>%?kydmv zcRnESG_!)7o|)3Mx`u%Lx1vUqYPXPDrej%zlblfX?{SW|!3()rQ7iy2&x@DCMY;4f zHdXpl@87r$=Ax)EU(~3;?+Tp5QImhXWTleLLaB)lAm<*a53uP}qlj`AB^t*SS<5Sf zm#zF^Wdy(5K8^5lvj@EYBOf9Xx#h2LBVmG2LPFdx4A1}}QI7)lsenGIj z@$2_{H8a7X{4M{Pyni#3ED_aoQPGz@QueMq2Up@;lb^h+g=wt{8SIdd2sw3ukDF$e~ zLsIA2H`6{YstT{11aBK>v)P4eeHJmY{mR$ZxX*OgO3k=%->M)F(*=49(q|0S-Nz@7-QbgK{ko zAD-s$H6l$4OHfbm2GyM`Ib6?JURr#ooU|Y7W#Hp5)cxh``L(ufE%Uu`s7%+uB=^d7 zlR2LB9xvyocedjQf|0ppBvcWiZz%hHZ=$jykp0Fze&qx6ouNN_JTlZ`u6QcS$i5l7T&_EcJN?n}^6$@PL+yy624_Hu z@9hlrx8mxnv8_qPq0h%S&R%i52+KTp@q7aw{6xKXN9^iPbJo1?k08YDn-sUEY?*!( zWV#S%`qf$x`==p}+#8GY9}<=$cplwh+)+!805!_3z|0)5W05J%P5IyOdA*inaoNyj!?wvVTqfB6*H? z?6+Z$(VL@NWPIu$ZjG&@M|4L$dC-4o)qAEpS1%ctpBqd+_g8unQ??zG_LS^vAP}@w z!P%y_WwpHLsNy%SjLN~53c}!W3LiHA4~X}t++>5|*0!y$OT1085`vAuA>`vKPEdh?S$>IIqq zQuFfFKC(=Lt|bgdM*SAOEn!JPmZEw41~=bKii}3;r6vNz#6ywfxc7*pqLdVaBt_pO z8Ds)vAQ`%r9Ac2hhm60RBRow_uZ3N5Xd}3d2~bWvm1TBdsRzXo7A%8;kmO7e&*Ows zxc?9HwyFW3!ojPWoY&%c-V3{vWE?^OgDEg`h`)3fF0Y(|4G;1fN@rY6ZxPE-u1WR4 zf(1|zF3@+ky3vPsb|31wQP!06Yl*5-%eoW|fRkQlTv4mURGW+w9 ziouxJty4FOln=(#*{*ZGjDiSCG9+YCxTxp^&{d3a@ME#c&MLN~TKS17Ce!T@_`?W} zqBXErd;p0t{;@0{R1T)|C3f~H6Fm|9S`H+2Y<4%ir(Whi;@oN%@_$a+96^vKiAxAk`!Kz>xUM!+p_VKj{*R{aNjlOtn}d>QP@aBSS6f$CYE)O` zR##6`-&#@|B@5LB!rRj8U)0s#Gpz6Iu763>Fd)$|WYjR?-|#xUVXUs9BHYzbl`X8UM_^^qv=2yB}AR3oQ_6%rsj7F-1KO&j3JNosJo8kJchhtvi_4 zI?*{D*#n(MQO=ekiP(HybMh&x;yaTmz^(ug-+T|$=6Dl;M+db(@WUpz!#e-`jU zzcjs+R_qm5_ZV$mcw7(IxHpZqMPa`;h_+Wr&ZRoGTL{z|ISp}o%M8c@m{1B=Qa5Cp z$!D*3k`{SAhdB-;w2JQE-0xXc2gZ%thm3m-_bHU|m+TU8tly1ay5gC{7=iv+X8aRo zxMlmSlYHNE8t%S%+HejKiFu8QmyykOYKV1uKxlx91I3!=Hbkw#xLuFL zer1gw7=B|sQd%PD89&6=(C?Vp<=oJ(AKE8I+XImU3dwo8wp2~%D{u?v_kEGD?Gb3J z2(5siB9pZBdJklZUnL-@*Rap|tKkk7QK-hKs*QlgcT+U*z^8d)dPJZ(9QNxYkb16O z5a&xqZVy8DNGSJMPK%P|t4HgCeqbS`!OK@vier!fZYJ3w(F-X<0)LSlf??`;_#bY+ z+pnKyc0*c5p&-aG7r^l9jc9=J;x_>}HrN$#biRa@lox{PhZ#@EE zzn5d2pyQk72F-nC>>Nk&w+Y+`LvqBIY-o7eTa6si)kd@{=_kD0tsj5uJozKAz1sNY zcXc3IM{*PbxK@bwUtEz6e|Rr*5+EqhZlKlWre0Z130ElT>P()Gla>ahfRJ!)2oUL^ z=t^u6*^rzPkcwHJdNO^5hU@heABmblP~D&e2Nd0=jjs1WUUG8}=3dFtof-|Be4A;= zG4%!#0%pWOET)w^dY_4#Dt~6YoW>+b)?8cxWaWVDyn&C*PcIbB`eu;#yJSLQ80D$B zv$J$JHKmwURL7KgATmo098B;zDE~qv05P*z@Nq%9{+(j4S&;ESa&O4-4!qZZOs2qV zP4aal8^?dWouU2HO6QE66^5YkA0AGyfI_rS)pZBx0F6yc({NpKfj{%_;@-0TWB5|f zEaGINJ>$+2>2?Rd?34}+h}~Th#vu?L&ocF1L5_7ka4ly_sY5X8tFh|PoCN5A`h#aF zBSRnNDYPNeI(qwzx$%G#ZR-zyAJJu7j|Rs&9_@yMv{E}PFDqu%vh_WrbpYN&H%?*# zxKmX)PYn?dx2{(Gy8+r4kHTmA6#w&TwJ-N|f8RlRyp1i$SY)8D`CDlw zxHB-cym;^ST3#Q@ht4~Q)@-nGK3@^wL-|g;H>P}+!OGj)rEVxDE!)!pdW8D~H+tM)Y##Ea#qsECO`v=NBNrW=9}o&HdfNF*>+4@A-+=-FDi~ zhit~nLv*bN70E>%uWa-fe@DLhbJl@f*$;5-+oWhsplsz$k^MRXI;6Os7kjdD5jph^ zgOLU7k1r{>L%@(@iXxvQfOPQvVhgbQW(T)cXrLM{(%wG^I)JC`|64rB!Ygodp0>KX zP6j;f0ogq`O8cc~vVfrdaU}G_k%s}``wy9XxC)c`RihF-s2BJB_vaE3n>BERh}w{MH~-oE}X$@Mty>aVkA zLd?_4^$doS`;(XY{O8#W2nduO08juD^pb{++g_GHmM^i9;|gFNb)=aUT{9BCZ)F2!wLd@e{^zXt4iirD4eSa2%5-4AvfkGAdA} zFq3@IPDxqH4qasIn!{pw!66|~{#DX+0Tr{rBgdAlVG6Lj)%**qB|A;-bwVq#rP?N* z3#y?)6S+N<8Y0Dp1K~G@1po}&9|3~-GFuo2jUru9(^$6134qj;gAtkmd9A{|&@i2W z#L)gbwZ$ET8QKJx!Tl(&?SgvM?jL;$QET}l1u{M>AJ4;grmM`Kx_Jg3=%aJ2_q-QeNM-REGvxl^Uj| znbizQe%b4}(Vygt7HfK8qY?6iUWGJBg#gGqD1tysIa%woygNK}n|pPD7JyCFO6EI@ zQT?~HBvl<(!@V<9MlU%@2Y8}=DM1!!7zWgLYVxMwcIBwD0%a-e9rC{lCQ&s}&SRPF zV`smqBhJWEO9R1z2rDD>vr{V*+PZZX5dB&Wn2UxbO!LRPfTOv~t(A-${W)O39SmYx z%w+fu-aL9U!sd?wgxJ(P;$Z{?>%1z3!ISikz)0C^fbzkqh{aWPNhsjILqv&16|e$6 z3|NJwq`;bW6BS*&alOZ6KHF0^s;P7|&ut0EUQ_G4o8lR?jaWz#9W#k}q#pCM_(~Ipnl9O0WL;ev_1mweqVSe~-OX+Q0>Z2g zPz&3nt~P%kl(zkPI%?LelCv5>r0o1aNutQ3L}(K(VTBlNhlr=`rO=)V!pdsxNjsxo-6R-MTSJ zm^VJ60-!rjP#EYhQVsK6*?YCJohGS_tXGOM*;;Bg36vIw(rZRGo-?h)qaytSOPgVP*x) z>{BQDc;bqmjyo$w3&qr&48^COhov1XIp-9aYy~gaDe)Mlb~rV_io_x9W&Ju!wys?Kgsm;Hz4ck*7Ph5~D7(uttH%qv84#-K;`0CSgy_3nahRMw7N( zuN#o8-pz1Ju~laDO*>G-^LZUiTTqS&0%N8;Ovr50HNrkk@H5ho(FmVK$5A0Rfdmvk z@E0Ol$}o#CfCUUZq)8OeVUlG5Zm-gr0wlV!nYZypp#m+v4<#uu#`^;!`IEg56-!Y- zfY$56?9EYRPR+!ZklFP1%LXs58-}>sU#$PT*z~!oAe@X8B9jO5H!VvHpRk7NqcA(# zloBMAc#|jGr3)BB)#+_>vxow$V%SgN6e;C?0ssXGbJGfRMF<6duV#Y#lsA=Di6zc+ z06IKx6h*c5D{P8=b#LY-O3TJqvD;=D2Qg8N$u%(vIp`cq-m)x`r>do}th;&Zx6M6o z+j^%h|7(4}ZCjF+tkqcq9EyhsFh!D|uWh}!OP=V`2>#Q+H` z706(~D)wOiI;8a4u!vo2hF72m&s+0W%^&qIyRIQP34_uO>22T^NpIl`hpA+{jtb!* zzcEKg0qr%1v) z?ZsQK;P6Km&O3V7x@W6`BO7B~zItElS>6i1*>~Y`oP4c!L-c$=RSO^n_Kh-u>=U&{HL6%S)lnqm3Sr8s4B@|6-xL!w~{>t-b=VuiW z+Y%p?JISBD8apW`8_rEvJL>&(Xy*P->Orjg^j>X>N$M7R+Z08Pw2Q z+LGrnh{4_B5r>by1G8)D{ZL7OdAQ3;#C4R)-oSGYdTy%KnYAv@X)BVV{I=F;r|{*5 z7fT91|h3HPHT@Y^&mD)DGqWnIzzrIo7Z-CMH4vnjr0-({CO~etK*$*-8ub(l? zH1LC53`A`K(hP0H8d+7Rq+gv21)Q}xMG5xpAcX=6x`JY#fFGkBQ-R^?R4Y8b3ODn; zCeU9!f&X=Hv*k+x$FT_!gHCHt;(xC&A2%0%0^~ZO%&Vscvk2V^or|W+o_*5)HNIgDQjS~U`!EOq z&|AWupVgMA0M2&P%7af(fNJ&MlN8+UE=8JJNs(+^ATO{HBQpuGO#YJGbQ8cK05%H| z1O*I3Ir`-fM5N3U%-vK$=T7WFBOBkper(|3uFlt~E`3yib zM4ARUf(RyF0L6nq)IJNRVTXY^5MTj&CJMQ9x|+W39*iXHWw!xv5gxbHe)ZzJSVzsv zi|=_mzFI$E*;)W_wjoG~hHgNO`0}en8gBfvz zl{78-Qw5booy`r|E$adP0qvvuq2p4m!XBlEZ?&GZ%d0s*@4l?**Ww-?4b%FDzIq-H zV_h5&0t)wIO6rClq#-1)aHK9;Jd8(Fvl5V|tFVR^&A=xh;8$y!FD4nmPRa(*A0c^* z1^!$FVStRk>`sQz15Whf0jh%#!iiX_VM9^;D9^m?gLG7U!Op-~y=HzK_*W{(YCtg5 zkJg@rpjiYn$W#G}hG8MpTB~F-_QQD6Rhk)I)+Z7mOk8p*t+#WkN==+?EkO(qlJDY) zi!SJ2C5!q6$n|n}B#D$R7eXVfqMC)*ttI4w41v6^ zF_8f_dJ;grY|u%3hQkgxTIaDsf!xe$qp&y1*mNsmsy9wvc&J3qH={KFYPQLP{9VJ~ z%z{qYv3L?9MBtT*xMG_TaMdr>3PDI;%!HE&s6|L33Y@xztNQx7W_2_kJYKc=jO1*f zbD{qzK(S5UBr|_>fSdKTqS^qR0du(ct3;FG%oo|7YQW;FrJBYX!?85`u|FY2&l8Kt zy?asnx<{mRcsn(G6ZVKDm01>oB)6I^09g+5^GJZf5>mMcIfjFyr=1|on=ij~OFWFG zV2H`Y;w4VF`YME{<{ddN>2%a>xID!k`DH9B;#!1qmd7VPalh5{&FHF;QYQxxB`}PE zewh>XMbW#xxww6kq8S`D+GMcrc5)3Zl8oYT&!C5yOAp-k#sLfZ~6ClX{^25WFrDa90hl}!C$ z0-#v{da`1MPyk8gVuD?X!@%@XGR^*+OIrcw<&SREqP=WAGT=P=}09zoz- zeGj=mO>dtIxX7n7^yzXIr@}qo*2It5*Ok-x7u_eusT3j1Hr0e_E$I5D5=<-xx!I_6 zEfVAnU_4W3xJfp*jn*Zr%_E4-@ka|`sdvrX-8z9d`bZfDC1K-X>T?fxzoI439?wSv z+cOdnZ$u;tXwdU!g=MgiQUdE#V(qU%-hyY+*iL6gj6auCy6Q45HO}WEuP_3$vbj}h19ecz%p8WQ`@3#KgtoPkx({TU4i=& zf`8vS|D7DVG+|(vC=gjIOPICye74AN{*L~;y(0C8|3}hUutn9iZFo-)L(S0b(A^#4 zkkZoK-60?$=+GrdcMRPrN?1dPfQX2oB8oJKf|P)Q^3C&pzhNK8+V{HFeVwPT){RA6 z`H6k1IQ~X$X<8}J|9T&scm|?E$8D{r8vW3^_4i#ulGU}V=E@=;+v=?}*}EhEnmM!0 zkg<f7J(~KL0*};$cIaJ5|DZa z`8o;gOVT-RLnV6o4=d*QY&EZHQn0#pqO|=Ri?U+hgJrzjoi(`FnzWJIHIe%YMwJ^r zm15zmnw8{3>0oH~W3sN{!1+Ec%Zk_4&jpI{!a6AP&xLA6RqBCN>?rqro~8QHXB~#- z8Ydnb+zzfCGfo_;Y*gJ>MLm^7G*ve>c;PyH9pc6esnnE)Jga!RVu&z~)_Rrenf@z{ z7A`GUo*uK-+k$a5>q!3bxEnA;@_1d~D$k8{);Q-eZ2!~mthuod8ut#Ad$Sv(ZaS2_ z64b0jnYD0>an;SzrQXse*#x~zUeoZHdTIIdMP<=O|8tjUVIwhypxEmqyUPvht6TKQ zB#t`eRR;dcy!gSqWF#^!WtA`JPeXJxkHVqG-TEw?il>*O(Gwxf;?TKDOXFSErER;- ztuGq}s=gJ^K2(-@I=?e$tlp``2^N_4!S?|1uDG&vs*=gRS|$MMT`#2k@qxBu!ES$6 zJXPBOL#MWi)@WK6mC?6sK)wr{QAU*|B?#AAZPoJAf8cu;_JetEV}wC+NKVz1+kc{5 zr#Z`iV7PQ)K8vd9UKO^Zuh4&5RTjJFKSNd1SE&0V8_!V;0iC^F{q$odaQFL}#)quk z7!=U94a`2u62fsoB44k#1}yyBCA0Hi=GfDf1S{{4{p?EM6ad>wimmYlZo_xBD+6~r z0>58A3;Z!1xVsd%w-@;HU*JAf&;du#p;*w7YS6J!&@acJlfaj|Hg*X1p^y-XXmksfORP z9BLP9i3bZz)oekIaloPY16hZ5DvsJ7gN1|kFW=Dj4{K+1nmufB zb%#m7(Z<6pF?k{WuUQ=O4Oca&3fte4Ukh&DKK$@VR&!C(e8fUu@o1#nQ4kR#d6z}_ za?8gl??}>#Ebi>++LfE%1df_!LthyEm^^t^5qvB!Z=`N@_~uc*eh{7B<-Y3WvBXQg z)6i1f^^7PD=Cyl|d|DqR?Su0)1|kzUNX+^qR(WluFq5i7`-rSCR)94)Ap`?KE(f@_ zh110RiYlW{(Z##GDH)Aa=$@u7TbBQrJK+rhe3f?wQ-6i7F%+`k&93xQ1^2nXN$bPk zN*?DDH%@>$L+{h1(Osc&zcJ9{NTxcDPah%s>=F_2^M%<( zvW~AbAUuB|fz8je@adw`m>u6fE5LMSPO%RqF{|g$sU2_lm;gRP6W37LpT>mS&1I>? zH+;kL7yQF%Pq$RWY#T;9&tF{mwHjEG_K4q$ zo~5SO1ka^4Dya+poj(T>KgR2f$U?ti+_OLe>ST4e)z1{=Ro3?ze=RzZMPJrID4p4; zBI6iS@uJ(@Nc%gg>NzWyL^Pe+1c>i`DxOsVO4)^1LRRy}47G)%Ghd{NPN|8&@qfQx z0{|Ro)C%9vi5_C8lTav6qKk|>{ALBsKoWQe`dekcIE z=7i*v0#_3sEeN1fs@dGbW!4DPBx8){1xyRwK>+mtMPNu#hmvO=a zp!EW}&=Tqpln|I`-o}Z~B8goTo7VScS;lgE^O1vjf7Y&N=h`Gg1OvC+`(di_#+Fg8pb` zicvTt4b!wiUu{G0gIJ(V0^S4LXSpnL2AjnFbgnH;MFj< zO{*^q6%4O&fypk|1C#(kO-mDuy=(~djP715rFTh7IT)Mk@=R@; z>x*1Vn;Xh*?y$v7ho@WLd?ndeq2|66PWlD{^p$FIlc%4M~NI&NxV^>%l;505D516tkR^+}K_T{hJ056YvE?OM&Y5ci^A%^_} zt9XWm7_}}T0Ov9ZAWUF>zmSi^AoxMI>#NRaZooJsP{HKY%osa=u%yNpvFs)wu18q} zc=6}A$wW1cL+{(`+!dF-v-+$7=$I+dtG>+*42eQEDu6SdwgA6lKlHZaRy?zWH31J+ zL`o#%fv%#~cOz=AZ7JF4MpFR=ovj2w8qY7c;JF3hKN(cU6g>>W|0OZ94o1a*NTf63 zijuJ^5)GDF=A;IDJLrBkVPVih!iKOoa*7a6BJ+NraL@`YpplcsS6}e6x&cs+^ zZ$;SJaOYRkBz{@1MZDY13Q_yK^s|AR|AJm0xjsBRKAxJeS$+`qTKFAxJrd75q=R&? z<}TllU{tc`l0X(;u{j2StGS)`@11jNBztReX>*z|MSe_SnjKbuhQZgc@e1nuOqvDm z1VF=bXQ@()p-T5fVBN#iO*2DSlT4d{7%t!ct^5%*e;qBit1ArsYRk1sRdhjJa`RW* zsQFd|%owR1TaKioQwu2Ga#BZ4pmWT1($z#P83dfCLrn?DTR9&AZy$XGD$U)*zX(v_ zj6di_kDqp!(t?K0!03*E2(7Jy`arQrTqI6BsmM3Y`Xhr^6NY#;d8tw@$s zXWDj)Hn=oMw*^&YDpvY5N>#=(qs~by|6u&fGEaFPv<{d|GYZW;PAqSu0th}j=3v<- zb#@_>1YdM;ui@Pe6$+6p8FsQ>35tP>QhDkJ1Ik8?ak3&v(>3m4P?&|>6dN8@^-aC4 zJD=0`slJ>I6b`zmNx{-@<@Su`Z_>F}?8UVJbwW2rbVf?pQXxzt`;mz-= zlQZ#j`JCe;6?;sFFwnk>lBhLzWK+7tg&Gz0I%;@4yYb0n?u%OOlJ5r0@hLBJl6sRa z+C;(^WPj%H#;lDP8fZ+SAD{T6~$H*J4&xOYC@o z24W@0nG%y6=G}F(#uU}qQ*GF`^-f#2>4i}fI|dAcGe`jKt~KuGSReMmYbEY8<+_mW zH&{0Yoo?ZnNh2z5-YnkhfJJmILtZ{1LT!5Duh|v#U$F2sIK_$ZDvl}so)PK>aIDM? zw9sh==ty^ZQ@OoV&Q-;!5x6tIhPpq~{GG&y(A|9}S2BF)W#$hP0oeWYvINlwP5d@o zo1%X8A6!6H6B0`7VmD$3mp5G%U)e566;a2_`TmkHpS$WlU$a*Ek7x~D_w_`L*BZ2b z+QTvgFI$oydh{``PcN6;xNTvL_6`(_qAxj$9jfh=dw^7XSW0zeE|>=^){JUI6FE!G zK&)+{Dtaqrr5kCcQ%tyQD&lA8s`1JTRRbVEjzU4+U`7^9Mg~{Zh{qe}&|u$VPu03_ zTd`NlS2jRAL*lO_uzk1r@MrA9!wiFnCp<2<4KmeKJMdHvN%U(ZS2jTw@PEomTKMS! zvSsQgZu%JR&E<`WzRn)_u@^C-ymV2EMc}fNM8@YX@jx-k#@D!j_5! z`WF@)80%%?1F%Fj%3-vE!T=9A;O_0u%&WhyP^c`sB2JBz>~r!-HT|*rKR)RXPRsJN z4gymiTSaO_B~VnjX(K?h1=C@M4f`4*msO(k8v*BwYpSP3QmM2zgY|CGO^^@PYAIBs85FKk9f`jk^@;pZKkvTT`nc$FLNW2I z5ZF(G_6Bdht-A9I793k&4ANM<3zV0(oq!bZD7v@$y}&bpE6=+#k9duCZ8S%j6Bz&! zNiX@J`!#RuJr|uTzihrPB-x?qp`uL`fHOd$bI%k%exio&SG*3lyaIf#`budCp2JU- ztI=K*o8qyUOlLBw!~+K!Oq{`tMWx2d3kon1F-NL?Eq~1cQl1A19@ zLM%y*awr}4M^3?yA;#U3brsuL6??`C(F7`W z^hBf*#ldcMNN#abOO}%wZQ+F-fbuCwSZQph6o9@@6*RRLB>!h#i$R-w^|Zrhy$(yTBKN`o2S_py?DYF5(#1h|o0Gahh2(DgpVoW?6|Hz~Gq<>5!eb(Bw z-d4%OesV)}(4$cYU+4@7us|6UjHm1uD)(^|Q_0B|)xI;MT$9=&Sso5cFHj1!t`eTM z+OC(HdKw7`9zCHqdo{WkdmhCKtv8`zAz z{D8&=_bt0eWkJzf5m~vTVK{`Q6SyBl$CDX63?K+3$|%5|jcaeZPBTj6)fwT++KTla zip=r~(0vKNFqt{aHk!h->+xrFH&Eh;-Tv3_E@{#GbJ2BgT&E!ZXK#6giv7gzda?!3 zZL{ZUg$pGm=;ccoZ91VS(>vhm4NX4Lr5UbU9KLUcx&*eu`6E}ov$zZaB&o|fw5x!I z%kaEKZVjM8Kz1CUpcZ3Fj-smtf{AE*R*f?dhO_FgD7ok;V)1y0MP(droqP!i7?Kg= ztb+oE62ok*S*2y=K$Yrdt6F&_W-& zFSP-Bn~5FXHQHpgpSJxJS`r<3DJtjccDx&Wh2GBjK!QOCcMz=rKuPpzLT&;6YSUOE zREMP4OeBZKQ6NDW&Eg0fsJ8d0qrgXC-3a=b#3Lr*h=H=z6HR{cYvHPsjIC@7*yg#*}d& zd`~aneQw~l9qkHjoXL~bhVmU7oDWBSz|@)HLb>7PCucczyHo)7*^M%%KRPKwjH?|u-P?2AcGwWXME`-N)16k=z`fr! zK^(c__ukiMPB*1FHk>^RqI@3I=-BnPw*%@zLR~C7~%a+4nzdpibAO> zders6k8N{v3r+hqLmZ6`OoLYjZ+rkkB$!h!WkvVgo|bAT@*#?cHrMel9!gNWp+zCy zkZ<{+ih?GH2T%Eg-KV=yi~AgX;#AywA8y&U_U~9sytEb6vWuhiycph-3PG2MPoRL; zkMaPfl~p4mRzfXRhcDnn07NUL#dLFq{`!t$!w#Qv(gC5(H zT^vUTqHgV1-gG*=|Jl>;8~HFL788=A^~$e#5+;9`8`hCBlSs>!==Mz1#$D<^BIP|- z2Kk>1FHsWLtfCz9E^R7PEr-)6jm|pqwgwNj8^)yWcL?1O^?SmnUl%&Jdh_aHmsn>< zL+>7rvS+s!Q9WPs@NH^M+yWr;X)i|WlD1Jo+Ds~n3YaWyH@)ZSzCKkm)+Q%^o$yz> zA}Iusd*HU31a#r6+9bCF59^;j5WeQC94gi|FIn@fTe(&G-KS8)A~Ds7desj>&HXK} zeAr$_m0#X*{A!~$y=(twVdxF#F_V+91}hPQj8k4`zb^Q~lMFv8Ce#&v^TV0U6zpMd zs-$3o3^2vaVBjM>5^Px}*w7Jb+jwaEApFT}vwmMMyLh$X+Qa9oVJAzz;St%Wyhw{F7(AibP8ku$H4~2w7FG16Mp1+90t9m^~C8kHq`p= zzI6oN^NA&yxXhEDdWXeU_P)bs+Mbt>r(I0D4m=lcI(|P1G}F5>DXV9a*iP^2YUBmj z4+V3>nSbvFot*@+a?iaF2mtekbxKhlorJsf?FMZ5jd&vL3-=FKZ+V?Y=E>`&pT-T> zLyw7UNPvuIEvhIY=2gV?;l9RZ4|;SC2Q=!!rs9h z9hsnfmY@-tsDGAd7MWysmgE+h?01$N8kutYEF~c_HRCKbFEXv{EUh*&z4a{pL1f0` zvy74cTP;E6EIL}o9@agb0p1(SJ1bU$T-fQe%i}(4p~x)p57{YRIWPO~QtLYJym3I` z9ED&`+P&%1_`DCIt$(dpI6N<@lf)WyPQx7soEctAPCs}rG@!957Xf$U5Fbbhf-MSB z=0ouMlB3=yymE})<#qwrKWG;n$>w&}=W6hV2Bw#A@0PwxCQuL7TyZb^?nzR%$GrTV zmmnI_1G{PY+n4E&L55TS5N)UYrcqT&e{)$b$*d|z{ER;TjdG6Bwg8U z^|mnY?bs!)J1BfxUQ?*bb+CxQ0Ddl|=2V5ffl*-lPDImfocBF2K1mJ=ID5C6Px2N3_wz^B$zQjtfy0LW zVzr-tulBR*v**8U>lk=hd{=y4PN_~^S9BySO>eN(%eNr#E3X>oaD00XS97j@~T^vw!VBJRN-;i_y;Y?7JpTe`{qZg=@+|`8E_IPOLuxi)jGY9nZPL{hH zb})CH)i;?vrbr?wCF>z2L; zoIky475%SwZ&*$Qz=@Eqqc6m!KeZri0BANDW{?61Ha06w04R{g-4YWxGI9vi8cA?{ zk;Dl-{^pFuao1b%rOb$arb^$Y}9#w`|Naiahh`~!(LQpbUd z1SmbzDkFR?Mzx_+Y3DuF$4OV9_BtXZYjOR;P?3QqO+4n2v4S&xR;dAK6l{j*V3$Ef zdO6>@_MVLRR$p=uTj)S|*G#3B)bG^2vz8Bx2Gc3((7YXT7kgYVLH~UMBn4xs;OCC{?tO>q~7@A3e`pfcM z(il~4s<7H&@S}enzU|ha0^p5Q03!(qoSe=WivW!gjnqfSZ$m~iSh)PE8>A%ebq_0W zad*H&`@QcYhxdoEl+gX5hZkH5an~O0J7-a|i?BmU@|=F}X(j5?xhy?#hd?u=Np7|h z`dstJl*|YJBg1=2nXMxUo?826dZP0nGmst(k4P?WT5ow7i6-J*GOo7wGN-jk_RiJB zGU)I$I^2Bdo9TaSY-jd|sUB>=B zhG0?gl-m7TfWaL_53@!Z1q)SS{a`1mKYy(h?x9rspZ~nWaaNO~d&dS}4B7^uc|J^> z$^BsGPd-i0zlZ2@N{^W6zU8XDbv>jr({K^xLQCW4$;q&|$h{WJy4Sx^S++MAoABXF z6e1g&z_IsKjEsWMI!-(x1~}s~PlG#q+tV^QuOyV-{MhqWF239q6dyc60qQq4!mC|9 zk#$e7oCE_XbEl`sg1F?J<9UxD2hSIbolm-mh!5`7Be$st2j-b5j$5Ff?27OoZD(=m zcVRQwdcfHBS=3*GJnMOY)0*uM?9iB8K;PohzuTP?{8kqsA1+nf1KM}*T={plQC0PC zIXT1XXGW(o0|NNtH|Ry)%^ojzLY^oIy~$Ye`E2a8vENz^kOkgA;X_c+1?(CqTNk2- z0Jwo=*gKF32s2i}sL&ycnKgREGjgp6*q3BIs@lJ&K1_pJPDIpYLrKZFgyv6Wm1CEC zrCL0voXNK-=$uY^<;9LFe)=tGT%mbf@T|k6JJzD@E5pD?E%7_ufkCe3OW9`pF(KEH z(riSs9ejV%Jr|Q#lk=2ROcCK`RZlG|XnRNL06z9eRtzI>okcT}{5Q`qS9AR3;>25WHi>s`J9U$^5^rtH*i12< z>nmK@I?1dHs!ZQCWc;rH2u`O3 zPTa{Xk4w}8;Oz?*7KQ8|8tl4c*OjT9JH4evH2)*vw3oC4-E36U=Zqy^lpTJQxq zSwB4oRaiZ&m00!W&__eP3nlf@hL7JD&WI801{n(%W@rimD--M4F6#D>YzZ*H& zJ8sQ(SxUNGO6a$wdpA57M1cgLD#7tI95lljk@Rh@yx-L?P8;whb(HjihoF}D21Dc4qO@k#9hWj#b=*+WhWj@|L`l2{Tb$vED`({52d z2?Xek`y0-;XuWRh?BB8%7Snz3xu8R6VC=7l-bl*h;9Z%fh55Z(1Im4}LY4}D z13lM%qp>s!%9witwRPsWD5U@{&!6ffwv((lb{`2x?VZ3Lt3y%K2lw4wmzdYtPPslz z+yXuaTFy_*@h#IgDV8AkYggRfZ?%lz?oA|uo}&;0qHfz3&&HXjE+yRR%C>I!kxn^^qO=AZXFwYgn!4*qUe zSQjQboahZaf#-s(^W*fFvIW%+0e()biwk?1?8(MZRqyjxb6L6lLk@wVRjgmWS)L9q zd3gKYjN5OVHg*)@2am8IjB}IN=K03K_|L#k>@pa*b^j zQ*<^e=opgW#J0x#;cQHCDdhfLwslU%-{YOTNeQEzR1&3fl6?(6OB8X?H_vovbe!V^ zA75l77^{MaRxXx8NTH|P!l1{GgjlZJ4N;saxV zQL9=sn7{wkPkahW@v`1M;v-L`9NX{E&#O4dTL;a4-1He_Zt5!)&QR zWeTs`9eGm+A6GvA^FW>KcYE_4e<>&V6X^cUya>}12im{ijA8 zTJG?^>|ju!5)n|x&)Ta)gtLzvA>a(|zcdg?xEt7p`hzK2j&9%H9<5gjKh14M35dEY zEkoXJT;i}|MwfU96h}=Wk_llUQaB3xRbe<0{+UoW3V`qJam`^tOdwM+b;Lr=wXl8O zduX!zercXaAQuZ4Q)6+|J*!a%yAml0&Opx%M0i&nmmAR2g`_1=x{Q+NpbcWN^ z(tBwzv!Rcm%LOqZbXN|zR1Rbv4^+3snIR?!K@6i;2StR5oDo{c_kf{ZQhxk^?&~Er zVBS3=w2REkmb=(zbc4{!V#u#a&>qe3_JnXUy5a^_Vj;>>U@sK@gavEHL(k$;Wfs+ahamGbc#UD%YS)4h8t+6}KhaNq6zS>q9H~`Ze zc2{sl>ZSjriYF^aK&Y^M?08|UHzz}#k<7Riflzu3ft-xqEuM8Rr&05cBN{YNzhA~) z06vZlqg2EEhI|4}t_d@<;-{lZj_X|3?Qok~&chylF)j&xX9>m{@%c*{xY#h?ZA0Lu z6p|ZjX$=u)&Kv#X2WcX@KXQHx5Ji8D2)elm&(8{zpr#Fn9&M(a*YYG!P32k-h01a; zd%D+jmfLQcUGsj&%V%~?6PshtCF^A>XHTfWWxK_^`!L-i;RKd+sFj5ggdYScTG7%o zzvHJ;SMYL`pFeoc_TZQ>EO&HMJjm^8PQxgRtBn4Uj7gr#(xIS(hL}@>*lV+!v#6`A zIEndOQP8p^cPP_OGub0ERb8`d21i^=X5voV%6+tQoa63b9wDlH9Al00(Gm6}Pi&V4 z;F)v(^iJV&mRG@Cne3fbn;AfJgyq44HSvv9*Hw*IDY*owj4n;*Oijs2qu|AEXL7NcP(C6x6#!CjMViJ772+bZv03TnK$eUy46h3k zsVDV`;&JdqJkk+Qj3Hik0IRCw$jY6ezF|lGHDHpAA(+%$dnv+-Cs)9d7vn(Q%Ub?K zot$Ir`!LS*<<`JuvT_U>-3-Y>Q>3ZPo7)vxI>3!`tn2GsG~!vMK44q0xl%NXzQ z>X*YcNw5MDsS=00gM|qYd9l9?a`I&c=4DsEeJ?d3aWfsoT`fIiEgxF|$N4w@<{wco z7}CDy^`{2~TUZ^?8!gV;|D|mg@ZubO%Ue8eqh-P5HRAD(-t*kgw)K}SxuqRxuoaO7 zOIVmG(t8|ud)$6#5%&u#muhkMmq~=Bp~-<~JAIcr)IsB+rznHl5WO5E+}ML!DF3~c z!@Pm=iI4cOSKKW#<%hoW^!lWlPYS(-1-;1#gEhaUtMGeXqPtb5AQev&RtSr-28{Q@ zKI8M1o}|Ohu)O)J{P8t>FaiR8i8EnHlNr$C>F{DltS)RP!1{fGeDebUAHtk0HtZpd z^W_`{lW=FUXLtw~jp?fKc?}hqVA5kiZIkD&g==;yN0bW z%1slkYT~(}OeA3=4|JJ{u_oGXB-|x}^T&tSpW}iA@a^hh;eYaRuhSDPF)spqwLP& z?2YD0^F2O^I@$7N-E(fTV>c-E>aBTiVfUIu3&p&o6itR)6d&tpDt_5svc-j&Hn_hS3q?v#*#Dk4xdGn*KqBpEc{WE7Y z4L^<=+SV#MZPz{G1GE4x3F*V1Ev*y&Z|JTbu?V4fp8zV3^3N4L>hy?Vp*{Lu1)F+)waLv644YA=Y;r~4ui zhP~~#Xz_7STJlp;lx%giYqg&n?9}Rprmof5A1g~YBO1tKZe`B{+l$KEy;sXz8d#qZ z6(tLAbC#ZSnMP?mZ+ZICuJ`W76G&OI;Nz}=L2uqgUOLu+(_dU!8=CoKyx2VW^nJtv zgui7(htb+j|`h2p{7*2=XWeJYP2sa6QG|;}b8q zY?wHH;So0GG_ELZsg8V>Fs684X{XeCY8Fr#@UVybcLS;61UDE_T4<8K&iT;*PVjcAO(mq(X3w%PxS zJg)d^m#`isIV+nIs?xaRW49@twn;7Z_0846jmKN}Rq?l;diS044wlJTJElIqbIYE6 z!Np~;qa(R9B1l-=%)iVxLP0!}B0*4#nH+@1#?v|vyAMIYbZ2aOGTg@1%#@c%(*7yPD1lp_ zffuDs?5vgvP`x^i!zENZJomh(XD(=#U=*sZq9nUEmW8;MoY=2MgjBg0=Ca%V5;A$j zY=RU3b*JJn_D>5dtPg5*MHv?LDh&p1YO4T+0GeW~$7>Q~i3C6geDNTF1!No&jQ5)Z ze4PP_<#<3D=7AUSUL^IGZFE?|47rC1BnQiK_FGACOz{s&$^N~2x$5cE_9QhRvoMm zlI_8AmS_eZ2!_nsG{uxAY|$H2;_vutqkt2$_%}gHd#_5Kh3e zwS(o8H~K}eCkJ32k`AO$$m3vgbUds9^qZC(03{L+_4mS(C3amy0t<+}Uw{0%cp2=_ z;q!5RXnkIHFHn>!11|`UX#$mj*I#dNL|-1pvN}I{1}3&gjj}*Tpmi@kcLRetRka&}igGy;^)0U|b{YWaRRuus#62n2QQ7(k=5lzqtmx z`cEFny^`2JJbmXP*tN#U{@}%>>Wd)|JY>!{rk!3>a)`c57YA8?$sH-|gLVM{;Bi+8 z7HT7bp;Gggrbs+{hl_VMGgy;=hf8R3646~H5%8!F9{SZM*x;YB(95{*mujwE)(lkm zL#M8?vkK_`RH zp`*|wXXwIbPZvG=_3&qG=~}UFAQvF*F2dXPZbfaTk<{rALc+Gb~8S)`^_;;xw`Q6q6Ej(lyXx^Y}wv}ZKafeW3p zEPzl+QK9u7f~k*5A5!AeVAU_KqvAnKQ0$$~W{?oVA_ zgTwMVnz4Wm{ZXRYmK5@kDe(?K7>P!CJWs!wd58Ha5eagJGtT}5G55?OhtZ%zQeTX# z-bq(-b}#`=QZ=LPJ=Vu={F&|Vta*yzsEZd#GfP(`0iEG>K-5g!mo8l6^LjD z&ZcmwS$4*JX^?mvrMNUU*O%8UWY8U*y_&n#Kk=d*z4(pxr?y4<9r}vP$ePDi!{A?C zgD{+l3(Bm%=L654MS$AqZHvd#@;$$S?v#FO*hRMpGO9{ zDfaGF6!DN&{oV%o*WZj5cg8BI9^#buG1t=m%rzN3Y>~W_LNXYG)an@CwRlltWv0Df>vXJ;VmZ#k(n=FU-j4V4h(!X9dd^-cp5YG34(C z-acQ1>7MkI1>~yK;iQ+1`UVd)--TBVqK>6;)SnH1MmMr7t>^ST6{kr0v3LFzcq#Er zS@tKM^b{(e!bH z^51X9_Xp=1jefP*{oS#CGx)x5`d7#8zu%pyALp#%PA-i{m;jHU`-mcnoj1Kt-)Laf zhNyF)G^89Vq)ORi=gw)+eLPgJ&|pb=_%xOA-`xL4v|wrFb2yLlaSozt`#Iv@0y-G< z8F2n>X!cAh%_(LrGa^p3_zwA8!tce3(XSHs@RMm&lz{V2^k#dkP%9#H_{!ip@75_c zFaFO@LE4LZQ+NdZX1IE}O8yFK-C2d|okLNIzeYzO^tTLkWT~d#H*Vj@*Kggid-Ahn zK+5)#-C^W8=@l*JlTF#Iv&FQU3KSQF|b4DY};cyW%W~nK5JHyZsM=XMpJU zS<#*IGgEHkpEBOzg$NpEa}UeMMOehCf|xEJkKM^#xkFEgs~(G^qK{`_@+CJ17Zv&O zATghL;^1=hq6*9$+x|6bc-igSObYaZ{qZl~(Vu$JNS}qA^RqNZfN96TkIeDfNLC$d zNg8L@e#W@G1AKr>64k~Xv&N)Isl?X81g)W@#?7QlIhP;_fA_O^X1-)rCb}w6^6+~Q z91V`t=AMdh@%N_jjC8>%(77vw1g*jry4ked5{1A#(KBA}XgT=tseE!G%-JAU023qy z$SuPyx?IqN2t+lUjELlSc4eOdy;|X@J+sbHNMq$;ALwJ#MMH|Plrdu5*u<$cc%Cq$DCf7y>?*?0OXSpt-e2{~>=DRf56&Xfjp&NZ`_9P29hHlA$&0Yg zQN`rtTJuaUCo@UjSO0x4Um??MC38gJj!ttr^#X`_AXg_gy49Qd{RH8u%oiGqdJ5cG8t2$5YxWz0?)X9i?*kTWqD`KO@B)`&R~V!83t(!t)U}>w=s;v)1$Ko5zO^xf#g#OX0cFgxdflK- zOSB!@2LMWWWJ{G5=o)o7N<7hbh)xn4L4&&2xCkr*&2*b-m9g~-GQ-H{>Kr^>i3BpM zPbC&#nw8Y%NS-aL&wM4v8YRy3cIzQ!%Yv218kIW}&QF*n9p6?_Ji`9|U4aG>);S4q zlgi8WkjngS!bK8z4qDw+QceEJId;ImkD>URMsWb95?Sgz#8Yu>RzdG;44N#;HL0Sw zRfQNTFP$hs{Ha;ks9irON93UQb*~+f;NC)jb~KtrPxglmnn6fgL62ErC9;zj&=sl@ zk}hWoDbKI2tx=4zNU#2sM8FP~m)O+dCUX}H9G%H9V(El`av_jqh}H>9<1soQO&GDF z>N#;MRF@TmZR&D?Fi3-0@Ziq(%wt?Y7y%?U3KHK3W4d4(iF$W}0c19M|A-dc1x-kW zmYJf{qnR@GU|^tmPRGnl77#;2rLa)VeQ?PJ#8iilWN_gmK#e587=rHQya@=22NVcO zqA={#FpMo5W7j%peSLAk%D{W(1IU+&ZMxwiuQFvb2p31&{@|3B%KgP><9Q`V6Uen58nLCa2)(zy(+T{mM{ zcfK0vB@3VYewR42kiOpo^B2vPrM)>y%>~iTB|^+<%DtD=t@?V^ofkWuh@6&tLJvDW zF$j~liP}jW`L^~)x1e5i^=bF|9{2qc>gTrW;THx3g*$su{R6gr7T>$A&t()c`l?(c zbFXvr`1J_*q4!XjT4mok)SEQQWk^4?6=00T#w0MBX9YV0ph;`<)VNKXOB?U!as7?C-cccId z=L(Gjam)T$Na?)z03*#nUc%mrNTaXm?>d%z7kI#+CU zLF?jqyj-6DA5G^SPu2gx|8uWj5u(q%R(AFZT|%;w z$cS9mi0qM3WF(tZl1km5@9+2c{eK?k&+|Ty*ZcK)J^_*%Kenfh*RXoB#uE8vZ?2#S@B`5s zHP314@5jRwt@y`mdc=AERUh3{-%U<`PrF{%GY?iLxRb!s@A=)(=iM2x1EHakKqiHa zq+}_exql6zw@)!VQ?b&efH6HP^>4x+4zc$SUE}MA3ajPC*JgGN(GmwW{4KzigXW4u z*@~ANRflm)y0qoJbW^?dxC5Z zvr`NQhmxcM@dvfwoI8l3tgdf@scM1Yxy z!lha~+dR-TEp9aj1kdFXbx_}OZlwnT*KXu#YnN&vZaBmLI0;3K%{Sj1(Q%u9-#XI1 zcfUs5#nMB!zNfU!`X+trf^g!s?jV_u*Q*#M6gW^&}7SfPmvR3dYzpPj*IXX8U zP#zz>I~;MO(`5DjN$GoxB|7M5_kpEj(PyN8j7JT0g z2Kb<5UTGp)yI*uPxGY{uqQ&;OovYDoUUA1P4RDJZ|jNs+z?m6(qL7ue) z88^Uubustr3Mi0W)>)kX>&?UZdy~v;Go}4!r96u->^2`~ z?Ofn@;h-I7_?{WBZXjIm-zNz6y0j*Z2&k_z>fd6p3*Js`8}z76x=A411dmvutx%i*6{2MQa;Os za_e1sOI7o?V3~7O$To*yn&4NP-Pr>^{>_&H28#$BJj)wzM-|(1i8MrX4a;Y)OpA&%4~A)BS--&q@n;gxJ zyW@wCthSh*dDA~CA8EuFu~-LWC5Ciz!Y8h?Uq`gLToU`ft0%SBayS<$i+!%Mm*49A z(?t~{{r$tgZ)b&vVE7k0t8WTn-?H6moiLkf55CZX4yMfya2K<=)`XPBM6TINIJ8xvHVFZ%TaqE9M-Z&gOQ&X+z7z#LwoA+S^IRv zpR)^Cbb^k-%K4nJNH_8nAkjbTJ^lEP@1u%a`#-)ci$k`LLv$++mod<>&kZ?l(2kxz zk^lOx`F-(C*!|7&OUrP&f##G*J&9ulAo6hqW4~zEez7oYPF(#{B&|r_(~H zOP-hKnM;-FU#Qz(p&((T{NJ|AUoMZHjZx3^K!4zhe^O#jlY`*(L4V?(P=RuKGUfu9 zg$Z(wdxXRTLoisZ0(~OAG=yDc0Zt|4U9c60!AYPsc8~+Q1aDNHq@OPfLUT+~s&I+0 z3;K9peSjOlKsJJT5oG3bi-8V&)fH)!BWck%yN$!p=5t89KrD}tI2uNNIXHk7p#h1< z3&Ba4ZO4}Z%dZn&%`x%-mo<_WW`Yv{II}z~DO=*uH6L_xqIar(1OWO#*Q5sK8<~#> zU^>0&LrSZpIZsu4dED4QB5;-_6oCa01Lv9s$^gxiKr8&pzr>jA;8Ta0w0`j!tOztSx1pOskBtR}_JG}xp z-!!I`<{}64P}j4h#nLWrIpIuXUy82Er0u|QmH?Cum+>Ic5ymK-FyxDF<)dA{rY+S!zOJ-*EWp+rg3WI{y&{)W4VxRkk*g2%~2O<@2m6cfvJI zMHtvf$FhB=-)sR0&rJxx+1STIKq+!ylmQKzBYB!oT{I&HU3OX`jCK)65OTeVC)nM1 z!Avbbp_Q_NtsVoap06k{kSH@JIa>SEjH?`DkC*tfw^TojBnw{Jw2H!#w z`$=}#u;OEQ3fHJOnLV*}LVx4cKoKpLTQ znGWU}H8FH=gGf0dKO&Hs^nowSqh}x_FZR@CN5|iYw}mt5iyM5`pCwH5o+l{j=e$-; zUwZ%ai-AMV5uekg{ebFlJ|E1J+UNVk#z5b7MY`sQDWW-?#8TeE#Q>A8uR&35N8~S{ zK_GJ?PDu^|+##9sr<8~EDzN(5_QR#RS$b)mDDB*%=C{H$Mk zfMkt;iGOAzze}vd0L^e+$~e;PW(7n7Vd5VlG=qY3h!7*UCW} zLRyq9&B@qv8eDWzDM|ZPmbFC~2sTvMRTU-L|6!zsiiyTAP2s|#+?Y~*s}GLZ?!r3U z=`JT_s@B3z3qDg{Ac+brJnJPZ#;(y|M5<1Pi2hlb;o6n-RyCAVVNdtM zGhV*9P;JmEb68u6IkZB7D1E9AR^br^^ylF+g$xCwci2*Z$I6HF}aJ{)@gb=AWarY(&}+@(nw zCKnOx1m10;fJ0I>$)?T4*^#7+hB?B@=P>zu5Y`@{alc z<7plzWu9tH&RT0bobE>?fqs<)({aT%*`om(Z4B%XmTwBrwjr|5k|2L}ShBC)@GS^HHr(- zm#FgGU6hYE-CMs6p-N|9wp%(2BRp*6D9&EqySC6d(}vop`Z>C#^8^aaRH(VPr9Tbq z(ZBMdLRI{@#V7bzGBxw93+D^{lzpwoxq_2c&HocknOOQI?u^bg7=;FCxoJ5Ag`r6D z*g+^;^Sj1-s`U-~g@6VSE8|%%&b%Y*=72M~CN$II|CB;^ZbAKQsL#g+!$RYYq|&!V z87xnqH76Ev0NSTYEE-&f;*+sAJKrjmk8J`kFTx#>K1dz{7I-UJ#1|X}mmW~i?0CDj z)oL3>^Bk-I4K9HMS3kmGfxdrR^dK5v__jaH@QU(_Y>J+eH(E;b0_Oe8T%J<2_rx#0 z$&J19#V59gV(g%4p#-{xyuSS$Eap0s%8VSMaRX)D-OUymu^%*HS@>Uoow@DWV6EpP zIP`%_k_zyN#(F0UPV&;imTZN&6+oKK!J6?9UeORaCETvRkC?6^T2X&1QL7{e9q0L0 z_9>z4mke-Or2j3lx7j^rF4OE5-vkY)HSvaaCT@gh%5hePoBKodRYv3-N%noxO7`xh zpAM}*y#l0fUHWA8YG7J-{C3e)viF4-@r!kVKlE?Q0D*BkQ(3gbm8#jF0-hA_2S~E)C10g?;|!4q3=U& zc=*%baJP&*OP>P&SFOz?NTc%#o!7NhKTNkLJ@=vuU&M_L{K=$8jP{G{N6W zs4np!9Jdl_6i+=0@}pk!J%`z% zw~1`7cZN9=57|rhv?+4(k(RNqPb!{hvrrSXMmr9}T7m?H^?P2e(B=HxX^GjA%ZjRG z@8N3Y=oU-8V+8I0cqb}D`!JA?MMib{lq9pPs6O#)?HVqEf+^egescC%liXwi`}pJ8 z{g{2anOlqVI<|tC@iqURyB~jk{Mkcy?t_B?5`_}B2{iNXH;|IXH?t$)3F&9F^X!LaW3 z{P*wY3YAKSX>Y%rIn)F63!q`@G`5(d$KB8~c`cq;6b3<8NoHsvGxlSsu^9SMGRrZU z6>`2{>tz$|WmoCt!1p3-dpSLOxo-Dz$M^E&_VQNt^0oBx_xB3S_6lzF3LW=efKZSK zitu^uUWFopr-<58#5^hDw?SZB|@J`N6(gmi|=PB>3{GLB$Px{iB$tyo>$&YH5tW^3{%yzo)<09=zW!BvgjAM zkVH_%VJSBVU@SYU|dZPpO@txPY#IE-b?B*aG(mG%^cvl&$=eZwgNe}0* z?-M`J@QFR$o=qv-H{oD zTIqlA7`)wI6&c;>QH+lkO$%>%!?9uT$YkKZvuA{Ufw-=c8__SJUAk`mj0w4j!2Ryv z+npISELZVwc61FNd^fljZ=iiUC;j+U7-Dz_Hk2JbkSk;8h&N*N9}e++^T5d{w!eyH z8{nJQVrfg#tWQDTJYJA}zw0kdqpnX{+ql(ym0?Xl^lf%gc`xDwOJ ze$MyD{i`Kr_e4pU+e6^@W9v(AbZ5s3UyW@FjBDREUuY4yysC1Wp{;QNkitBX4elb^ z(|~lJ$gH-}3g8_v>Y3Yds;epQV%xU~u^h3~)}J)M?-mP>#|*=03truckgw(&{IIWh z*ujz_fKdVr$wOxshh4!beFPe`l9N$7BnD8NnUKEQ143KGqv`L7JU>AYehR=KW|pFi zZJ2Uc??V12Iu+rOP)}6vwn0EF&0(QGg@h`-|~D`dwNCG8YOGJ zF*_#q!%Ea{V%yW2u6z8m)8M@6^rn-USXlpd%XDJp^rJZQy)^5QuU0!xrxgy~$l95& zMO&l)PAfXkv}W2EYTKygnZFsG5f>Xnc8^COx*(YIc^!icdKPC_+qfMkP68y8THZZJ zofj~eF`%O*#8~BcA~GG;PSl;G0*p0r8MTAI&e-Hu2{Nu=C<*i%o3xFwv-7h1%?t38 zY)uAiAM(TW!)y(qgm=QWx-qZudO(iIG{`p{ZV8s)A;JLR*rx>C0C972(#GtaU4R|F z^PLHlU@Dko{&&_=@ZG57tghG`WnJq0;DlHvO+=+KMZ8Xmy}HfuNC!@k-nJ5Nm`2Oa zv~SNSchAUux}V?sY#Jvxmr9PyjgWTdSL0phSRvcq6%yEDG9F7~_SoZoJ`c0#}R$?sxTC8VWOQ5=bX>Q*QZwS$-?w~}J$dzT*%36vcyCI^7Mz{ zjazQU7eD4P=q{gVe|yjdud?N%^2z(&)}8Q6Y9}6lktqidwCfzq)!4C$czr;ak()Dx z5T2a(Tp2pH^(A;p^?UlgDON*qSEG+!PQvs)Y#-dGxy)z@XR;S!<$Nq8Nu)Uz=nyb-KnomNDHSe-8e*DVOiGdh9LFwJDfrisV{Xup3q-d`S6ceq7A5Rj4!05$fWiGvR$h`vzt zs*#XGMU(GmOiG&21;3cpp2j^Hfbc4j0a)0}*YG+D;LQ8yT4*Vq$q$sS#)6KL1$aoq zzRZ^=cV4h~Wa14Y2X}V`Hp}z3qGRlzp9D;q?G06~OPIT8ymRsO-a{YGN6s#I$nCYt z`T18Lj_e$4+Z`?@ZlP%Req1_ypXaizceCoAw@BF5qwu|VqCvsAH~r3hys^U4LR37$ zimf0ilm6>oYg64|1XBoGdS7_Rcx`7X0Jl-Zf;)nRA^= zWVS0~x^nNvH*(JLwysxE+NWQ^E!6=P84eBNeoHKV6U)0Iuh%jw{SK=GE7cB%^2XQH z+&5oa4@Dn7Kuk}W1qHIW2yzGV^thL)eMJNf9-D`*-g9vd{C3SYM0CYIRBdmBD3DLO z**d(KD}c{qW9Yk))c>`GwD83i%WG?UE_%KFi37UEkNCVsu}2&3(8FLeT#mTla+WumoMZ{_Xqbu35pC zndl#u!y<&f#n*GJR_`Ag;C>_`QKq;GqDDEtn;2p6R{lbeRjdhr(`W)qFi0*u`Eb{h zD6�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

`cEWYO^B-3) zJFj|<cfY;z7g=v6VR=WdOuUKP$WZjhr*BOl{nUjo30aRhh6AQR5qxVuZM-F zP9`Az8+5-HMj+UYi4hz>*Zy9QK4EH14so<(c;qvt@zN2+n5p@W5wp6 z59ke_re#cQa@qJynCG6Rzc<=K!-wAk(vlETBn%MB%K!*$0W|F6Abf^?G^m-o6P_7N z8a-$PT>%Y>+rI;W=VQMjluRVx4nh|WLUX1I!XSa~H2c1XTh~Vx;8@twQ6sP(E(GIh zz|p8j;j?dR`OyXQgPHNs&}DYc9p#@SYGMUJF^;85zfVA3;04X1z39idQ~@x=CFdJA zTO|GCLLkj%3mH%OO0fFTtof*y?Ef@_v0*3R+5i(HND^Bm$jPaTa(b2U-09=N{=@V9 z8PRL02fsLWUlN(2oviY;e=>-On>K_;(g6<{xI;*|4WPrN=V%bFqa~$6z?CJkuHgU; z_kkINxQ>4a>u^bd=5E?E+}R5Q7eMz?7hhv|R7E95kVjHji1NVNZAI>_-L+JdkS(k;l=AV!0<4Wcbb+yCM_NZ}yb{tt);Ycn9c{!b_m z^6S4e|No}gf5{$X+5ZXd|4)(b|EteqfhrYLNN8AiL}XNSOl(|yLSi)9+jlANAn6&I z8A&<0dHDr}Ma3nhW#tu>Rn;}Mb@dI6P0cN>ZS5VMUDc_*Z?oQ~cMlE?kBp9uf1H?{ z`ZPT=JNLPvuXo`6m*tgjtKZjttZ)3>+}duNPhHH~IXpT(IXyeSxV*Zq-AnnEd2lRM{l^`ytrSM&0Secjlk}Mbp=0iBcd@Dg*@whhY(a>%3(D zmrZv|Rb9+b(`eu;byjI@|6$WND&RzX?+a;S{g+L*XGQamU)Wljr~ijdJvsqxB9BXz zx#s_{>C<;#`|XQsZ2nW`1@RA>62&dhfN1J%1pm)6oQU?HiF*Jp!`}a0RRU)XoH($j z1O}AAar5wW2Deafl>W^nft4h148b`%KR*OV>Fn$P+-$*N1oug>jP&oUf!!o9b98jH z3#O1xPWHip1#?D$fj;02di%J8D=yeR+S*#{?r8<*2wY#cx7Wcf7hGt;5e5f@Us5b3 zHSxoTUU0I&coA4G0yjNyJqC{ga5`pZC%}OP(?*$@DPZOZ9DJ~4Bq}B_KR;_5z>pExEHW_E2CGN9dP1tN97je5z(WAs%)zx2EFBdW=Yq!zm@NVi zjr9#5@Gt>adjG*e@C0~fpbHj?z=P=D#t|4hN`9*io3Pn)L_B7FQ@VBqMbt$1@7Kp z+)2aTMNpU(Jl4RY5?uQ~eR2t%n*$3-#wMcNf{($oPCpD4j8blFdglW*(EJ) zRZHt9mzOB8g9P@D0^cZ|o(8!#)M@*9gYBcjLPIHOPOyFC(bDXn?`IMh4HlEYeAUp9 z1DHbE+VWMfG}C+WyrdLVpLkeXOT2P<=F!$-?;s`j($qD{MOID{yb>X$uTxWFrW5El zGU}L_sb?2vQ(0-cwB)Ix$|owu4yKcAbF+2qG{KA#m`-wYmr*rQ0c-^7h6khCd=cY%0kGcMq|6%6@&TB)n2#qr`=9cy4_>E?dJTXt@ARijrGla z9tWM+&GZjd)SFv9_MoMWmdchGF$e#5pGm)eGWpwa+dQK0`P~oQLVhI(s&_{35Yk<5`l$1ng_p5EcI6q8P6M_#A~|<=3L~DKrmy*Hs#d{u)^l$;DMs;t|tIS)4HwaATXl^zDW@t~3*i$*(M)xw5Qa_MXx@ zTSD-vu*!4Xz`7(5T*Yfpf*mY*?uQwRSv*2NH_1HDn{%YfBmevno)AR@#+T-mgb@BA*|QKZ-mZ{#e~(c*_3ht%`YP zVLvSyJE!0G%ioVnUosh0^|r`~9TXoLRG-8iTt=5CVHTVY{(}_t9G!aedfgZUbs&&H~W>v!mF z&{%%eI8yQWLf19H=f(Cc_VhESY4-VB!aCZ9C5x;u@_|R}DxRUvLQWTx)@k?I4O5dM zjt;A@UyU?;H9z~-R&$}2VLKJ}_Fe6ayFBL252cSruHVR7;{-p>&VF>*`E8;4qcLP8 zK&02G=<9WJZgS1hFwuvc*Yyd$@y=;Y?yB57y+T!O%Vt@%)>>6;ga?ax%Tt0!4p%p< z^>D1G9A_3qHGYa?Z)!w3B9wYuz?V05X)aa04!zEz=5lXOX77!CkF#|91a`Ches#_x z4fgN;EQc5$tX_5-Jt5HC7S+A{nJl^eghjuqYx(-MSHCUKD<5-&MIeUmc|cUxkls2Wp|crIZcgH>%_jB z>uuHN^)gHg zBrT3WM4i&c&nYE{w4O{v@jkUerv%fx~ewTy^sUYjLv(j55+r5k%>IiIes6jIKa z?712)h~}@k?5RdSPx0NAHm?1Q%?Gz@F{qDKrD|cV@O0JmKHkVDp!Vdt7s1V3xn+wA zeK0)p<;>j^eDJ*`Oi|Y7!feaJo}_M`t%z*0&I!YaU&~XwtJKpX(uoz4MmcS5u9J=- ztH*S;C)GyBUTe6yr$9Qs7;jPCu$*NNnN-rgHWthZxzU{9`Zaz%TpV?x<{0~O$*5)M3E`=85Qio4J_R>|t1-FA?dM-XpRu`+#&=~Z zn{0+R<1eNfQ`^7|*ze|}8DUfUh{_gk*3E>iT2toy#Fk*!&HbcHd{g$e%C_k8&6M|4 zQ|{Ho_S4@tpMnUR^RZNSq^WPGBh{J<$tQQ@#BOI2n0AB#Jl~|H-o0ku zl(hJ3Gg)h6(x2f7Gc){Yx@S0W-aXACF9fe}Ft)Wm32n9{5oSfJ_m9(ASu%#@Wjcj2 zEO??Py5!1XYmE%gzJ7kB;rJ?MTe)Ju583P>%#2!I94I_YpL7rhvH(a4!U4?m%uzrg z7=Y#np~}tHDda;iqRnB%8dB&K+mgg6?nEMNNqmg^#b6*40I*ez(09oc$e9Asf{%d> zVRGOR6crRz6$E#H_2WScL$j&BVgB_PrBQQ%P-FL_!_3=1h>>6+wS#joD|{a=IKj}d z0mur|7&f#%2!$`Xw{aQyHH@@=zm*vlW)T+n%1cr40?geOILbx%X<~wTvkmd+CXn`BYwj0ASx-~b94~E9K?I%=*NigG11P9ny zVBE}^rcpebPpe&&O3Y9c%2CW z8Zu!y!*6sJRJ{emxLUn&Sggowv2wSZ?KMLCF#+0XG)5(+2*bD{{TS-eY2Xg%F6e&s&_o+| zNPdV7Ht<9bLX?O;#_VCP5X$HhemP`<9vn*W-q|ZM!WRs#z_EaQOxI&OS{MYPf!VWw zwxP$UVdgOU0`v7~1Uj)7`dUN~ODHJ-33NfxqM-$9U^NPc<$jI%Q%0QA8uzUomb?wz z3c|c7;y$*+LTw}QT_bkA(blmOCKSTu`yDtSUK){c8pmPi^|3zXUhd?vrnF!){o}s1N?lEi5{HU#}e!Y%N|h74sOR*WC0@Ku>g=|!kSH5mL<94`S`vK z9rL*>a13RKXHy-A?BcjU(J^s9ka|%;%s&kXm!XNSy~W)<^e=X z1&^;n5Tb>QO9lLUS=8+*=m>}!bDSpYOBgn0j&3SdVnmxp!MjLcXx^oY<$*~Awyq@f z`5KxB3rrCJh+#NbK>!N?h#tStX2BjCbry|Cql|pR0tZUqFp>Hc)V)Z0%RH(LD+HYz zQ@P)n20%-&b5E*Bd&>$)a}z-%bFnKk{s@JJ;bvlba20jHNI}6-sM97c-`2)p=_!61(`QqA&-mB3eS z@}cHtXhhsD5ki1%6i~O9{eZXz!d>%)4VYI7d#2&T%Z-83Kzjqu(fcZFm+F2hcWs|C zAK&r-CD_Axz`7re%nS>sA3YxnU|Ybzn5h?LNOZ<6b2ErJLe$pcR^<$n3j;v&IBr{J zRo7A#a9s6U6!s^&%$E&7%Zed1sK?5x$HRj_*6N}6QcZ&F#5GE_-t(RdW7Q90&t^4jT#>eWgMCn*a4-g7F+6O^!MT0H{KeHC0t+8 z+*l*2f?V7s(;zOMf0#YZ+QEVHKN?0Of};ok0MYO18kC(SskOro#2A!4bxGIYZVyxP zQ}YYzS2ga$Cv`U6J#q2>WFd@OXS_vo(g zp#|^p42f^qi_)ulvkZxa*WSXoUD8=$%ga6JCph=i{ZOfX=u9v4M<3+J`wX!`fV+=K zqYvWR7t!YOfd_Ul_2ukAiMTzIMQUU?M~W<#|m3hf%-*FE|Am08HYFd*`DOX=DRI z*pMK+kdNJ>`RLNe-fv(&nN*nQJZKc$AEB;Y*%TEKBEZl36o?D(-Y@!tgGZx{|J+Dx z40mOEmGdn1(+muruhfwY{_&9D;KPm#?R4K&FTKs>fo*mmSseCWe+)2#P_e_>;ouc_ zVskj)#~r9JJ#2mTfkbMGaNBu1d+Pt9>b=9+eB=J_D+56gd(?>7v-T(@iGN~^S1hftIjrB%h(URA4TtE$7}{{5c&IgaPQ{Fz)wj`O_E&-r@4 zUyutAW@JWwe@dtc7%Fx{@F9V_e?%wK>fXLwT6oXE z?;yl!PUfd#l{y=s$p&maXM*mJ9}bK!`Y!BYZnI{XSwrYdfl`HScC|ZBFD^A-nyCa z*dyLqq>j6#;7(ue5RB>W&tlU?7TQOaKaHdkqrdz~PO@Z3K|tv{Fy}=Y&*K-)x`F#& z1_XoKxW@nM7MXoD*SQD>uARG~ST?es`iWuxVSMmd;YoY&WgVb6osmHo7(8lc>`#e2 zk9elk3$6&0dj1$v@!*ljfBTc~+V9SRbMNgA%&GsGWAlV@kQgE1^TOj3m(pGX#0*0M zCn^`JX9Hr+1>&a}zwOL4k089A=HN@SbP;H;+joMDi#?C6`r-0m=d z2MMsFhq>$G2r{8yP6(I=-I^@Sb)P!z8`H^!8vO(_$RQq^Aijk$T+>}|`(4*w_H5ga z%#$14`)mpvH1b9-0Zo#|b^$gZ6C5C0;%l@Yy(i>gXh zD8icKB~EFTu&`mUA_DXResfgx%dJZYZJ8~2&!+LuO)It($c43gmo^#5oAUp5Vug2) z4G@2<5dRV>)1!zrgK%Ne?&kay$Ql9RSS@@F5~fw-{&`8iX3@_5%YUiUGWl=e{Tw3W-4S>XBJy|{Y`Du!h6*7- z@{4`o$0WqNDz~pcN>Adzdp{ZTe#X5!ObFd>Jo}U3!p}D&6TpqH559gWpD*e^yTaB} z4PQD{F#QJ5zg?gGX?zPZJsF!ZB(4bF@JvJk?R&t;^`U;I!R*-$$!_l6uU}%CK9NVw zb&!Bi806^Y3FOm|;m^jREHDrb14yz!BOC{VpjjvsC<&vpcblXJAYn*VB#Hzwhq?(2 zLP&S05DRu35)JDWvtozEJkG0vf~0)Fuv~SoQ2-J)GG0}uALlAU&opG5A6P79t zuzesyE=kK~*j=7{V9&{@f&{QQ7C;#O97RkuedH2q%h?R67%~R)1qqYv>;Egga#@k# z9GG62Z#8|XY4dwBiT6wzta(wLG{zV-Jt_k91575|4my83uPQh{_8HOgZO{&X*Jn{- z)*s}6J^{bA;MacnM@J3&CSE(5kCqgA;iKBC96SL-pI(Bb*UdU(=^)ypah$L?DeOXb z$jw{s28f5V)N5Zu6kqPg9qjotxJ~=_g$cPia>HO)mD+L(tg7wYv21l7i?_VgUmzxk zqu57?BrUG}<_ZwevA9ef!(KIqg8s>7C~;w~1|Vg105m0k27&CUT!gZWp-yIczjTA% zc#U!wn+5IFoJaK{NZ;1YtT86uNs$sqK8r1yMnzt4@DQyQw9?S^K&3WesYP+H7+T`H zC9fbpn6_+@@z{X3iLRq>uj9p#-)CemftahkkYcNW zE48|R>R#c}#8P#<(q(Fk&$0oFSCJ}E07#qq-lFJrF9?1#%e(d>l%=+MkvsE|&GWpc zs!tS5>zE7#o24Jo{ut3fTt2ki1{G&mg;C-fSX^uj0Z`=CE8j@oJVArelKEan%w1&m zanfAzp4zulw1kJArp^4(Oq%U8=*?&~c7Qoe0+j(FWtl~&rgV~pbRRtbId6Kw4W!cx z0og|dfNy?TIVS5OdK=s=w%nWdUYXnLqZAW;pEY1bJvKu-K>mwi6z4>`Z_{B)X_F$cmE zJ_{MufulgTOGC0WKI>P$<7|n~$X06?)n6B45+OnN3hS=}P~*Df=3b(8M8eK14sX=* zixA7L>xx3K9z+Ca>I+8tEP~!Iul0YeN(BPcMmpcgk&QW28Su0p1F-zxVO~$o^M(*G zk{hrHVn+0_+W>$_nZHj$+#CdHQwo|z1LsjT%rR3bD7IB*IGrF_NlVrPXsnziFs2N| zY1Drwke}=tTw7biI7`p;7{*M#gp%sAOr^PC?>7bplv^t{Qnd?)%yn#%cpH(?V(eta(c@lLnbloR-9mC6y4QBk~sC zqyU!$jCf$QRP7mlB48v5dUDc?3&n}=stDc#I&3L%S$Se0IRaK~O^x~o1mvXW`Y79_ zj?NCYAf9ptw1r{jC#n?LHVhbkA)^#@0Jb1HND^#OMi#CH3Ys}D9di};W>J;&eht}3 zv)+Knt;yMSzH!XoD?JYKc#2w1XPUslw9(0_2byL6#(m{k%o}LdJH3!M=HxkUG(Vt? zfSDnZ4H*J#QdlMiHb_cClJjWc9_1W1O8u>K;=_k>?;8}C*)2cP*$Js5<@%SQ`obhu zC}IG4kbB80rWcK~A!j}|hcI`D0#v$LR5+5Wrx)ei?yL!@6xN@f27%{1dAcz>(tfty z03*8k%bu!{2I=5c988ptL0YH7S7#ashV{dOdMX~v`#;ckJOC(*Kla^+t`p82LeDf!7 z^8n2vRELr~4kpH}xFWd}AWKENtvU69>bX&^cU+_;t|Iq1>II&2db#g})+IkC1mm9k z=d?TUA@*AqA?Ed4+F@68D}N0Ke++#>&kZRL+n_2kqO( z!C{4)^Ya*EE>ehiEF#-kl<4;!QBuXS==p^PaV69Zxlbs!jmv~^I2ER@KJ`S?@@P6l3 zfDpmgR6y`^Dic}?O)TMjtx3>c22P*@YtW$%KM>}Or~^R>T&1x!v#T;DvQmcYX9@!) zeHmWpj$TbfRCWHLnVjjARiR#WR8;!h$a6e~2Wi|BiKL#}>-36&@u4c#RBRObKC};9 zdwA_dAnV7HPu;aPA`uNfW|04;1ioLRoC|Z%5spiG%ZF~gdwz#Sei8JuBC74_i{OyY z=ceZvf8xrdABQIYH+x0YvQrQWI=_bjWOTGsrglPNUjH}$Y6;7O*nz0>uFjt@#?Vg~ zluO8^znQ0aT^_TBgg!LbhFNHmApG-XX{`#&+#E-!DPIa>K|!1VQ|ut#AR-@faY^c3 zTY$JRgFGDLFMGrMtq1$n5W@-{`#}%`MJ43U&)Lt0OxMR!3?eJ}=Qd1CuD>sQ8Ck16 z_r*Hx`b3SvwFalTO{dq_C!fB&_Aq*G%Y!Lys^1{0rD$&ZvPs;`$CpuU?Q=V!X>qe_ z2GL!g=60iB$IbtE8U6C-+}9gS@rw+GF}?irdub-|%e>t&1KRWZH`C%*r3_==IL#jv zy^dek?2a9cp8ryz#CKOUteZ2KC<&3u|aY=51wd#(E< zZvN-|&u*r~y%fXvW&VYu*CvSvh28P%+6%wlr6qo^F-+KWS~&jnI`QyncfxM;!tVv9 z8%OW)Z4b>B-EM5$=ta*v_U#sWA6ADw3=roBECev^)7d~ zWTARSHWFitN#d>p-gcmwVkKVIp=n(`my9?Cb;t&Bq8V3uSXxNjQyN10x+Ywm!WLLL zJ8W=Z@3+8K*Alv183xArxU!>{1NuNwlK0ji_KD|dA@bdCUfJUypht(JzlHk*AOeDo zxkAGkI>;pXz1F1|EYEZ1Te+{~>x$0@6;2)Zq%UD#%d;59=lTgf(bVhZj?dM@wc#nc zl2>t;OZ)a))l{o{Wgql13HD`g^ua(6K!d$XPk1D8n8E9kYC&v|&_?r~nas^#gD@j* z)3%4CT(cncTWEO3G@fAk2whN&`To>B5`oLgjVSFiYef3;=$KM)SG|q*p7mYUz_Ugc zTjO9s@d&~`c1ZB<*=qD%bib;-j+Y?Sk*DWeS*|M&(Aa?wnCNTEV~Z{;zBJ6uTaWbA z*YyfQc*noCtj5PoJoAslk}bNgWN~ViYUtp4wTzPF>r#UU)o+o2lhj!7h3{gS&4esB zIcCqyjK<_l-0Pc92Gt9MRd`I=Vg{+-dlo$VBB4W1uqKoZ(w%M6-5Kf~{d`uKX-P4F z*h_Zd?qO2_G3}v6AtVHi%06yNgPrMXfzufLf$>V!PvrtzEy)t>N2GsTk14g4`X3bm<~;y!sUqu zhWdBQEu&ip9KaNyN^ev}YfuR9y1m|Q>)XiLSuJLbcGiua^o^2>$A-P+w;QbH^pm#X zBtI0xQGC0I7u)Q21-7Y?{IIcM6v$dO{d=VRp#QtqN!)5r@@9t3BC;$3$}DFJG|mL+ zNcm!AUc8raw@fXwRnE4RdHP=?GPE1Q8}7 z&W=K^xxqW9lBJ?%^y&0ENmivyo$LVQI=CjlWNk*|b|&zJ_9ibT&b|16_GF0^(eh#_ zx-nu;)_mlLO;)CnIrhX=X)GrcwkiD`fyL)wMC#bBo%{9fCkzcJE9{+Y{hhf4|GMZfX=;l&STcSi}3kqSKZG@uM4 zN*M`Iv5U8kIKer(9CZvpeT^$O+4VJsTIgTY)IVdYiRov#cQa@vKEk~NKG@_hP>6!-E$ ziz>^W*YZ6@L0HP{CH!}boxb#a%hCXS%UdI#_Fl{f;3|HO^n^bde&d5Xl5$O!G}K}< zGRrpE!F!Ytc)10rDhSef8jIwhE3jC;f?aI8o6FD!hlUg}++$@9@zByspMepdBuKJ2 z4nd7MI$khWAV{_y%-pmxGMxeB45koRUF=`?X2bY9A!kf^Zv=`0DodpVdqNzTZH&|q z3$p$UcW%(u&OB4e>lk;Rb6FDY=V<@_9f=Hfo)# z7U6wDDHbOQ0^lo2jXK@{Q26}sD|tq^qUiE=zxQ{xneTrunJHK@tGYz~*H`#)Wy)va z56#OP*rT1QK*CmjWW~?`0VKk0zZu5fN)SSqR&Q zY~K(ZfUIxVo)y;dmHFtZ<*pC=LlIlXEW4NK?V2B{%_SIa1$kKtQpL}N4hGJdfCykB z4klQloR*>qcyzXt~ z7v%kZJv-CpP|S7G$BGZI=5vqql*2qdW z38F#2QpQ;PsN+kSaWVwW$xTyWCxZBj8~-)Wa_pT7NN#G4-lh@*xWhMRkd?K5!*%l( zaK6nh`OT_CcUsuyBz+U{Z|yk7rX&}{<;^dHrZOahE{nqa`Ko4|A)sb*fEHl*jXF9l zU_0o~De2t<2E=KBKu6&5#%IIlVvjrEP_w|C@Uv~kEC0EO5^!v)Z z-q8@P;PSQFuL+5Bk4$#`fD^GT=?t3?MvB&P}=-3weD-p zVrWaw#msrwTXzsMX%AKeM6ff1VzvZAOmO>LU2R(d53?!>(&_-o$9Ut8au!{StG6wy z%V2x#{N?_C_-r(isb~*&e{Ut#8$=BK6;gDf6r}}T5Yk&V6BME8ZJ)p%hp_N3I zji8_-susa|h-42=5`xGg^k|>?oyFEm`Yq+X$NdW`(W@ux0k}uDBrvgwU)i;%R0W+NnEoQ{f_SDaoPR$w>W3@ zcDj*v2G(hh({GQuk<&PsgC}hvhQdlZ*oJBA$46nbG5F{n{Dfg!+zAdGb&zGR@qd~f z&DrN><$nqc_&_4W&K1lLo-Geupn819Bq_>C}yD{cfY#-(( zM?;fWbxtCd)(;D`JUq;`ZiQS``x&LvZloLfP5Wf$*Q;-n6W{KzXD6C&+(_R7*JhaM za%}1-CunmfdK9g%{)}hxbg7MgddzRS03$tOx$)?eC zjh#HoV&cj&zN-|)JzRrD<9t0Xg{6mPes?MF7YrW_&-gY??e1h=b$K}PCB`sQbo$ru z@Ynhoj&cgtR@Z7~(Dil_-fxr|HL%Q2-83^htUA6SzJ{o zWceA#JtSwc@foN;RJJoKufd_wwew#5-CN6n>Fe*F4Kya!{La|&Y`^i&;NPEbTjQl? z7rG5d-#QP=t-gbtk>q`m4UeQf27hGIPu)6X3a@L7c&gz4T9wk+Gh~rB^nOJzW8C(T z#Xz(h!YG`HjRY_yJ*K~bNt@zUFxoi)CzU$xFOeg*rXdL!fQM*iiflAgrgAU!11Zf@ z!#f*%R3~u)$_69E-ufd{uUX#m2+K%PWJ6RLaI zdH2_fO1KJ9Bu*3J?R!}lrqgALvnXm2INo2ArR_@rWEIl1--7Z#2T7IbT==o{$#o6w^ z$G^|gL99WXaA`VeTKrnrQZb(SY*u|YySiImUy54ng&wA>vf*j#j;ltzjMf&Mx&b7W zo|9D2AP8WL38Rt#C%9sokdje+#cP2i#fWxYG5h@yCSQ1eHG=-NsE7^MgbXN1ylwv&*8$D@&jLpkf`lpEbN1w|x z|B1(^+)O;TS^wbWxh*iO@-I$BA)3k7)3m!CJ5#Cm^uF#L{L|a(VKvm>53^}cAxF>|9)+CpMLy(VhBKF=^(CV5~Ds6%zX-3sWp??{WypQ6JH%gQ#FR17?Hn8J9@#t(#y= z22Th7q^|JsOtATikhl{}&H!MLCB8|SiQ!afv%ZN@^Tsa@4k#Nu&IMMnP-t$ltR&62 zsWaE^39J(WLxMcu*#ZpcflQzU#oY`R+cY*cXW710K`AqKM81M&N8Btv@$pbN>8MUG zwk;^skW~JaMlCk276OmaWmI^E2K&{F;v4@HI6Gn5&wDja?X*8bXJR;A_-ew3?J+gB z=n=PwZ{cTD$dCdZor^FM#It~EnTpI~C$ItG#U`rCY8IKzA5bR#_mg&+fm0Rq1%oiU zbcl0GK+vm{Z8#ZtLm$2Fx>~wa4HH`sv}PY#0tZlyQuEUxq)Sk6V%;llAlDL5d;-bn zf*Hw#fpV{NK@;~te!}vj$-){HQcnkkmC+dzwUIUA?w_&Nn;J#E-%-3TWYZ$L?5?-m z()i}QkrL2gQ)ebwxz{%grOt?#gw)+vyi0YuVP@WBOR3=Ul|RAWe>27!TTnBtSZ`Bu z9Z{Hgt?_KOoX%zWkEM>ddLOug<-RUwLR4!rpDTswC52kZ76JorfbkE3TMaBkh!=5O zz^08KL})=NAOJRb6kg88A1*|n^|rLBVtRr>Y53ENG-$~k#>?hy{U0%i2hIavK;w3Q zqu<#ljAPAI=snuH0tZ&eRt^VL6B>zDVOHt0D03klv{vU{jSkDEob^#7Q3C*{4=$M~ zwxA!&R$k;&azs6Ss+1X~=f($Wc*b_5obbBz!46;Ta}VrU{QAY&6_%ooZa5EaNuij- ze&YqpKw;=vh2mkyzV6SKUsEO(iVsDr?*PubeqT>m=RG$0f%u-#81o>{9-z3T`)*hm zXpwld?1=fub~fsAy*pp{r{UXM--wfsS$X9(&LL3)xTCOaJ%`z0?j zB7U)jNE@tv_Ge86LLARd)TkD`4Lt$jkX%e?!1p`0mJ#|tqev|vDw}laXAEkHkKR(M zM7nHF`EZZ%X`N|sMR4@*|CVa0P=UV?H6vGVmX@}vXTTMx3S1+=ueDU}U^hnZjM4Z* zji=|~%i%?(Qv+3C*cZDupgW z-@HVl2=uOc%i-x>I$ssnl_X%S3AqmCsqke21T@mOJFtu5sda-|ps*i}p>vD0PCa1s zAL+^KG#0Q82%lu?Vi$Vyyi?o%K8$$A65s)EUCkvtx}0w8q1Rc)xbYt*hvw2xaYUIT z0C7pRm?m?|7OA@iPc+}rA)copwa;&YXxB4f?@^8AgInG=5U-6AxA@<`z{Q*Z3wC|u zQhrjq3K21_RSBrq(dW07G=BG5C!z`ssdlG0SUOznFa7e#=6!hL+D}J->ZHE{5i1`x zT>Qqw{8vx}w_kYgn8D+B!U9IJeA`oGM})FtiCe@hU zlX9A)qA(Jx4Fyub?K|=c_lNNG&!w^peT_rI7=1FMKgqeD>8fyFnbfJxV9vsl!T=*N z&x*=9Kw(}djQ({rT=QazzTH+Q*ILEQqazlejs$4*U?`w_N_j*m4amO~&5V|FrZAJ1 zFpEimA{i&_86U*W_ymTBdh&Lb3v|5(tZ;&DXM`G-FgoIC&nwD-3Sf8%=UlGg>yae4 zgi%?-tcv5eD^i-pdG3_+{JSLbZ$`?NB4GuU6vc5pqybN8xQ+5S|E1z$cYelv!4OC3 z<|}bL5VlGE4&dpJ3?fer!m>i-3+=1%cn6{(qvfZ3*?0#^>eIN6mfk( zhycaz6R(8RF}XWrYE}JXnNAwFI%pPElM#Zcrc4uVUy``tMg#oF$E2DdHi7MY6G)G*Qp2&qS@-2l;rB!TDm^zu=DI-+P%3cA7T*%iqP^3|3Zl2&HbDx)Zr z8O6+s;_X}Q;M%8dyn?Yi#17m;(O zUJ>a#lOzJr3AkdqQ2{q=GaA*uhJntzHB?_vTxg@j=M<~t2g znZiYqH%xJufA>Iced=<>Q$sbt*cv{Fd)R*^Uz4fiNv%lK>DR4IT9Pt#uO<4d``Hc# zGZu$9;>-gE&1byVKr->n_meE7t+Ds58$?3?%|zK!B4=)g9j;z7UUzbY&6d>SXtn$g zr31U9g9g?y&N6;eep>SPuWn2GJ)ieD_sNxyi?13Wfn^o!De-Ef#hy#JG8e;jDXE;# z`tDHoV)9}|2{8chlwZXl{g$twp>?EH5TK2%Z7jGPKPv63<)0cx7NKHp+g$wXu+Ebt zUHRSfiY>(wE*aM#V(SQs#ko* z%*r|}pT^{5Eeh&OxUQVZue&Y%C0|X>54S;4_P^mccT=%`|FYlb;srt*iocHm@~YNks!$v>JOB(g6WST$EVo$N&H#04;^L z@V$3iwA5@R6&X3NE-+U&DP_-YF`B1pFb#O_5IzWE?oaZ1iqQVuNQuozHYV><@@n z6n6#&Xd3gCG%578DWp!oUct)@gfLRJ#sU@;-g{h9cbDC2mLIj%<71Nkb~5$K4-VCC zU+MD}Ufyas^n1agwCn&Ib{sqtB?CY`UxLwB{RYRaP|wVu6W0mje5u1$(2;W+_rP0t ziqhM8Z+xWE;eJrpFU1#|SDHnk|M3k>c`?q~;yx%Z?{~(lEL?)$D#$kf&c=-LV2-Pa;w`&eWpalxWLVIB^Z- zc1IX{pMx-U9Tz_-A#OjyLSGv}261u%!byzZ%W+vQ0g0Y3HaGCX7_V!@t|eegd3Vby z1*i+z?Z1m7fF?aL9|j6S)y^Ki=lZ@ohnv{-cZ3BE-90n_etJF7b0us(RIX`L{H=Kw zZ$Uq@B`lkTt}H*)U}2n@Z+bCv>u*Nr+P#Go*R!dxv-_fy{fGBMh2%kLp(ATw|8<3| zNH_lhqmTW*9x?`b28DbUeaMuEch17Q5bGC^w(G-a_ykORU|06G9djd{MMV^V4iJgd z`>7#yLeNNfT8O}j*kz4WCsK-YZiYH8+!}pfoNEXg6~Yf(OK^lGcPui%?-I z0+WKWpusU!w$B@E7xSPOp)qv>G4Kb>GT|)Tk3&`9K7@hpYiIF@lnaC{LF+!DOr}6W zAGdc}RM_j3iN{C_#t)Bu+5)Iv!>Zh0*Tfz%#ySt4soLWb!|{5A^IZ&>0XGRbF`QvK z_~WXK*N?ayB#Eb}+9;-rJ|hY8GYH+^x2LKhoenT=EnE*&^ym7hlYhX_Hwx+bYE7(*$D- z`N5okmr}CsGgK&^1p^q?REz|)6*i#fO*Km6$MJhfTpq+Om`U38;fuH%++gQe2g)pP z`sNDf<5~a{4YT{Em`9PtiA^$vt)>?T4HQgq78>ymPtX@}W|uYIi+?v?cx0{peV+7W zrYlV=bWfGvaY)f}MfRioU)JHl#cm%s)#qB){@V|@5j>JCl$%84%yP8L>a9CSvtbj= z)5L$YaQe;aezDKx75btFY~%@ib^Ax^)DO0%A09thJzulEh7Ef;Q9Lgbh@Ul6<9|4K zoJ9TD7-{m-x*VRsrp8n|(RN;heyChn2li`u~u@ zpAT1rtq(TZLhVFCZ*GNhXovH+hl^=P$h1eC)xN6Te$`Mr(xg4oTKk$)`!x^ksLSn9 zq1w^W?a?>1W767VZfeICwa1ogU%%ge{gHNDdvtCA+ioMbXyg0%6|w__%4vyneQud3 zVLUcro=Qjf-m<=tHn>&n&K^u4dko!pHcH-N<=(MLdZwKsF}l?kojx%15Qc_rj>g7J zCH~A5tEo@C2yeF`sO61rWgTtAID7hAF0a<~@rF*O&2!#H*-#OT91i42)W;L)E`upK_FQxnRCtXA+Gpw#~`>IeZ(^5jSBQ z92HxzaC9q8H}>ULAqTwVUA7(LQ0Y6lyic9U4?2tO1~cl&9(}9@|5X)!Wi2eyxf4jp zh$Bq*{aT6dOiTWiwy{v+O{k34O?{A4$uV5>U+4A9AKha+W;B>zHsWf&>Q*@8><0@< zNQ}k=9v(uc2U+*iHm`%oO2aF=2MbwMxrOnol=du6o*;XM`Lh=ovi*b|gxy%2uc2M{ z9b)0sz8~CSfc+S<2hGcq1_zu9@94RIe5lT%w-Zg}<}+n*7#lox9X|$|yZX^57{+f* z6>uP~IPPL**NiL&f%n+f0qXX*-6cE@&(mx2%PVE@H~#tcR64Kg^h9G|SKK3k=bSEG zZrPo<=l58Fa`hNI9PkR(K_QELcg+0e;I}@0>J%X4CooeS92E5={;eb5oPe&{)EzT0Z#yTa_-h zhb|2i>J^2!KZ{uWwL=k#5Va^rMxJ5K9WH^r| zVrXV=)L`t^r1>uGDG?C#m_25}a(lfQ86?t2Z3=sMhvM9cTK;LYZ*6cY=N-=z$yrU!K z4+R;d>^%P%lfj%L@~1`uxXc z73kDS6-q2dvSBVzCgl?*BGgjV6{!7N;Bi9?++p@)w5iVBRBr9SvP$0X!^%wzyUS{x zsq*w{iyMNJflczC=2V1IM<>z|Z(B$0@}4#13S|?;ENgT*McZt^}av#6%^KRBY>B)bX!wqVZh*4dz%*j{6 z1cT4tuD4`1p8pCtwx_0zgTnLqZ0h4DQq@+ilohz=L(r-+##^Z2xwjHZu~{0Z342{m1f& z_LmuvG^jooz@cc9GV~=NRA;M{(d$4~zE6_zqdF!LdYbNPMxJIw99+P(?jg;uH-5Y? zU`>+%6yY@1>_rlcF)Yo{f{F!5rk(bm4Ph*~NCsiy*hv5wn+v%FRb9SeUr3sF-%Dr$ z7j1WqRVlMrMZtut4jKpb)vz|v{VY!SE}QeMb)%U~7DU&Ru89|ncW&loN3KeU3l8P+ z1~PCpuS!XwpOv|9`kmX7{1a(x_Lx-%Bp}_a*$hWVSQA`q#lxE&$wzI4V*x4Hco9uUv zwtPqRWl7?*W(v43G6Ed+&p$|+mUHNOH|1WzV{WJ9GRCiokLMF|mhAHX*Q#`20jM_@ z$gD7ZSe=5WJE+zO5vIGZD0xvIC@d?1NGC5ckY8!A7fu=?M;}1DgEebrmx;rUoUm+9 zGo@??ha?DDsFHj`G3(bd4FjsV#X%$XRa}fhM0Q{!g%tG#Jj&$aax?VNOgH$%bQVmV{XcV zQO_oBXRw7=wbytk;>8HNLmc&wA|$WNcKZKVm6S^K#Ys}r#vbKm)0kh`PXJ0ez4rKXS0_K0-myu-afX zFPw?Be_etU^Tz8%Z9ItR*x7U&$-BsXaj4SQs=pd>)&H>|=+A$ZBr=2%R;1)L0MfTn z&HK+G^4e0o_&OtSqUp;>F9GHHB{k9;RKq!Z#OC~rqt$dp>V~3&8rltK$C9LXy$!wbW)0M%CZ@yo;Eq5ji zlCX6K&?Srl#fK#6F(lMJ44eDX;@%b*$q$Y}gQ1Th^|E1P_3^hHZ*0gcB&nsI&Rxxq zBO%eRevfis(m?`yWbwM!jBBPp_3{5gM9cqQP<)Y7sz65CrsEU#%M9__B4^}R2i zo>VJBV$?c?hz>6Dk@Wrt7CpL;fBRnsgwAl|93Q}^2i~I68GIK4rrnX$%0F%^#FGkB z#`B49L93N_5k)a(Zy+l$m?sQRBws%_d$o<}?sAb3N#>tDSbP>>3;cHBmDt0>H46s7 zNBh|+I2ZNQ`)}4%!YO645EFFMcP}LE`J7A$-`i)4+rA6WL!qSow(`=$r|o}t`h7C_ zt8YTI>iAy7DSWLDPEh2Wwu8M6y9bgKXF&dGe9oin2b{9q3GeCOS-$o%I|FRx{AdJK z;4f$Z_jBa%#aN+H(>k{#QyR5!Hx`#W@5BmR*dvtxQ%R=u`~05!%zacY-$;FUAv#1U~6x*j}ws$CiNN0bWiF}U$rgG(_Y3!3W@Ah() zYO|0;BHMx&urbDNn0hn@Mu=lMe&x#NqS*)-uFnlk0Rg}sP44@02%{0ZKn=%|3j5ni z-g+Z|IIfJ#<9oNqPgWI32^UD;_d!1vIAaPDMTY1b3!ap43Rb8J)r1SxKNfn`$KAB= z(}85!MF8RfSvkg~wGzK8A~s#}lUVeE7)LSu~Kr*XH+gESt3Ya3UKv(ACl8nTreLg6@ij#K`9-eRMjLjBP4WNB+eg5 zVALe>5t61Yl9mUO7u2L2BBWeeq}&grJk_LqBc!jiNCzKChpWk4i;#(Jkx4j^A*;!z zM98MM$YvkN=BddQM#z=4$lX1V+rctgkr3AFu)RfjkFaO*U}h^Cc)fwEH5lF(0pDP* z>3FZOzuZxGP$TTCSTE1nZ^C4?xMlFTc63?sWT;PM4XmgXk$A)<4{D9avc_*Cp=Uf9 z!ZPIJEzW-MVz*j^ioS&mKowU=F#AEJ_#ow%jmqy{sfybH`hfDg)w5z=uKwHeLF0;Q ztvE$)Wy(!;?LOtSJdF$Lym}Y3AnMxnUMk)9RmK+?y3k)xeIvJrS^C~`%wa+3t7^U< z;)cDzS=<&{tq6C5t`WD7|1D2r>yEHninMP!kj&}{FJz}Wd+P`IyVfH&+4EnM&R^qJ ziT&ooV#nAh!F+CTgQ%`sWM@HtuZ#CP7kE{=QQfEIgGSG5Lvo$oG?(uE@$c~ zW8ul8vH0_33 zGYDbfdm9!xCL$r8fKy>Qc@4%MLuU_Kiws`bVXjH95-*?!!L#pNlGe{&J69pG|y@7|C;Hq_md?gQ$*LacyNHp1K8qkN;_s@mWM zKDZyMOkYJBx6J6z8N_xd%U-E)8?0#N=*|2we5ladq}|)-cFQW0x585&&rjhpht`IU zfhLZ%v*VGiUlr!kYVD(Zts~I-)u#VUdh@6X%JS>@$A467`0xl)55R8y>DEn zE#2q@{2}?=uODlC71z2R6=9@9Ekd%8HT1KQZrEwBFE$U1q?=d7_t59nyuoE8hSAg; zu1fkR-hp?33s@ryioztDcWb-PP_*us$Qp|gwT~(u|=nu76say>YaQnKUB(PdP! zLXBj5Cr;}O7foaSQKk1MDXIkK4MU_KxhcnI+B_ezp=0`nY&^H5GtP6ZpW*t2XRMMO-D-?Z*@FJ z0E%@vTTupYs_y$5M`IY$QoGVr*p4@9ZYBjtFV}?!1|(V3S-0HLFH2=Q*&`Zf`8b%! zQ+zuMHGfoCcBbOn^o=?x3SDXLP7U6I1z#JvB#xVVrmIBG6>96&*hSRnh5GnMNe4}e zD!JUL4k)=Jr|E~ipCTds{7y+W_FmT)ZXZ+`J4w~6a%mX($;(=y^f;?uy_$ACds_B2 zjI}6avRJKNcH{73=drlenR~aq{~w;t#2c#k|NnOu3q(o6qO-J-@%;-h0kH_uTjE^?W`aWln!Y zJr*h%wrXDXhzVG3M2;25$!f#tf)TXk&g~}xzi<9^>v&jFL}&3l*Xva0_j8Wz_@i54 z=++tUTq~m2VfBu~uC!D2Wv3$LR$jN*YyW_fxQ4rO%@2aQuBYjD{%Fhwx7G!=;t~KV z4bY|`!@TuE61XGW?>;-1bb|b|QxIgSV3hs5xf@wtA>z~5hidh?)JoNh-M&=y=MnN> z{CM&Bz59GDYXb}#1Zd*=uFudvwN?N z(=*TfXES4QnqB%Sl3iT8%u#&m+Mb~I8rUd8gg?Y=>!|eS&K!%*Cf2!bLB@@zYL%$C#3F!3kp}WE>O983 zca1SI3IM{mZ_MCA)DrY1@aPTsWZRW$!KAgehStDXKQX-siW z``_=i%Rg(v7u&rp)2|g{jlC`<{e5%pWsC1>=k=e|R$BN`9ZV_e&`o(qIOTH)`+Ag; zQ`Q4kLjp{&QQ>PE#1hBgw2a9Q+brGP?5WTfwgMviZd?C2o2c|7q-bx{XhYTJyY_b* zJ*9P!!eX4*=M&TNEXT83w+&5-o^DoE_98!SITJR^*|!*li;GxkatsWJWq)x(L>l|r z>eEHPT~R53L7U2#@)5C>;V^CZ-6MQwH2FuE^V2z@j5C6jZz>PYzFu2@+zZ)zg8i-8 zCy;hl_ds2sJ+xQv)ZFJYsCCwB&*R_zwkL3Oqn$9*zl7uo{n2YTc9kur?bc&Bp_!r-$n!!*GTWesMj5bXH|0sZ}^npv6ps8fRObyzLbn{!f(WPCo z#F=F`J5Jrci?2PKwF2EAcn|IW z&#FXXJ!P1q-LX29b4oAy*g@HEG@sR`$ro&zQBU8-5mF$7=LS^Nf`teeTH#Qk^hs!M z>?R-rsAbE%kH4}p6Z*F(9dvee#W=c~%tx3v<6f}&wsd%k??LeJ6sy(OQ?b9@H{Mmn zeyB8vbnAOFcI713u=n@j_QK<99A}=cP61LeU-4#u;ICuP^<54e0nBcWBQl6 zXH_yZ$A$HuVhn#ys`oC5spR6qgDhLp=)_#lB=ci_5fg%HZ zb9Hw|Kl-^G{>Q4sKDNy52z?{O?FhGn6TYAvwyKq zu7!Vze`ThBX;9mkf7$<8l`Jk-#4KfAuDrTCcDX9~A9DaTh21isI$b#He^#a1Ttk+? zy8QE&f%QdRS%D3uVdH^~|FbIPx}g|-%XLkeIT)ombJ#>9j2Jq`F3a7yqjcfR?T2o+ zs8`j>@nxx;eR9p-&lsP-j+;3g7w-5VYqi`ld!lL;bpN%I<_NR&Je@no_8B0cT6@N) z>EJe%W~T^*-C3V;|Hq*Z&-XoVeVC55n(x`sVp=ptw3xSsph~iL9e(S6`WpOxMSiAl zab*F~_o8wgpU8ag0iO0IY~nU}Uk%pQ{qdg$kvp;O&nyTmv8)t@iVykfpd!N9fs?y8 z5gy0qnd3FtXyLd&CVMwW#f0UH!Yv2XqQ2@&iL&=yPS(#yt~@{gY$)ROn<;o?x6_HH z=A;q_?f!(w_p6%T-nH*-=Qx5r@{E>V$ z*?+ZOEuKB|sU$q?rOBz{WrA?Co?n#UcP`G;kq~PjMdXm}gY6n%t5oTk{Zq-~3!JU} z(Z`}#!lTbQ&V}vYM&I081Z*cFK(gJ=nr%}(+1HW|oq1Qyglu3>lK<46%=UiO+>Sfn zSM`s|B-~265i7Y_^{3(ET~P5?*@^FvP?eWGpeJpHowc4`<|f?;r>qcQk6_JS(A|h9 zO4HBC%n#{8C=C*{lHS618AVj`F{nVOScpmuNGL8m!B4N^y>$%%^%SAvJ55W2PBU=g zF#tz^v2mgcA|3h-rZwoz&d@$^0+{`V+9wTBP z9Y#nOIkto3Xtn*P|8EWeya1Jxw`VI|Kd=tSQOnP0>A23x2UzR{5Cns8Ok!hxCQ|l! z*(z)4k%d50y?l5kX6Q&QBTT_U@RaLFx`thVUAYgp1G5n_>y=%D`U(=cuE`<>fQ+=? zpdtW(&4b8IYBy#f6Y^MF)R}B2Ms+{LmJ0HTGK!!F;r3{PSW8>El|;>!?au<$0|_W> zjt2MNBdBVem{6gb0W5$mDRGxG>&x-FBclpbZXCyw(nJ$6qL`Yv5Mg$E1R$m!%LAi< zMUQ|}eE>tw@-k>2iZS^5cI5sjhE6@Hg9+0h>DIW49mlo3gG?Yfrn(N+eNKV_?NIuz z3tHr7j)KxpA#}W&41&O3jKbQoUFgS$n@(V*!}kF<*~?=Td9J#4K&1n3PhUj)n)vvRNsvKs0JLy) zpKV6fyScGzvvWHQbR=rcpYH>}N>ojgxs9Q40@xSYN5YxMg8+wD7uCrhvix5=$x zhX9E$5y593&4Cksklc*6U%Cps72nrr0-=LAmrFz&yuij1;|K(yKs3KC&uu9OZz}n& z{0gIOh5M)Va9?N@BW!>H+1tf_+CyHq}(T6DTIl2Z+m3ufA(3 zU@mh%CU85*cmhpu<#G49^1~ev_8~*mFUX1@Xe?Q5gaWrx(THf(ob~2!%x4$m;7fgb z$u9E`?qb3sfBtydnDRpvf>{P|O46#}IGKlfU+V@A7gW`tz(lX=Ws$4K$CF33(n*`x zfZwl9dXWGH45%{6PTnlqn?EHtW%<5+;1&NTkogl)AsLWO9F8bgr~grVq1(Z_-4nnQ z7!=3^Blz|Gw5KgUhEFUwCB;HMv!g{t`GI}@&g0L`n!|uO4bKFIRHw$jjlC$xdTNuj zePEbD<4q?0O~L(dl|&2O-8*4IGPz#56}bGv0@W7+&l8~ETkv%Bn3gCrId-Tq7AMM` z{{uAeis8!xLgYt!E|~N2I`;)mODGf2osK*;>g)WIbC4;3zwfGK2O|Kal$)jS^dWZF z&7mvMlhVFKw)5m%T68>coFYNdVU-+=W` z!)LDJyVckZk=d9GHc_JPuydq1G8ra5D+9b94U_C(Gv~F50~op6VPKl`qnK=y-J+eFdMK~$VBJMs2yZI;-?p-3u&#!NcY}0m=3M^HA%WLvml;?NX^+3?GL4YO zQ8<%YS91|h*R+iGzk$%$eMq-v;=uhAr<^-bh3FNQ&Nl+tYeu#iC%ogb&et&#n34R%*c8xZOwf z%WL&Q3sRh-urtevV2TL?SjkEhSRim-@8aBW3N9Psyru%VaZld}%XLG758P)2Q%xrD zbWSk=l3y;Lu|gPGrGIfP7jSpceU4ztLr`^*Sk)7*vvw#8f^FuYuY`Fkgn(keBIJpn zw@8M-EOWI4?OsieWL@MX01zHS=-62*eCgy9y?;8}(yqq?+UbI0Qa$&~}qHxc|LeLA+)kI#HN#pm#( z%LVnUPi~M^b&bkc6Tvs$CuoIyQtGW4SSuV!W#m(-wjx4O`#EH>K2D(-L$|yV$P04xEv^{#)TCSx)|t7_o*;7kEE{L_{OZgu7nt5OLCh66x~@!vF)UhV5z+``1hyvaJ%ZEqO8s*# zL$=xaI#AB~Y^j7vZ=LD0gYYNbg)sFipS%fFO?^Fug=Y}c@8|!AM_Yc$xfQz zdGac+RodWhls`Sy@?U1Ll^l9jAMjlc7XX3ia7@7qwoK85(VF(|+-_2N_8jf@iih^9 z_uYJ>xwHSy1xzz&?154x7@NNboFXIpl4iViUKL$`TRQo+VaM+F7TD}w((%<_ zqNkqB38eQvpRb_H&ldw$7M1??D{jr92Vdu3U&=OmD~JP1WszpoHzr9HmNZbt9zS{qyKURw+!_~xj6WYh8x>Avpg&Og`UMPi%XoK z5Aco;sF@G@LwA)Cj-oucmuwUSe(d40(0pFbN7eacmnST_GoRRAX?RU2Dt%NqKebS? zWZ)%Jpa__GR`1ilcZ4XGyboa7Bta`6?RBR1J+5X^4P|rvr>45qTD+`F_YNZ__+BF{ zsRC@@pmeUS5Zg1lI>5;Aa-l_l9t2n&?gpcS5_Vvzvt^^V`>HcFQYSwWusqkiK0a)n zFP&K2u--7t-5?pg`XXEzYI-BctWKy{m?=`sERyqxE0Sx)(J-?v6=xPQ4{tju zS?~?geS=8f1N^deBI8$t2R0nNHnlT0_16*KG)1e!R^`!lUTtIX!b^!^b*nq`1on^Q zq>mqVR^=*G$0|2ogh>~)mKjfpP{M+_^VWKD5-&baoH|_@?~r_j=fW{Vp#l%F!nK`k z#tGSBU~vvCNyM!_@M@0Ta9B}&m29%`uW8Y+s$8!%Dtf|k5G06>F@bGo8f>3V`s|v! zH_ZO5Ct*o`N{g9ehr5b?AzJQ|Fohk2#spforn}Ckw=vxj^iN)A0@ijn?#NtwD_j13HyOe3rcBs;$;brA0v&w@UCiS3K0)}E<=2z-!j(Pe zhk04o_ms|jV-5f2Dzc-e`~?7SO7+dYgT;PnqU>mUM0UZFOk)*ZB-dyh!e^Xz6_N5? z?s@~DTs$jV%po5~p-;Go-?JZJsRKY6$fM>?weFo>^zY9-l;J$AI{IPu{oqsHOG@kE zEoG_14~Hg7p4P2}L!XNzzZSFI7r5%QTd6=Ct`rL8W>kxqa9BdbpaB#Og0y|ceD~MG zqhDs5h19KVDfR+GTFC?9!|V?S>XqAf!uN=kys2LE5`9N{xxZeWNIkmyEibWRwQvVm zt{9T4`ruVHkXALN1N`AX2)(iHIOBAhI%BhEW;KNiu*14*2m^CTd~x z8xTOt5~8Is_3QEa0NRMFG$?C;upj$s3?`oofg%tYpyF`gHGrS&UW7)%QvvnoD~JM1 zB#pd)3sMoi-EVB$^<#-s=IO63b-ZS?n=wr5En_LYkI^lEC z&Rz+Jht4?F$vGKghMJTtQ5NQ+)9XdiKU@Q93uD}Zn(zN`3%NHJ;~w_-@P|8ofIHSB z^10?ukEmA{Vm)IPqJMhEeJqUiy87k*Pp`!9bFmkb{~Z3jNPzIf;Zj(&j&LMSr#SEQ zQ!z*0WbvXnpDg*OF#{6c5H?Qw8a$nEYy7lVl&Zk(%TRq2c{L~JjC1>Qn%Fk3&sKpC zj{M7avQx=&MYEOwn>kNY_Qc@3j@pWZTz<*9WEPq#((&KCzo{qtR1lE=IoHwXHv4#R z1MM}}m%ACJS_o>3}-7abnG{ivb?o+HKmbq8639mNe=mm=^3#x$CuE z5fYT^ta5wOG!nt4zuzVA9Jlkp;;0W!@+T7ldcxI?gGzq=82fr~Fcn5`dtdAPGVIMJ zcwsy^s4M3A72fVtcCdVE?9vU5a3=Oj#74To>t>crxjS!719%g7mt&U|_k$pug45#B z#L`^fN*|3J&L9~)9>8>5OaOaS3qtR02uB{1OnO(0SzO-o>mB^2g9Vh z?9c)LF>Xx-400tHA^U20ko{-VkCB=Hq7DcY8#?>DJy6M6eF)zG3Lwxa;h0Pv6(hJIhRi=$4})2JRtx@a4TUKJ5WW;I zKNSY7<1z>FWV2GH6+@Dtc0je>75Glmkpzj$j9>)B7-L&@DAdLJ6~eKufXjgH;aI?Z zSXTu^3I`V#oYT8eZ$;MTDwtZ6GbqDHABmP1s57l6N~NZ??Asd1%yvwPlUyasK~5t))?FrJ`@2OS+?AP%EDPlv3p9x7^S!r_;LiGR=J_ z&*XvIgm1%r&tiv{8Xy|c_!#YIIoKE40|udBG(>fTP>Mnd1G_$k?foB8DWFo!i-s~2 zJ;lvKX8AzxsgO-176PR}(_OUKYv|o*DK|3^o(5zYO(Tc-cm+%bOG!A`368yKPF6FYQ+|d2qW{(a5hh z@tf35c^HA?n);G&QObaECY%{ z5P?zI{uv0GA>aUaH1WX|F;K9bb6<^&&bPCS2bl+xbe{kY>@>cB26rAZjTR11f@~YP_gpt$K zNAkl@8Q=|VK-U)R_KgO296a(j2k&c zpX08k2o2JR6C}dClkDG3hZnuommhAHl>WHS+_)BIY_Mhd?5|7xKhzzO-k&bghWER6 zE7W-P6`t}C5b10{c^OPJ|L*A&-s-OpSx+Q(txwFUX9pNSIelWbDgcvU1S<&h^D7%H zF~=WgaND(N1XS7A8k(@B`x7NP9Aju)Q-y?{(kkMF{VF>HYI>&cE&?NiK$z6IkChA| znE3^@pk}S*k5B8GY42Vc%stZTs1^<7G*oo&k&`#%gcj)pcl}z`{lu9K{2_RA63>|H zkpdu~fUfr}D*Uvk!!Hd7X$BZhf(l**^bw{fqc2Pbysv1`KDIaG>jyhIKrgYv-=Uy5 z(4X(xryTp>uT((Yu6yft&)X9{tceFV96{jPXl>QI!Q*Gx|Aplp72E7GXxeg`h9aa| zRTvega(a_@So?OfTgK>d;P#ejB>9{S`HEgOJM$B9Ozn%`6lQHX(){3gF0zfEh#MEx z{mC;BZ4jQ+PgdL%fmjQ3`y#o#=iKKIvktn0;2-`iA!`efb0ugFz(C zTYmb&GS;$b0GxC}qYI3l-n1TLaKXtbNqyq6T7Ts|qEoJ6{`=UOLCJ6Z z#jze%k#&;BA!|W#R$engmRqT_w!SGB;za(I}mCJcpYo z((0Jw6_lPxGzPq3v(}TmN20GK&H-e4@~7|&218PrI%|3U;adGg0r{L?lJ~m?IydV*G(N$4eCK*JU0@+2qRDmQZc}99QW!*S5VWF=@kyzox7xI)usJ(QOy$s#`RADdIYA@ewuP|w^xM;7mW3T+zUWLs; zRmee2(Lvq7LF1f*rl*5esKe#jrMwtbes3~c-s)o3U9%ujsq)uL{^D#f&eJIHKDD#rKia;F7k zWT84&0WJ&(Ym2({iJX+p?!A~9_=&lxk5hjc^vstWTAv&IiP?WH`|@?Cnqr9Q5Zu@( zGvq>6Y|=zf=9?-$=X4n-#B=tm^|@kkfbN|O8%Cg0?L?#u>+jKfUY<6MI>1n@C%Qr)vZExCZ8KFN-!tpRP-gbzeC-J(D`tm$ z{ajW_YooBnQ;JYlVVXm3y+T- z=AK99SG78|xV$YrdRqo_me~a8O+J=rN?t2_+x<-OftGs0+mgL^HKXrxD|osWGrJaZ zd#3dLpBBfjOFfHzzd-gln8}2kSW-XTf7=2QDcN{m zMF3uDR^H(Dyf)#rsOXLjt(>_}4%Mvs@(K36Fq1>9`fG(}l}l5u38s%~^ufY-{|Wrj#Ec)~m+ zSD1KIx%cZL)be5_8n>V3mTtRPvbVhc={@Q*j6HYdeZ_L_#^Ooc$_fMS<0aUs9Fk=R zVquTvK_*e5CAUV>BTtZ^eG1I3E=h#l!GZ~@(}c<$FlU@GK+q)FO3qFbgj}SFw45N! z4I?tZ)9rY+h8rtpmB|NK)o@#{nm&HQFbgS#0Cf!Wu)Pyw826u3d!ynOtKw&jRCJzN zXD>^*@k^SQ>I?~f>>Guveu( z;=h7-M?Sp>-?HMhk}uEuj%rlYYytAeiQZcxJ&-*`K z(ppfrtSvj|FCA&3)==oQ3d0SrR=UWVF#zgDwG+1DT1K6=m9^z)|1&Z3;XMA3>NRCL z2YbplxA$$bF%0&A?B7s$nJ4R7?m2^xpC%CE;r?s5snv4A+614Z!K?Mrwe{P}YZn>< z^zAQEy+6hIZ+J4+rfN+S+t$kPm)TT4H!+-X8+(&`V*cs8DLMBuEQ6fJ<5G{BcqPVBn=z=m-z&h2fX3^h==mt+sz#?NiK!KC%I72$Sx{ zL^+G5{NS7Kn4d9*^i4H44F#8^1W%l3HBKspk*Hz4pN+2l2h}K(zPwwac87@~*AOX} zP1w#CyHhEXjZAO3#?nNjBWiJ>srI4eal16(?WRj#A3cD*F$Ly}c6N3fo+yRyrcE$l zFM-Iek>eq&=cQ};cDEb$uIh#*zHB`75BvE#b9`4eb9+81W{**3XV^59)9l-;0;Iq7U-zR0}g6%!AN)%2VEVnDqolG%^>OwO0h16vyXDAPiN; zTD!VKVNP#_*0aRoOMEUwNIBVukOHod0@~0eGod6*%0hFQ42f2n+J*_~my!f%Z$J~U z+XzK95#SYy3|O=Zsz(6`rPb2V-}4uM~+2cbF zxf~U#b(YxF(!6LIexgXCrX1XZP58ntJ9B`VTFWUZURN$gWEem9S@7ZokVa&;5$3?g z7@(bAlUu)h<7Y1IFn1${bQBZ+>0xFJ9`=y@q~68xG{x`YkFuoLfV<50X5=+DyhsTC z9lN5-Ws#qWhp3aCC}25`bhk0*vO;dtQ7$ZwgpTuJ*e}xhRd_}*H6u3uB#sFCwfQ)X zw0GDN7@f5gUGU*&GB5esI;>0Ylf_$rO$BUht{s1Ei*Xtxgh(O%NoDQM;$rPUzVZRt zcBKY&O?4KYeUf^U+99(%`>;9y(*3IQG7Rl&_QC`q@a1k9EOkkkLt-?i=`1WU=_#4Q zBDQZW@;$4UmyG)2R?9?q_z?Ce_HaU`CYREF)I#?bUIvXuPlhMvb{{*S2#?GXh%O0D zynto>@tsy_h%pQ*KKaCqJj!vr~r30d_e@`Bg`u;Vh3@ zlfc$0BtkMk`Bz$;SW;~M^Kv3Vh5?7hrm#R^2p2q+83gB9MYWTtAkcS~Tm->elmG#v z@Nj;$9D)Hu9@>Kzk!qX=uuH+;?s@l-IhnkWv=K?{4YaWj0)M%h0c6M0?>K6gNsxzD z1x)Wrtg(X}<9sIXM9aTvfv^K;QL6cyPJbOnTOvXf0Es8U$*i=rIV0?@ZaQ=c~Ma;Bh2;Jt! z9McH6>W^)jAQ(dy^eXo~{6hKjj{#k*0t}F!pXYF$vF(#w&$}{Qe&ycW1KY62Y;^*` zZGBSi*k74-xZt}(rU(`=&F&_B?I!BYKQ{W^oB;2RXmPGVW<9HA8g%C}8zrKx$NMdY60>^shim%y!S(hqC~^#V+g2 z^Glj0xcS)jStq;W7fiRHeql#rvuR9==xUT*fXovWU%twZaA<^2k~a|Y6W-ij~E&Xu&mluEXT?7o3sn36khrkKCS548s^_u z8)?2K7sUKonAif1BnDSNAAdK54noWmgWG=pV9~{0f*}}z$-gRLyHAY2CUi9-O?EKm z0SF>XRdMkAglmUf7#_aH@_udP!nJ9-Kuj3~%)D^_`dKV~O1YiLF=nS^t^BOIo|#kW z8ua!D4CZvYD+nFOrEc|{%lY9CtPS|(!inV(kI~ab`uz00y!G4V;YT<9!V{q1D$}N% z5as+US4H3Bl62`t zsI?1G`EH9@4s?Y%-MS68oxkHM=js5}@K;mDT$jGgpdXQ|Cc{Ww!epgPckeBOa`{pL zEmbAD)DzGHv>VpvI}c3 zm?v+?e$}*c9t)tBu~18rN@!(FSDHN8Qbbo4S6R9ze8$D4L}7mFrJ5-+ zMIDdNZAEZ)&6jwZ$3yL&pV!q>TQj^Rt!~YUKa3pbxw10Bse>TRqBZ{`V%q>OCW+i9E*3X#=dHilOJ^&)uTly5GiTVY-ERed@8F zuyh3rFfq*~cyeW^1$x`)+VyBC2MouuQwp#rH_{?C(PO1~;J8CE*B*2@bVDyPpSOQ) z%k_muR4?2&%mGAN&X>-Zra=lcDbVhp+6AAsRh0GG#37im{J;B{c9j7l8@+q)(gE1p zE>lcgUjWp7NDKYX3+2ZN#t{J-yzH;1#p0P#u-aDml=Mw?d912N`tw0mCHdb2=RS{@ zE?6V9*Rv)Vbku##k~Y#tOVM5FZ9o{>3(yxG=iO_Jj=Jujvb_8nARAAyqy#D7?NMl4 z1sf+BP;jicdDc9QdPUD7Cyw8fyGb$FqbCUK^{eQ|QlkwBIbpT|#_3K;O&f|dfxm3% zJvKQ{V3R08bM79TpqRk6X7iORp}C`)igBumLU^^ET#enFAnP z7?Iv^FH$%dWbWJ~M(I8fTZyTsPny}{SVq-;YIkH+ml#i5Eva*4QkY*dc+OZtz%n3Y zKb3U9fBzLgHS&mj{ESHggV5`?^?xUsb{}1Y=0oVtT>qECgm#?pQ6_W9^rk?jX^evC zi>2`>1`rhhiMn8+gPo_4-RQ5-$;Yfb_Unf`kzb6Jf6staAU$%QLFcGgSkp2|KuLn( zl$VCbrk&M>a|2189_Ge_{ikyyfV{nZk?C5=*O^OCOO?fCUW_ zpq^7KAJ6>oHy&*ii2QcW3mTJl{LSkx2w2*z0H~l3%tq^=p`%_LmW2MOBfQ2v$lz7E z8CuB>R9ii{n5#NIwK$LTGvV5PsihCltN7gMS#A?kMkX02oYq6Ye81Zx7N&WcDL~j# zT?E#60EK=b7!4CZV~1k!?}yo-RB`-keywbQPEqenPw!qt@9c_@2hi3fWP_%`&k4x; z4TfnOHFsMIvERbamk5Jb-C$y#APmZU$xQ{&IY(fi_Ce4l2!%nxwjrV1c@`xT*(2Mr zLWTwd0h?|yBbv{aD59xiNVZ{BZd_QG+eEr%LZEa=Tnx%;?(+x_5@Q(>Q!5&&u90H_ z?F4>LbL}<;oh+!L z08ufBLEUs!LipqDxElS+g$+6}Qw*w`%yANmh6-rYR=G&%W8fi-0LGJ4d}_6npcad? z`Tz-4f7~FOA6h`dne20~zz3@>!C_j*VpM7|B%#mZqx##?oaCof#DLMQrF$eLz0OO0 zuCbb4vq-Pe)+Nb$)taLQl~^#!ojCKo+A}dZz!8zx=aSRYN#F>>T@1j@ajv680URKF zVCfq5$vIuJn7C?0qdDi!6$%;&;rraCPz`mGE{w$j1Prg&m`hQ8{dSf^fFy3X+{x#x z*SmVBiA$b6gYNs+>oNXLG|a`ULBF0s=xm?!zfyCVhWZTxPz=~OHe7u9;>MVyr;^lR ze7#pblYbTz)dZ4_Y7mR2oxm?Z=sDy<3glwxXNw8{P`Q_3_TIj2pBE6)W(N(I{zSW!=cdp<;SHdB2f2*YjGIG;{+b0;AD~g+#H981_D)kO5bi3{fB;Wy&Mj zG9b-uBhfH`*fS_vM{xGs$VdsG{Jl)JUqQB{fi^&ycQ&%7$}`2FbULY+0my7P;QG6O zt?s7fx{d4m0XadJZ{%}x+x8*IToi%Lys$J1N;Y3D@TP9ymP}xt;bwt-V4>S)p-*5@ z&}LC&;H|5hw^9O6inBJ0^8-stH%n>)OYdx!b_SO9Y?k#0mXB|izYMH+w^^|oSh=-X zxgS{dd$S50L}l5cqJpXgwyMQ~YUH+R)Pibtw`z@o>MXbF?1Spvw(5O?8iKYOdSr#; zwyx}Ycw7xqz0@dLIfPp&W-q7ZRt_>d0@Ziqnu{1v-FHZCG-g7O(_oPK^j7nJz+ImBer=q_EV$0Sb7x{PsBOFvvIfvVw0pZA_e#^+QOzB9*co&B9_C{Ca%Jxn z-MU95GH@Bk_&D4vZ=Phh=|l;39&CP6x^?|mon4>@bt%}DJa04zLUOUidyRG~4L(Jg zJllQ$jB)!!LUenI+bAqVl;s!~Cl|t}gLdWLc5+mRhlgBS1#$4%Gb0tY{aT##w_~V; z!8=oeT=EulX=g}F;c&AXmB2PngW0}=Xsn9WGfd7aOub$KJqdQ2_~OLXI`dk7xN|AP z6&uYQG!`@j)d*df=8TOADOON?rQ6EO$lYYV^ZM$_LMzba)3|VSz1Kff=YpcM$4>H{ zv!(YHDOg1(vf|sPY}|ICA_kii>_U+pEUX^e5@WgkWZDNKnky>wWmbTDQQ>OP+( zDxT!?6yE{Ne2)eAV#w32APSq(%I~nda2k|A5OKs2*#P$0J|w;#5|Uy*(Z@hZfgM;f zMG-s%nSS`MeRD#Kri4ptGNK%@njyv!@K7fVL1ea%6Ha^Tqx?hnt`#oa!748hZ z2^qcPY8`%uS#Vz7+!F~xF>z^_k*v08Wf!d!Phv3ae`xu(Af*#|rTYIii3hbD><}Q1VeA|o;^`H;o|E`w&+#h5t22PCdOo@2d zmBEvDl5CuK?5K(ppYnbWl%=fQb@1!W3FG5*C~^Uhg?%%UPytlJiN7$cv1unvtN_fa zqo|kybx=9KsuKSMU+t&(t2Eptg-%J?v(U!7w6*ho4-!&VWj?JcAm34coVBzRaUjqE zzTDy35-}|G?WbYK*&J1&XC3tuyGDbm2=&{TDB|}eM)N_;qpU9&S~_p&g}qWM8S$Hf zIRF-8s`H?l(b1W=7?UVt0lGjETCMh{IBKqiiJAbcf>Ls)vl-g=!8c@Z)0l$Z8g^}E z$m2mpObw$TMot+xtg{ya)577czxA;l2KC84XFU|amdt?IDABbAdv>p;vhIaf$andg zk%no^t`Rou{m22=cU5MDM=@rJuCYs{VlXF}q5+1qd_gQtt zq0H9lI>u2`)(7TOUWWYee9=K>ZL0crAFMOnXkGqam%8$6W|g~XDpyRjPqXT9LX9u7 zU$6Wwf9DE+MbznM6icND)0P7j2tXJ3H_hynAR8WPkbS6rOB1^n?NT;5GVSd7_50uuHRef(^=Xak z0-FHeF!y^#Ah}NZtF84ipDYIk@GzGRU}U!~WgyX*sM36OUMChL!df5=K0$+EW=|M! z5`qBOw!%NogmX>F(Ll^Tn4vGzxbh zJp7r!0gZgD6{7yLW+FD}!)a8mHn`v@Qyg*n3K z>}PQ~x6+`L(;=g@Ota6m*B{-?@Ci?SbnT&N=z><*7cFPMUqw|%pDqlNoR89Kq zuC@X)+ z$KD)!g+q2S%BGxy!?AMgtwSm@k}axZCzK+)IwFbcL#Z_V&iA+eg!_Kn_xo|**Y$cm zpWwNH+PxEZ&g(?_b*sRi26ATHsy?dMl^5GD72>(e-2q%Zh-k2>Dk*Z=pCJ2p;KV~R zw*-4bY@p(YroJ4+1e)J)qh$%17&Hb-z^FQR;HubxB%gN>R@{BgjMR=nePO-h&e{KP zIC_tTqbmgtVgXDmym7%HaJFx^G6)jPRlsnEZ7vvEsb^>&N@9pj)^4e<}QIfsBK z1GjUpMBA>W^&8Bx;ZAHilt+&*oqUiCB7XX<|M@cXRGoog-qlgJUS~ty&2t}^S^?n z>wT07jBx=F2#<)x9Ag;7#_NeDyd{`qBSw+SUCexx6d0-~K*7-A%=#lyPXGs+bmaEv z9Rd^WO^TIdnS)aEhEX|;6RW#N(FRT$@Ij?C7>*Vfvv@rf2>}6PBsegWt7Qaal6X&x ztuGe_EmI{!#n4pRO?Hs_STBrLrew>U_n9BGl{JYbZGvp8+aH5cZWu9pO{KE zkzeV@cl{&H4yKO+Bx0K+cHiv-WXd@1)N_sHb#SD@{f{Ho4JCTW-2Sg3Dd-WTha^ce z``=sSC?wa!&?y+GNluEwBRb3^-$rcGq#U7Wf0_i8>Q7_RH^pzHXQF{S zBs~x|E1iPIWrK8T34-Gs~PydWx{DWN($c~!Nvr+;N5=(Fh5>Z_pxH&}*Lj0m{{jU#8?h7T=svki1zBt>RbFE7(aU16D8;N;eaE z#vR)*0M*}d1l{I{b6#e)7g&`f&6sTr%yx4oKNCk=j`P(KdAV=clrVD`e@fVsC$QEfcARj z`#KLH0t}QuA2q^6)5Wv-7rw3-a^{v5XbUW& z>6z)*aHMo&_^uIAJE>J@^nOoSk=3mR32_sYJ3$=$+5Pt?i0;N2Cfx`i5Ns8k8mx@O z0Al^q&NZRm>*-JJ25l=rftQKa1rTGv@r&zWF!vFh9!Up9*$3TUOnIpZV)gyHkBqNH zGSYSAK*nNJMcOL11qO?F)qmbJ_ieY8WET*=ekgQh%(f zKA<=koaN!d?ST=4By?1yNIi`Kbnw3i0ZA>nH2ATr;TzEDtB=oL2lFHA<(UDmk1BJ9 zMgo}U92qgUbPFJyjt{=CT$K2hOWCzRYM~}Rrz5)spBmj%yQPoGd9RWIy>N#5s04R0 zsu;(!_Euey`Fwi@JdXS#1yZYvMtbd4WrITmW=b!nO3SAMBLLv{7b_Q_w<$JH=`%?* z{hz#i04CJAC7U|hCX9`Y~` zEw*OaSa$z@-Kq|K0q96TSJUVhjcO_Ul3x~#1Gc2qs1(azeG_*-9DlV*P*|(u z86gkL83I;FtH5rdG6kl~Ho%K}A0^0VyCUz49S*GC`ia$6YPj^?!PVq3D={sP+m@A- z2GU|sypT8;SK>)q3P7CU$Y{SC{?Z5?(n;RhGfaNKu=fCyI>>p(Ox&+c$hbO(i>eN-wtqMBQ^TP@=NopW7mD(gX|1$W)4l#CK} zJ9iWy>Hbrm&wIBdk^YW4<$01W>CFdJ&PsfJozFcC0sppa4RLtkhIn8CC-FYb*PUM+U1Tf5-Af0g=;=t4nU19D$JPe4(=ww^ zi4Yn95CY5eO{AUxJMCU3!ty2q@5*1l#nU+7-UNgVdy|_tlNHrgbx%k=8PvCkY}2EP zKdO)^ox0?;y8r&p>$_)WZ?-dcWmN04lsV3-h)W(L@9=#+EyrsS`OoG(I&?I$ zKIR3>ORmha^=Mct%m;@9Ae3UVldO7&{SWrxBpNI<2yY|ZOJ8t6Kw%XaI zC2Cn`x3JATg-3UpPd&y2?QIHBa6l?@x?|J`bt-BDDYvL;yB*ynt2oB~)lWSe;Ydy} z=N)&>rwku6dLSGM_{@{YK}jfR#9!p|?lie9Lb4PSi_XUDIk?^_YPdEg zndeNDjJ-J}uD%Zpa7ck1;{yDZvy1p%e$aD2dKYcwNYU1^*yK84F?nMD;Iz5?4BJWu z;Ep9~uZ6x#%sp9v0$)Z=2$IzMej3h6gl-(J$jCqbVG`Bxoirw%#2J=s!Z>9FKxYTC zth#}Ss87E_{(vEv-_N7}U3h)Ut)>)?n>sE zf$G1l0t9`X(=q;6Wwl#QWZ_i#=V*;5zgoIqcLIt9dxB!rMA~H6&YEgM=kfh_n1f&9 z^Pj)Bv7Oys`!MJLr2c7_O~p2*Ca)tJk|)hALeJ5^e>pxyq?-rqx?KO7p5l9?=8=k( zL!fu}l3$V7&q^fl3!1NU0H-kzzD!(yECM5LU->T?ynIVQ`7N6MUduTz3Cb8dwB3+s zU;`LqK{k+z9OMX&Wf8KtKjq42^xfnGhzo~~Bb+YUDsBXfi)NZ-I-m;s;1l!#R}@@w z1aT(@kMD2c_8k4)4mf1<-2l@jDg1(!zi zk<)qh_Ic)ysqhtLM0Kk$?77!M2RyPv)Gv!$AH(y>Qgn$b7Q2tF!f@3;pD4NqtDQD9 zn1OY)ai3M;@$hHAEN=AlIS*`yck&)K*a{aACHnh-BKMq2#eq99IPHI9xYFToMUx#Q zj-DO=vmd<%oQ(6g?cD(3319#KJvRnwaPnNIWMx$@l=uVT8{_Ja;U$v7wi%H43z*OJ zFm(a~48-ugg+sAmkzsjCXM`3*&gm5V0$a+ZP1GrDcpOy*O{{e%@^*|Ui-0bm(j>+5 zt463Ad=f1G(8dCUXCn>rDo_P!Yfudu-y0^K$3WId%sxdcwgo9pJ9Y(`_rd`s#Icdm z$``%$A~Jk)OA+7@BTA+*unh!^$`&X43lZ~TNvq2eV;PcjbWoA}$$dxQ60iXWD`_{V z!jNhn7N@xHeuW#IRLMA5dY&urvef+xV6AyI7@*GCa9aEAY4SbkI44pPH;^_jm+hp! zXQp9)TGHu1O%OvHhSl-47yeNsQ`Dt)cD^Elvr>*-SGMWov&}Qj5lZp7Y$IP}9(PVH zT-L63q91mtXos9u#+?aulK8@H4CjgKEmpVvs#9vF^}hIzJMBK}A@0IgtQD!@u)tvc zi-EqhK^C{9hmoOnnxS->hTEQoJQM1=fdHEW;LB=D#oDqGy%BWj_!9GP#}|SB!{&W> zV7P_jP-aru-|G>bEwXvqJ;Cq{=P`*bW_gRP<}hZ#rt=!R(PKjn979HW%%ZScy1ztv zVw+Vt)Ve1I+rR_AWoF4;Yzv}aY*)8Cjs)-GEdHJ{`VwRBV98-Yvajc{@oKQT>pWT! zV-Y%H&E{fLP!iH;<#2Do-j9G!jCHp z4I>@8JcQk|<)!CcUau|}uf9^R%9j{-9J`c>XK0Jp^&S-Tm;su0@m}ijd{pG!!wWtn zax%qwuV4E7$HcL^`2HyMmGwt{CJ2j3`MmG(`5pU4Y)_ZN)sNp*k*C;C^BYom3`pDb zJGtn8n(w@t>v=B;e{Fw%O}?Bu0B2Yh@QIhh`pjq(ku{UigI^5v!Uz8QA8 z=cSFVTNAGDF{(WHl%|*Ij|;WDv4(N68j2_i;p*zRzS?(oFEm)Q5}qck_WwjT+){K?NGFZaa&|l4%%DyY< zyNQT|7#03Y92L2(PFF0-;XE&eDq_2@W! z*-(cDLEU68anD}sI>kiz=7{SX(mDSW*sjDtY?wW6&FsGs;8QeIlBz_V05Fn}NBWW1 zwu}gRn~lKbG$%-uxdT^o@iHAVR?X5Oe_r&9n z%jOlP;To{d43=?K`_?Hz4YB-Md&fO`o=)bq#y^mlB}u0rTW#3EdVkG7*Eh# z5k{yEu(2ZT4Cj&!Kj^J86tjiv8Y!%*!-mkl>PoZJ|K&QvCvkl*^ZH7_sck{w3*Tzn zww27kCw&VNk08~mGl1n6Rx?k+1k9Pu%K9laNd)%#M$vUyFl{f0hLE_SA!Gu?FpH#@ z9$!X?Nri*}cpBZtH33-9gwhC|Mjo?6D<{v-r44A7TmQUNTh*NZv-wr*oo1n=+p8^= zI@ZPsEq(WIM7!6t3{=}{-g)lXR(rqIP@uN3GV7gA>-B+{;i{IN$|`fWmi*S{M?$rm zNv#J}ZNICkSajRJR#kJawY^EIh(6XzNj?Ol0noV{Y;x6|u#2bA!>kl6EA|>AingnW zg&Gj+aut#|f0&Em;J0vS1qP>%!cx;TyA~b%kvZU^9i(*iM(XxSM*t?m7FNHzZ^v}$ z{_dLJ!^#YHKIiSiFobU>0duUd5-htS19TLmBSY*YGYTDrtdfNLVt->Zs=IB40sNYI z&CMQP-Cji6fYR>)SU#680+e>37k7gVFnx3qfq~Kl%BngVsuAu#JBV6rk@lUXG^);wbWtD zoQLUE>(@+3uGh%^nYeMBI2M~ik58%O92za|Nmt=uxig#iPx%!5ts_$0dg>=O<1=Uh zD`7BP6totkMF-yQAwO$NcbuD!v#eVceU{kwn-!*TXIJI6jWIPb>|{C6$QMd*8sGG#!KSi zjk5-NlTN2v%hR$1`^z_Ks|a z6)C9wGcVr%@{L{%*`xBp-x05$S%v+z=_#ehlogNB>m<>M->WC}Yuh)3mivA#1d5h7 zyREi(FZ>l+Dz06+dtAPn>%F4clYVeo`)D(1W^^RA<@ui}TH+Jg5u-Cg=c9q~R}jLf zg}lL@Z%Nn(#$q%;cugv>-kGL2tr;5Fc ztz8JLd;jd!dal8e=+Rbn?N0JPV)d03-J$B}zdMCKJ2%93i+`>=T_L6~kA<$R-WK!F zb#E4{yXAPxv%*87W5nHcTtEJfTmL%`842;q44;OKH!zx`vJn=VA-?>l$n3A>e^%mO zSS1&vo(vxEhA8sP=t$mL86Fv-F9lieV z8>e2DxyQJz*kR<=A6Gn}S4>(ZTh z$?e+_N1_0h5V!NONI(Gu_1UkijY{(e?#M=e(Ld-yU;(6voG}p~!8yQDs?;n%03yjM zf;%7*q1^JUCRiL2$bkT@7=m$wWj0SaP+^W?2OPy=@Hs6LVqP%--Wh9FBaYQ!NN;Bb zikqI*TjU>qQ4Dk3!PT4AtJ(_1guT3>dgJ^0Zpob&E%pNue?!0Bac}jmt#e5(`{>!~ z(=`GUj%!~SupGR4#p`>^TJNO~i>7xp+c$<~=T+b3mPh%Hkzle{X9PNZr?bBCoyr^d zy!zBu-pgfOK;`{(mXmA`<)9G+LQ6QJ88`wr=%m!nYb8I6oe`8c>WXMGM+1w1y4cPDbM|MvmAD);$w^GbO638sdFMJ83yb=5H=8D zEzLXf#vQ&ptuIIlQ%`kMW;99M!=;9Asz)%cgm`=lp6vY{Dh0P z%g$>()Clm9K$%MA>cT_Mms%KP-*gmo4GjqUHvq2=?`DZ118QTY=S?J$9Z1J~B;La0 zOk?HxrP+hT7ra2XHa=y!HngTr=t{Xmj+&S$8PKiK#MSPx2oxo=Gt^Jm5m|M1(t$B; zS-Zd9hbMp&jG*RNuzQq%DPDk1lI%m$M(l-3{Vo*x*m+b17YxXImiSEcOB9d3kPh;Z z6U+51Pt*SSvBUD(PvN`O(Xjzt9$$7_^KfSbTYHKzY%87kTe+3}+n$w@rJHxwJSvW- zp6o>oPUaj14Qzea#S4RZNZipO67REt(^37!J{MlAFK~kCm_kevYxf5{zx5Uiz+w(9 zvVoq+sWAiiL9ci%EPlUwU;4~kyBJ00qSSlL@q@R8{a{?afV?)ze~ zLSrc?)wb`hl`GrU3h&b^r+baQPe=4`8vXt;bRg#Q$b^pfCiNXI~{ktX@!)jjP zQG;6tMP(qsHsa5rS{1R1d?H9?dlT}E${ed1Cr_H;V-K6JGtVjy6L-XlKRW@(#*rx8 zdm-<-0b*ho2VGo9PZ?psGL+Xf1AY=eXfl{vhxq`hZ`avt_X^Xi2h`Cz7LHN-0N-85 z?rcC2i8K6$MiCJRA%@|Cuj#FeeFbT2La&?yT8~RxR9<{}^N;$ip|gjQ8gDHOTI$tm zsccs;dpiT&c-PDNI?(Kok#Ij>mNe|&MC28=jU1keezu@@=iC} z;4F-IdZtsa&5N_1%qrngZ(`?dVoIR6RG+%ALxj*c777|JJ;VUj6%pJVzx_YS3=&=h z1)1QG#&Te`3A_pr@KGvKgoo#*h3QHE1GyE@)E_gxVjh5TjIeO_e=WoR|5IibG%*s> z5kt)*0ds&QKXN2#Ky3=x)*4rk`51EUP(on*NM23=L$y5j)*O9EWGbW)|AX|r#K%wF zvIGW>mTzxAS15@_Q?C1oK-*vgk3#my$)Ou8=KV(UuaL^6DnXDw9-9-NrYq?>+r4P_ zSwDlXRmTRJTC;alOpL`Tnd&y@|(xsGXWmsw|UxS9a?$ zwQ}&dBJ&*dX&I=7oKbOr5wsBnC>|3`YZTs5GEBy>$#f}4_&z?vqNIV#(#VXX)1iO^ zdkX=>8Ns?Ky6h$p-HPlmIY(ANU;}wyWWn|iWBTgn;u_U%@qruV@PN z)f0*C1KyPO64<9ru)^GnYf}gpWe~e_sM4h-5R_Ysg=+zqgR0<@ZE{h%kUy|EFVcWI zxBN-9O@p}J9w*mM{sbyy_BIK))UCIVd2zfL^C-YTZttRwaPnGkT;E_SuWN_S<5yqe z_}r_=C*Lfdv^nrm8X`U@KTdLyT>kIj#lf&|x2|kl@cnz0|KYdTyK%frZ@|JwbfjHJ z8ox~`YF*slxS1CzP-DdEbu=RIbe}Y}XT*_QK{|oDM=`f~`vP7uDs6W!$8F|qJr2j2 zf~K=%UZU`rm@}*E_pZgyoCkBqJ=A}F`f9q(mV~h2183dNqVk!oC!*rw@HyjL{YPMp^M*I6++6QF?iL&m>|CQi+4pJ9ucjkwlT^FGf{YyRicgr{9~ zKW5$={Qmiji0Y;xYoCJ+g_jV8SwJ2XUqTW3jc0!T<9)&sQzf9D*mZ|D&*W?Wt+$_3yuR%l-OAF)&dD#W#EW!*vtNs8UHRlxl;4C>_*qN@I!6PC-xswT{Y7><+|kL2tU;P6?*t_ z=W{iD+!f)_4;})HHy~{69ZC0H&pua#BZhs=5whP@etTCuXz! zu+Q{w$+xTV)xT>h60Y~{dPOcioc#CgpeH#yJqnJS^S>i=V2g&6Vd06)AC8|Q+^cS>MY~=$T-7D$~O?fx2ckb3(m0Uw|Uo{usv?CAj3Jo zAL*mT(T&E~E2Dh+QQ!9?H?immS@hn1;_*X+xr@5C+n68s&8}EFDSfF_|dr1X;9CM_vw< zy?u@i7R71~VuS6o9@MkLqEHx>QW(C}t+LeA5HoDyy)nl^r*j;4;1KwqY$_OFx`OpK zjeT$q1;ep)t8?=_=a@mJFFjUTsc`=#K)tk?@0n3RlD?KyS^>|Nnma5&Hrs9q*lfFB z`%lgn@TmN=Q;|rnXiQAnP^UH}Qdyd-ZhA!S#(DUDsVH2jN{?}UTOrN<({Gc;+1-(9 zIF~8d!3oA7efl|rff_+-CO}B}&B(ll#uzZjzoOt@aGb|MoZJ}X5UrNPC_I+ol*uki ze;czk5CiRifk}uagL*YU0B^h>vm$53i&MN42QF3 z{?E9p?`}jxY(h1z>F3zwpErEt*tiS5Y0WAFle(<1P;pb!#!<&u#=_}|(=D+8eygg> z3!S&lGdZOh`2o-U`n0u}k{C!doR0;d51=3$)F;{rueCXz31Vhhim)5CPeO_I%2~uD zfw%j}E@hUDK1#U``ehc^>OIyomOz&>IshLP*}3+;oUm$>bfeu#!QDhc z=B~U^(dMOmu4=+=x=XQyxPMjqlE$%u&j)kuofqxe0$S@m=|>|r?jd)7^eR$AD?GIP zMX{WF${g4WwSvkVV3jPAGCEtQi8B!{vq7~1xY8$6u+KqhRYEV&l(7z2={{1Q0q45c zY-fr|ptHl45J^c;&wWZgn!`-~I&2b2&;U+Z0y|WR13KKjy2l2@W$e|R^duWXXgMrp zhXI^e2cBnmAO?$3s7gHECAQx{_eHm`$+80dVZA)}m@f<)=Aic(w(oLsn@klPE{AT% z1Isw;q!#2GPvHJOwwzk}P63_toAvvhgb3E^$Z?;6_`B{}=knimym@<<*VW!%!2=`Q z7%5qu#2eoJzERq-1NS5YxmL+;UGd{gl?F7{BIrIBo0d^n$M}ewTUY_BpnYqwZ;Nsk zr)4Lgob^u`9b8ev-<-9l%zyc)A1mG|lGsbvMvav6Bq+y@%^|J{P(BG_aKGi{AW&F2 zOAA#E!ZbZSMjqhccDk|H10*b%Ro;lbw7=)m?}rCo?S5<}w^+)ulWE`sR$T?m2)YzC zlgo1sm{vv~o1@ul2ql;q8boE7_goHtxcr5m*!RCk7?soybNwQBa$~2nOV&#Jw1;+M zuenzZ)=m%f?p3-;+@A*z>V%J8?Yet0=YF1cb-U$Yvvo&xvLrOqKIi8szP!VH==xcq zs_x1GdTz(Q=iuJX-3d026*K?G&79xqP_k#|@kA$B<$=Op=Bbkyi9OEM;Rj_6g_3(n zVJ)5nH0y6!bOf5ylgK)=A9HputI7nkfV*>a@)3l9`Wr=o%d(YeUga5n1Z6z(V6vgK zcp)8+q5JS7FW$3)(Gm09U*ET!aNt3GWJN0u!)VBK<>_ucWV;^v-drpM*T=_?K`Bo6 z=uIE@g|}r`%gNeUGs&%-VC3nVJXyU_yg&(0@~F_>*!?Uwr>6YpMzhX}HYLpi;O2V( z*{*CLE^bK@wiRcelHQPZR~BB;NwBBimi#@5_#0^hRH&T9zP9B22UK8pPVZG?tZ&1DadP*0kQLae%hBA4dGra<7pcuI`oW^(4B`y0u#Y{SgnOGqFr7qhPt}s3w>tocnw35+yu4Xh%RQr|QO$nJ! z77ieLcc{4S>@{p>q)ozA&my_sk$Y$^2)$|L1KE$#(D(BB32~H4HmgBy0|ZaRfSxp9 z(Q<7s+IM;G*aEGyMCFwEwG2cJzz*x52N>+;qL{gT8kp2_|H;Fhat^vOYYNK^$nd%y z2bTn4ShlcjO$hU9wf`q!1V%>{Pp86Ytb{Ae{twbv8t;>@%tp2?U6@_Y(_b1Ny#GUS z0+q30hmPwbH^^XnxBL6CzDLFL+)iM8MZ7KuTW4;?y0hx*W1`s2BpUV)49*jMK^ z_3hXUQ~;_nOEHj!xOTV~@KGos+WGTY*&4nj&)QDR@^p_2+He4tJlNWpr+&|=9U5ryov$b)Dh>^iT zJAAR^5TOn9^y|a!59F(cEtLZ%zuMWP?2vXhp&s{3o)YHS3cZ&%jv*Vh5)bDDiSoVd>Hwh`<&6R? z2TG}1zg~l5$)O={;9o@uvQ1&j zldIL@<=NXi*tmAf4Gl4`(bHoO-f&f4BiRnc{2i|t7;V)Ze|^n;Ufn}avGVRpW3Q#s zMDFtC(38dXm;o-Ih%dFJy;-TiZHCHKRxMg_Yz_UQt>Z$m6< zB!w~E9jMI?6p1nMvSlSqq{cuSxU@r#MZ$!hf8_l6ajyO0F+~x>XfGwcN3YvV~#6dL~%kgs=o&-TAB z_u7BMSql2CpEiCNsLVc8Y)Z@6vvHhdn=I@R1ngc5-%P66dZ#17MA_H3Hzzh`hn;Ay` zB2%D&W8g?x&dp5e$ObXKJnz7&3IBGC#Bsu`L;!bu!z_oGmpH73^Q!}k0to}qdce#0K^I>3h@1FNi@?Wcx;K&kO{Gn<9 z^@rQRf)Z4Oo6zmv`OKhz1z6Dy^SC=z`=dxb)XDp{wfBc4vs%w@VT*0vk1|EQzK5?S zfBN#$%S&^4eNet#SLBcK1KEdzSN)3h2BO=$O1cWSmRuB0&p4#_{%l-4+3wqxia6o( zC*jMx+3UAger$&x4o3b5KczRSp8Dz2o5{1>gS)ij2Vaj7$~X{0ssq>hOAUSI+sGb+ zJ$Y-zyiSd)v14TEYT_-8?}}R;#++xNDkhDux$l{9+ncDE^121wGv)WqP%#q>ZoFqE z966?9E*ige&-_FxRMkQ}ORCdCvcN>uQo1~#(^B?&hN_kP?Z!^4lXu5dt(E$=I;~GX zf~wi5OiFdxs68`Lv(;D%=(5#(lc8p({l0Mrs%x)Bs0YqO(KEEKHx%v9(D*hH4Dt7}?>hS6A7Dn6i ziEhgar)PopJ=+Hqi=v+loMI{{bV5*?Is&(P&}LN-kTMpzAr0(92x-jfF%47%U{Q^T zoW!=|Cm`MMj@ajH!Ob9w2>_^y%FSa#CMq?d8$NR%JH6Vcq*&=`zk$B;@slL}SO$v&mK`u>%V1bMl<&2=N7hm3r&D$e%F%J)(egH$! zj}3{Zd{Xrr9yI5yMfPmN>ESKzk6uO64>A=LhdIm*65kyQl{b)KIfj7Xi*M%|vpH>v z7kQ!pdZC;nZWQ!<;A-wc>XQLP&dd2bA~K=PuaXYkighlw-d)_S`rDpro|`iCncwOk zqf-yeH%Dv=eQi<~3QcxS@`&`!95=*e;go+jo3%<&5|L=~h$`c2w zpCKM}^pS?R{_}3A^1(59c|XdiwUO$1a_bE#!hL+`)3x}xd*Y~ZOfg3=z6?}OdH1w=c(fO^g zFQ3^@Th++c>8+$cPD3hRZj$p$&MUZB;&gm4zi&0tgQbETt+hZ7k%Mj(1C)178uK?`VC@mkYgMy%0`7^Vi+^w?q>*etJ*kZ1 zmgKni&TM^#y=Ck7E4iLK6O~`)0<}ypc+MWm@nJtI3PR|dQW{IbF*!0lHM}DuSfW0b zR)a7i1O1ynK=3qvSIJXLa?WK;S6wU8BA zE1%BdalN4Htqlk$FkZsz&oY@JK5bGaTyu8X(PQf8bezoPx=1}1a6novx1SnlU9nH+ zcujlACv!Ut-4<+iSAf$KOVl7=K@v{D8;y184rR+4wLrSLb`cqguorBIak&< zu-Go+A-mQm683%I)xS7;@HrOnkY6se9wv#LgE({(`ABtS9IlY87%-wzL`&eS(g!qk zWyENNG&xmFWboPQ)zQH+_sJZqIu`1?Yw)JhHxE4hw?ZBMXqyPe@ZEq$vT2vtHshTAEHrX&7W`5G1;oViu zv{i-DHQifZ+R*_{jxqL+ zZn)P2$;JT@O^z;)TAe$sCJAUh&IW~mn35LXe)VRZW3W|M_o}jXsi(%ea?iHH z-SFxj_U$jC~z_v=QOJ(NJl3kS=rYxG;I8JKLz~E&>PQK|`0FcwILp(-kL~Yc*c9+47ofMutUH2?#_N zvT~+m0{5>N2=onBz1Ik1&DT*nu5M4C{roc~H!;Lbs zMd_DhCK^amR(wYN7Q8Q>bj6I)cAt3oW8n#6=g`F4;>bLc>HAxcq<5bjMT0=JG$Ul% zqZp_nnh2MhKHWJzx?nH_1(<8V>;U1qn6wd-nW+-}As%2NrB24(f`u{jw1lbrweD)1 zdETwvGh~z94+d3`_StMlrDm57&&)#=$@@?y=5|p8S)4Zes#{~aW>!iE%!ww-C)BYp z#L{SYc#g2I1ME~cpG?o_v(Ewlm+qQCLR5gV35t_ximl;K_t#Y_9+Spr^nngC zPl(LKw_OrGD6v0bt$d>C7|cxs?bkf}yY=kf;j?4t9KbsVlAZ%=%t1`&pe}Q;z&UvA z9D+QDES+PyImg;F$2LC4{&J4v-5ly0o*z_!ZQ;PvG7|tWmZ84vPUe1P^hg<=&~y!* z2o4v>;Ouc2AdYtU=gX($eg2xQFsRxZ0-D?bjnmV^o5-)|S>AH_FSQVaD1`7QeEG1+ zjJ44M9r9#4gWLA`buArnX~%Ja3^0-Wibw`iV2g8PI~r8}9e#kJ#?L;wAooxV$9wDO zMYF&Q^6y-f1)0!4zoIp-9>`%ON0f_oVt<9MNa(iUmTgp(ks+kX(xpgP)29e>jm&Pl@-xN_y`ZJ>T z!GC#>xPAC}IwBii86XG5xmV(tiH-gYYc0hbv_r@~+=b|p)|3TiWSY1*f5TPj2Bg0$ z!F94__&@+93Y_n)#vlYBoUgY^NN3&!n|>$Nef{bE=drQuW5PtnphW|j+X8485cw;CUQjeisuEh=`x}eTn|l-X~!--{g7%M{cdW?g4;%5d?5G9h?kVZGN0?NAn=koT! zMfi+>D6)?n(P{Z*^*G!P4~?ae!}0L!olG$0Ijt0bpCFQ^rqy^Q&n61uu>62*tJQg- zKkITHVj<&|@vstY=*uW1N3u`salf2RKY7}lQmmD80hf29Kd8m90HR$exu*X~4NupY zbYH$6l~r9!>HDS>@QxkWVLm(O$O2@79MMF85-dj)lBR@6A5#o(QU;V>k(8Z-@yP0T z8P0PrgGwovW4%!H#w>{T(S{C{Udjy*6)`b$ULx?nPN`2RZ3>thg zN|O}A4h9g}`)9$xOVW`xID~oGjE3UDGw12KPDq!V1X4fY7BUMg=SxoTBK2p0(dU4Q zWuOjeDn|_9qGZqdR(AMiD`)1oAYBOa|86d)bg<~i5!tl~@V~21Br}zoGR${Cw&%nP z-L<;BD)a+0HZS`x+Ofq@K?GW@#| zVCSA02xNj8zN8(%_~vpr9$MG-#-o&y9k^294Og@y*USa_e13dP|DdDb^SEHVcX+0sChm%y6OMJ-75!=_PFE0>+ ztVo*r$JI^|nQ?Feq zLHKnOfzQJ412S1^_>kTZVE+bEUyNcfVO1uBG_K2z%-onH1duyI0o-0aeM^eG9A}Un z4+m&x-r2}d{@$cGP~K;{BAdl1zH&sr$1K&h={1z#pRhfs_X24DtQml7!B7ee_NZ_G zl%dBbM1*AMVZl5@E%Td@_GN`=5nK*H;JBATuOQ5W0$t?-XwzzK}Oea@0Q{|pJzCK z5yO`=5rWrFe7_21`eflL7m1=9E3O;a42L(xP9zJTX|((6@A?SYh=*rBU$+R3MSk2q z70!{Gwd)EE#%ErLV%g(ES~0u=n-Ds39y%42fi_rNLS``SToEn9n+Vgf$g-n-Y06aPTXxVu`Gr?}xPtJq<@Nza0ZfZfkatbJi0l2yK zf_E7gLZbKUva_W_&hq0G^wl(x`ufsAugv@|?~?^j>yF;Ir3 zZAWBMEC@i#-S$$RaEl>bH3Sw=k z0}S0MD%~ldfPgdP&>bQu-AI?94k0BfErKGY5(XmqRpH_HU+Z~!-kr0~I%}VO@B4FI z4P$@j-lZp31-mpbE4Hl0giT!#}^F99-@UO)Iej{R3GLnRZ6LJj(R)o(Fdbud= z%9VkrVp0UK4>IzOTbDlHp~_?kpFo>6WrY5FD}4{>1?DO$RI1N^U1c=&DnPOl?#!kQF7IYuY)DAP%rf(XH(}1Bpms zizcsMe4}ZcO1Hml|KcCd;?v8K@IDZj%oDS1_uDxToGOy_oNe;{E%c^D_3qFJzl$>s zNK*uxHvU^=w#uMT)_?a zXL8%q6?(Z+{{PAUPYcx%@clo9Z%gf-b5H#LDE|2H^zQE;-~TA>uMH(JNeBE@KG>Qp zlncE0@mJ+=d$!iHCE%ax@werkke@&Psh#d`jO8Z1r$biRc)hKa{&}wP_f*;zRR5{1 z&OGn%`>l9VI|~RJFAL!RfV7ZINA;IxqjIZ5GlNm`=F6L=PI9Cu4xiq2Yd0t!&^!Hn z_i8*-1UpLiycAkSVAbJI5h=Es#}YKM@^lE%@J^RF)_gl8&-?jUX3c&_**O(*?=Ww! zvFgNJGRj9_gT#A2Zk8u{Q-79i3f+;QQvf}EnWnH>w3#6kc2=FqP%4iHwW25tL2Xl2 zhQfL3eZr5U+w(r>i6sh%6kPS$`JzvOu*)ujX6Yl+p-alh4Cr=mozeB!c`dQQ&7TW;#%cpu{W0wZT1H&xV+}R%7hY zNMn(Q{WOB*PeIi^et|q zOr_HQ6z?!od$X>6T5WV2YtB~~zxmRX6||8qb80rPMK!@pW*C8AhrSjp9B|Ek31BwU z#lDzWnO^#AB4sBx=?QPHB!W??D#&JRTHbgR0wvQI)9VZTf{u@NL9GucwKbe(K{Zm+ z%xnC#%|@L#v~+`S^Dh7cOw*gIY)oBUPLtEliCU_}&89^k3w&Cez>y^bDvz0;g2i$K*9R+IVoYLsA0fteEU7`;J>X-#0(TY~nvC(|U5ASITg+kXdfdaTbkE*j; za%Uy*4zDYTRZ4RPD!J*1dg!Hf8c(|6kgr)JHq{H>r%}q<++9l)+5=its`4i6Y9E}3 zST_>XnK6ioARTF%pp@h_Df*?gc)oc=s-H+4-$xN3A*J@Eq^2hj9UiY@6C8ipu?33k zNXi9^G(uBYgE@YPb{U!PyR!jPnirg@y9}eJLeCs?xXD@tt+^X5ljaJ=65il7L??cE zw%m4F15g=^&28yU*YT+KEDE=*bl$RQHzBY9wXw%Koo+HSNEVbL`62t#mWct}2eZIm zzH9r953!x<0&dD?e72KYLKEHmY8&R6uHa;~+n(7B3`Q=`?C?mY0-eM(K6VN`RQr)R zK&S8K%2b|PDuEmllZ{7~1|{Nx#*#0r=+bzn%f?k`)-D0I9goHkY;7MX2s^J`c>g)# zMNT*n$~T)iGMd;F!0~CZ&>Ubbh_l6J<{Ega!iILRumT)Bu?r%X+4-^xq*w46o-+aE zd8;@|GT)!zOiX%YUd!>`Sg9qS1iwH(dyn+N~kK?r!6xJnsBV4Tl_!>kAj{;8mqP*f6D8dspHpOf| z(XCNmZ;h8&+NYG1fFfzL1%V24xFvza4!N;xlI*SswyQ)5yTtb~CnTNN(|GH)?Y%l| zFnnQ=$tx!~nQ3)t9eH+v1mbl>+es-Bg*;64wRCX)3{2Kwxhrqm2Xhngmxe}7n*(|TXApza*| z&LRM~PmM6S7*Hyfk;s1py<#Fno2Luv{OOwnefnyb3&3mD@aX0$ngbH>V5mE!@j8Ld zPSm9;c?cS08)VsFv2mb;p_dqsy;hM1c5;0%Mv!s@ku$)63-4&F2S~Xs&HXZ_-yYbm z(=4RdIsNhQ;!nl6^>wPJ?o~_!SF&58=bAhg^9~WWrgi;0?m8Kq3akGW0OV46-NcoOKQgR+hvy_V8nnPTHwPeU+TH@%|L9*hH_6KJGRJcL zo3!Z`8wGo!ZgFq6V94Bx?lo06A$N>i&chw)VO!eJ`X7yFOt>5}vk2X zMqfYs{IVBiKUVyv$8?K|E##@cz4ZPSz~L zmnze)ZP9{_Ei5o$<13pnPq;Hncs;)gYV|T8)q}w7sSoj6;mvMBkhOuuCqHEUVh~e< zY=A(cm`?G3R%x&s{Oy0(WA_ONSF zuSy%V#d``lOd6?sXhW*LJ{)rU#z_^{ z?*IOg^rFZAO5(Jw;h?J58Pizt=y8F=$0_EH1j%Wf;3MFBw&@x8kNVojzvCPiHd*Is z>q}njc)ACwttHzpKd4nb;!}>3b%Y4R;&wrRU{#jvJcPT5f!hiPTL7!656h9?!OIt< z$YAa&ZDHVJmv_7pvpM5)K8a!-3*K8-2at%AD{zALwW!&J!@)B+@GO*!OITU|R#+us z@zT8f6g|Q^T_Jhyf@Y{(RCZ#I66f&*G(&(=S^bgtL7P2K_&8=3Z!uYKJD~fr0!d!L)#eh9_dT@O7ZjK`QtlBMg%$ zi<1J#5CH<}8$bgiFxW9SQZ}|eO1Si^0Ps;7c-`D3UKmvuD_iHt(Aa6>Yklf@8T~U5 z$WV3$?f(IBF~$~+y%~*GcD{xRB7HTDPjwUegxH@x5g!=cGsla}vKI}kia$RXVKD5OwA~Q$~vNjF!NDK)z4M|B1D>e;lN?bbJMoc7L+BChqDKUCXc@JJ`HJ)l0 z?l+qFEznLoy0zNmLbp+e09F{$p0J2-TA-Q&4<@m2nN{G%rX?mlpyLkuuTw_en2fxR z9Vr;`i=O&s0B@ceg+?0S-5f@w&9F8L@ob%tg>G$!XYmQlrQ@u^6bOPqC{AktpXN65 zp1SN6(w1s1b7|erFg~`%n13?z+uKJ?x+MSKm(pN^_?1ahvmb8Dk6te~jC{&4UQ3Ms zc&zu<0GBo3q&v=_wG5Ru0}BR~T^qvXSJh>M@TD+mEbM;DtKB;hH8;GSI1A zi*-e(jf@d75wk|T!v~trA9kDW#z?LDjO-yX-)JPwY61vNQU-uD2-c#v_N2-iS~5PN ztNg=cY0dCrZDPUWNl<{)5)yh~G6G>;#h1+QE=u7$-Gu09zE^nu@W34(xQU%f+=vV` z>Xp{73Y5M9tqrHqQ*JTA{4`9X`C=g*2&OH!Z;=M2w!%}}mW+F>Mw(BtpV(kok$t7uLFnj5L$KALDUcTvG7*vpCss?#{P=NE@00`P=@JKst&5P4MQ|` ziGLnH_xc8Q901PWIE|*g!$Kvsv)abuf9Y&X>+HuWp{9l8PY66qTw4?X+nRHQ5tKC^v&^A?9UGfZ#kDnXD^84;X!9u)%Lak8QT0*al=aHD*H{>*o&+n(04D_D z5#B3$R?e+mm#TJ5FD8eRxLRq$3T0-3iQSOZN@E2HIKC6Hsxi)#qiT63_FLfX?ciWn z-nT6}@^3cn;#IkZzitubqGW)PH{a$Nv>mlUbs4xcFj``mY3TRY>5SWw@tktF9l{$K zzX}{Yn=Sm!SEu1?mq8`$E%(~4r{lqfDF;5ydTTB{Zvb!1tY?l|jCsUQ!~L3XD>5+Y!<-P~qI1%fvlDFZFF68dV!q757)1ZR+lDLoUM zawr%b6esF1w|z+eF?RayE+cCk1LJc=-pZVbI6zJ?n)_RG!jm+q-TgSNCz z`e^9GJ{=|v++Fcvm!ZZ}9?UqfwR}37|4#~M>X0sAj=a+M2}f=@?zRwNR`!d_5t%u0 zJn@sY{(*~k7qN!DPbr*JQBforj%ZDyfHjD4DAop% zjYf|!ac$i+C{#~B_Me@St?~LD{6var0~N-796Qc-DsF#btRy#Lz#&M4DSbV-qNPp* zmt%)Y@Gd5+8EFNg@K-ESkKQeee?5Bp$}fvS^Q;2bXMRyR40L9*(qWz>Fr4&)oC(R4 z2JsJWwdVg$DemaoC`Xh)21DmhnzME=~k zw2F4OWp*J|{`=%y>ny_&`y1bFqKChS#=cRpx1UgTcpt7)<@iKy#70X15%vzd*2QWV ze_fCxXRby{Moa52)7RUfW{m7^g6v3}J{S|uzCXRfiuw{Qu&yq1y_VY3I9A!|>a|`@ z?EzO2T-1!;;=E!dlAicgqM@WN{8SljZeX2G< z`x}_L$2hM>+_vGkTaq?@g(zTKYp>eM$?_uX&y|ZZ5d~USVhQV~Vyk`CFoHa*R?y#i zw*Opgpdt40iX8IVTmo8;-pSRyi;Q-&R4Ba5LUu3Yi9A!k_fZ*uc8bH_Q_xpOe;fI1uOj)Az-G#-VX6@eh`cMD@7y8F&>HsH#mGdXL7c zI~7$7FbXa0rHRt?|NO&mi@P6ey3|7^vkmm~{#{U~8GiNmLx0-G&1kLdXZ=20pW6GA zswbLxe@$w00ikLFW~-}Li!%SctA$v7HN|~_*c0lu`pf>4cNodaM|GC2V)1-hi4Tfc zfCn--bWrR#o-g_O!jJnVKMNnsLI~Z)@y{=+;^v3hQ0j`>We*nL*5rjgJ0Cv`Vme<) z`v(kIRWQMp*@{Uw=nc7*4VY;8>2B*${f8~mzUJ31A;Hi>D3xF7KRkUFDHmU&-M=Oc z#Y|s*s~AQA>X5|?IK2Y&p{sP$q5H2escbS1oj3yKWg6u5kz9Bdp@{)XMdySCST46% zmf-QB>?IvVE(j=mINQbu&`|EiP@|ailtdr{Tqt^BfsA5Gx)1s&_>{D~469&}{O0^4 zG?A}U*~xV*lMPa(@u!*G)zL!JJ0#Kslo5ki=x6)yW;v#|(U8GqjhN=t@UtIB_hih8 z@>h45*Alb+RZ}BqNWHLe8MliGPpu?Yjp9)6xmxpDn`gygzVBL`#|kta-tk}Q3I4kH zOpTu@wS&@N$m?~5A&@3NEb)ipi%yZJvJX)OB|2%trR^L~o#EQK19?x^q^hy|9#b?F zi`6e6?EjQiX(uLAEm)?SfY73u=F6B3NV>KOZz5MLo-f7hx=APh8^ge7=^y?C2!V&L zkTm}k@sW#*nE8Od@?L%vXI0+Q6u?6{XS9}1hj$y%Bt;WEk|z6?k-%_G06#cA+aSd+ zO{2C~2;L@(hCAZmjq;!FD zoBd}81J*Clk@3lrx(6_!uutgEsnVDmEi-!2s;)aJUd0ZmA|YZ|e)Ynuw-shZ%C25P zvVE`|eXku9ffYMXDY!;JwW!;?ufyftr6&D(o^W{Yavd~N!FyFuHH^Qjqhns=Pu+d~ zr|Ej`&8ItsZ%poe@6I)#4(Ow*SP2*)vcrNhC>ec!6}1bMB{jbQ1b^r8#D=jv))fYF z!uN$xrl}UUN_|s(q)RJb-oiR~*U0V8jHS(*pH*sS?8FzofOq?r$Q|EF&wEM)~j;SIzn?5!pkoND(`1Hzx#3ly2J@HWDzLj%Sv!& zycrh&$`SKt9Ghj%T{InwSmYcRh#ILQVqWtptI>kKP%z03?4ck#5Ul`r$;a+4*TOqs zdaL`;R2T)YX}{3a8HBJpb-C8b_tuWG8VeJu)_yTNK}>Y#B+`vI{N}?m^dH3UPERLl z5;MQw9?O}CHY7pE7b*hsbijw}VGvk+*9J&b%ArxBACkpx>eV8pJFUXZT){L`!8$Ec z3G6DrLes$MR0XsVWSH&{utqUu=EBxmrmd=qkUiyzfX-Y${zgIn-Kl`%br#4DkP;zjD?Ev-aS6aOa08wrf!p4X`Ly?z}Z zK&W6Han=bsrne9kt?7y+Ow}>BVJ?+aI=$dx5PI&x0p}};GOz3q3r|$J*;hujv24v= zIn@pFxJG7u=|PFsLl&+|sHKaM+58+m2GF~PkttWc8DF`QC!&jPP>ps-DLVo=9~_1k z2ulnbWUWJo3bHfv>;qARZ3;nJacZmb zt%dqPj(^JF#)6^t>KcUs>S$iLnb+$ZzatA`+;P=yDt<0(w1m-smw|}%Z*JoESf~CA zRB)?vdi+MVblzV~q46W*tq_`GUJi(Sl39Y7Jf!%p;}H7*?1@j}^$(j3lwD`^E5Xpq>BdW?*v^RQ(Nu6129fF)_U8D37>8x z4pqEw^*X;^Y~uzF)DZF0-55kzEiv;6-?1cVZKhaRbv0A4zP@1c`ISQTvuI4?_*dp0 zvorf|i*c2I=#q@TH3D-&cO+C6bu1)sibf3M0qw#0Z6)rKfe&8Aqz5@Bq#+!fz)b)0 z=ZaoA3d=t{Q(Q*LsZO6|Po%gYo0nn(pAOXAQs;jgef;||h}%nxv3NQ`@$eGE;H4v7 zJd=Lsu#%VCTi>*JHoyC@TBg+7IIwuG^!Tt=i`&OMvv|H*@u=Rs)W^D|c%k{uQKK`r zul?KN#jft7=HOD_8$XNRJv%;XA#(dUvzbu}+x=+GF7gbx;-&@N%jzrFG(A;~)ZPr_koW(!I`r3~C-SMDJ7pz`+Tip|!XpyOH;az2nGB zNWhb~r9Z-i6^vTM3=KY30y8<=`oqd%o0U-ba^(-;q*WS-OQ1Bfi+ z|J=s`C-5!+IFZT7Ah2jFI3f-tiH0ZyK|&x9m3@d78XBBBfNO;s??Ywyddz|->{}^r z>{DFU!Q6u=y;~{$_bG$XRAE6>5v^3w`&2|UEFlP%+zLzIhvk27$qJ%=koBqp1S^Bn zSfev*;PN)SG{&2+EYKGtvlT27V3-j|F%87yWrP$uWdkr046wO%EKlY5IMnDJ!)MWkEx!54*n)D=2c z`NT=%a3WHqJR)-P6@UQVfY?9q(rU{nq%<*hWhuZB%!YA{zOF38d(0GVtZF3wIuNsC z67*^|tEU%&$XM&vcF>Ckz#!&2p-@LxIM`L562-J$W#CxJB7LiU7O`yiX1K3m5!OkFo_#Jk7a-mRdA$;1!OJeN&;JOK z{Q<|hXLi9TS`HYy=9uKmSmW113P|qp z?E_Xts5g{Yo_kJ!P%8B!6#JMt*R=zl-{u@w5D+SYq|17@lnb+z7RyZ}CqD(J)H-r? zz59|U$Sf$BbHGoU6;YtM6dks>#Ig+x(&7lh)L@zcGJ6?F=vD=ffVTMF4EL1--m5wC z>S#&VSqaH@o(MNkZ7WM-kd%xWW4(Fi4_Q9BS(uV6I~z$L>I*`m0#fHJz<{MaPDqSI z!JQ0g2R6BXO?%!Xg?3g71>R<#a{<=0qL*jx#WVm1WR5Z!L4emCUc`m;G3_HpPg-(wu$b z6=Slw^y3bRGYZDXxzdetYTPoau1K}UT-Ew%wH>7Ts}AXf-_n7;fJkmKWh^?0nxBg# z!@JJcxz^h~r?+Z}{v0BK?vQYokt{ZjXW$J$sHB382Vz$sR#mOn(7n!R^0+oFEQZihL~nN1)OnZ+bjGD*uI({pSo zJ18Ul`4wZ2rFwO)>RoxRk4W{F4z;-s$%zg&!2`9K5d8%v?)P&lp}!28CobZ)H-(E( zlJbMhb>-??*?=sFxtm<+5wCCi%OK30o0?n<!O5Ay)PO5wdU=gD10%)w2jF~O$TcUG7Li<`V+n&l3BSZVO0Mbv+ za)WClmI2X*PtBvzH>1Aru^y9?t7Njdg|NPVXj7;+fSOSWo0rNw+^D)TDj{a|BVFaYfDF*_ANMWelyKnSBXrNrpE<)14M4OTm=win+t{C zR^115M)9Il8?f8s=2%`%cwYHdHbO$;PCWJGl9N~R;;o`})PHMNsW2w|Hfj(Q2Mxdz z`-_7lU;!?RZu)xfku!5|fiE>beS@oWm7-WLE?)xsKg=n2oYmcqTg|LMEA+~Kz9DnD z(_od#C@$(4F4T(~dlae~Y%Qr+;2P1^Ldj-lZ*3ze7i>Rc1L{$=VY!?&)YoH`Dh#!y z?Qym3rn;_3`=gCJSCGj=?}0-Ve3M8Q&dN@;rUOG=&`HO#M~%j6VmWl!P!DX3ZDk}+ z@d3Xs(NI{a;y9@$Dyb}*`hr2dSR&I+B(UugDG?i<%2u~jp!7*mws*Z-Y&d{LK}>m* zDXb%KZ`L-%TIybY5X(u>3x#NeQuKS|2-myY&I>MIJ6+`FZi}D97+*?6;hu}XLa5g4 zSAnp1VE}f+(E#hetP^JcE{sL&4upvxuOp02y?zuNW0^1c1Z2^;dH02O_|FPMq_(u< zpdJ8Wr6i!Genn_0$LkeYd|b3>X1hm=;_mEGd3s{k+{6A-DcI6FDKpPR<~UfcCu;2S zrWRc#Sv4jKt)C(8XWHG)R8Bc!qdt2VqF`{r-L*!y>Z-~P)u0>-Lx%HMx)5csOi}A; zGs^s}cB!s=cUF|LX|&^V36bI15VteWHKO-c6<_uQr?-QkL>_ zrowKBKGIV3#MKlaTUjB6#_jOZSS~Rbi_-&%TSMuhtdat>PHy&@Frhft4JTxc3uW(J zsx@am4;PU{=L2P-P$t)c@~m92Q@*#;cg3s4!)~Mql!Yz}`YuV@CJ6G*!Cj$L@K}9V zi4^u8pHvj=9E^Es?y7C$eip%Nsd53ceZb#z%IDxDkfn8n*`d793lP)uU-CeG5K6PX zou(2?lv5EL1_P|c<%OQ!{R+wDp+K=7%W|7)nO@{11daRx8&6Vy<0pJz0w;71KU2PB4p05 zS4p~D_Jy>Vgs{>R*(m*-n?oiD4;d*emSdt-LBCdIA{Rrgqd$>nRu9BDU$dLYcd7@x znCqzs1Pm{}wFB+R29;v7p*skC&6z}GC=3Kwh`1@&+^&iPs%am`6%jSw@ zA-}I740_-0u)Pcq`^?F||BZi_lYa}*QvEcE%BhyDsC6rr0V`K$5CT-Cu$bSC+fEUr+@^N7h?6_OtU;FLVr-?Vo@kGr^Sy??;M*?{ zV>kBXXT`(qK36DLWuvutYbOE2I&b2+zpXGz0P)j6_y_@gL= z2jKq64qAT|z<%T^<%`O70m&94`T24tWYdf0DAunLIi9)`5Rts}s0n8?$>#*Gq{RXc z;%n|Y1-GxnCom6@KHI`ZWNY%dk!i z*t|t{D@o2W{hNK}I}^w+dGZY`d4m`6caG)zw9K=4w3p zUi5yp=>KmqSmRw-^t*^>@1p;`BWf)DZd!8u@G9Zol4mq9$oc+3>0&qXz)|n=Lbw&l1WXKR@ev7rjHd z@iq2M-m~b{vyW8oo?YxpZ0xqbd945J6a7u9cOT(V;2&EVYj6Lp@jilea0{(v*7Kil zJPg{ftk`(Pwy6PyB~A%Z`1f3njQ#<001s?i}rlWSrcmcXfsv$i~n;fg`1!C zRyP8lfAvRy^?tq_9kYEsYdraU`_jUgAG7n|`A+HiPPyi8b>@`zQKwhZlof6DiCB}hDy zBWy@o!E&`p4GvV;fuPm2Fi{r8+o}HOfIF`O{jgf4cvfZiLc-`U1Ox`818?F0<^Q>f z7=W^H8A{3Wkw}VO{Q;6p=G*uo7KMtPwSP)$C zFK&Z?17?*M|4LdDFGpCQSw*#kLiqw(r&m$G%xay~d{>^QtM&Z&IB@UJIlX%C{`!dT zi6f0@IqM~_w2WWvxU6~(Hly<_fVzAk&hBckKhf;6VxTEle$;nKPv1qZU?=9NgKdt7 zX`q!545HO326Ruq887?f(1I-bZP0=&p21OV1p10PyafU=*g0W!1uY1kk9nCH0CEt7 zmb>#`tOKaNq+&|yJ2OUK_hX%nW18$6ylcARD#%!Lkkv20>#P>9+QcmZqe8$F31tF$kLQraxtq!3y{ry5f=>8g;tg$W z*JjK;(9^4q=;{)Osq~f8n%}Kj8KCwqTm)lA^zm}w+vtdL=nAnLL==d(O?vj^pTNCk9Rj-Ys8gIb*_ z7HuMc1Z7#51JFc7#IHf;JX+~x-bMg~M;~ZV&&XENyiLh zxEy9&R)O&s$;pA|{eTC5oI8Qm6wK)sJuhn__X5 zwYQj^*fVEYtF5#!fZbFo6@s7Ro<})teY&OJaN^2Z4Jm2nwaA^^k2*`{1g+_ytaynk zUdCknr+7x*RS@9}9Sry2-jW!*%xMb}vb+(1gVN^38^FW-QM~d?nMpo^NF9l%lH1?Z ze-I)}m;v49#+gy5!{lL=wLwSVJ0&4TiUgSy7GjF_hODc38XtI5^e2jX(-wQM-OBW3 z(}~rUO838t6r4}U!w=tTlwRyyd(8esC0+ipkeOD29-3%i9GO!DD>D&0+cGHigCXwg z5(K%S$lNj=D)2P;KLqAVofQ+X0xb+>#;~+Q$-Ei7@OY~rVyP&(MiW9W%@qPzL$*XW zLbLd*1}m;iZtMQRvH81Cno|Xj)$$1STa=1fQwM*R5rVua*$u5#|GqOub9eXv^hM&` z8MQ2H%|wMkyO^yEjUX@4GAiSxu#tq<&V^Zzfek~M)~=V=@Hg!wx9udwNH8W|q%9R* zUCA_4HUAJ6hw&{{Xb!dWz0SRv1`divrkIV0C~uY9325U0)XcC2FP-hT3e&?Jl9IsI z+_=G=_Ppk%AV1~jBjycAKN5{4{wVKF3R8~8;TE8p#Rcx%Ky{FXBS^%mnd*bGnk!_c zf^5p(&J2bK5LxzMrm+1=Nh_|V$hYdXfdwnk0H%<(<*5vv3^8@vjKT`^kq<9;>KujKn*I(0N z(niO}dD}(7%0gS*g=k7?hJ*|26Q1}%hQuK3^1bY*z!3Y*qMyU(I|+t3D1Yd|W~6D_ z26JQhOC|4?_-K~=Mwc-DN;}<(@KDwCDxrdsT#~A)`At^Zh;f`$d-jcz1^ZU#2|qNW z-t9DmZ58&ZO02Bzoe!Jw>gBAFa_xmL=)Ry+RorZzk7tafeUWdBc1>Cd#U>U$AyqkeQezM$L2&_+(jOLdkrrf=iKBWKbAIxDZz@8At1XY-zPR!gVv z82LudmHg*c8M)9D(Dlgr`>x%q$VI0_h33HYJ;%y-i%)-a zwcOVj?%u!ctV@jLk}6A7zHoEnrFuZ7*qz2X8Qxo-Uo5)J@`x1X0KgzJ$w_w!1<4{a zA{%80J?8EyzQ{Da1aIQ-Ypsf=H@3$;4U*4Y&9%}@OZ&?73 zk=80*VDE5(_Rk743~)*bumELX6Zg+d0dh)IbO2R6mou1Ax^KetQ7&oBdxNDA1bD&6 zGFtkXMOyk^2cGAURvvD^5WW8kKi&C8J}|bT-(+SSR{6%SE`K?*HE0b0?UTXQgv!2_ z=EEjmjXk6L%&#&hDAY(q$Q}c6>PqWTXXCRk>2M4$-~p+<`V9pqT_TNxj=T1ve;%9@ zfi)*d{_z_Z*Ui=d0Oc3Z`8)bo+Q|_OfQFbPIDKRp19>qbsX$q%pXombzPgq|f&Wia zMx8Kap(y3OAmC{fAQ*K1yR+qA9aYe;xUxaei7uYm>FUunT+DH|^z&az=}?8Niu=e1 z7;Yl~^5yFN|K?ksAGKuu`{sN9&xfDSPhK#d@2B4XyCwbN>}}@xVdMRO-vVF!`NVi} z`s)7qVatnuKQk}>?%lum`}4)cWmN?vLRcF1gT3?x9ePL-okfUlV!?!_Jc8^DLH-v3 z;zbN+rGaAT5JJv==0v(vB2O=I}Mzv(GGxv#fefi9u~NXDt43cA|c7JXf6os))dD<6$V`{NpGQe(KiX!Pc#q zU<)IOC<^$Y5EnW?`x-mih8hN9{clt5HCfajM6J0_xup%%IWd@RyKoh`^7khDohDO? zB*~HD@QbQ8Uy^H-U90SpYKpAyvy<9LH%r3|sGUh9FXj|>9(G>pY<3_Q4@?o@@*Qzc z*yHM#lEz7K#mXrqb!p{wNo=D+PkIenb<@YZ(v3w@S4cPWF+kv&GjI`tJA*DI?w zBukPbiz3-ft}n$*BpuCxVXV*H=|bUVAY9bw&7#!LB={+_y!M=24xY6(RFt1OYyMYS z*;2~%X{J?CuF_dvwMeeLe!hf$?kOo>p)c1})IMmPeTYQe8Un{Y$i_v$A5}5~fNBMQ za$Y$4d0o~-QDLof+ERGZzwLZy`%Jyf9NPL6=d*k#@7&aj2Ssi>MQZK^tjRQP(|N2B zq%Az~B^-X*p~<$x9HtK#&gLoh5~_A2g(GrbZRgpD7R)FY$?0d+)fc66JS2HP%uIf$ z=1vV=b7ONRWd#)k=!=>%>u7@F%0!E=AoCmhl21s4a9GiO{i4VnMD2sZ1<}%E`-jaB z9)5gp?1=%=;MbAmI17YfxS3$_glndSK^Ljyu6@q0iIRl+LQ4C50sVx9-olQ)q#FAK z;zZH8NEv9il%m17Ou!Y^Mq|!P9RNVhoiiY0({rd9SjVghnl^E1sh-HM)_+V(oq||Q zt51GRMV-`H|Co*=_nqkDQ|~fqAG{<+V4wmqase-_1JV!;6zt~K?7K{y28q$hIg_Lu zZkkg1i2NAuA}fvxgW`&}+lko7hiHRpxjf>PUPLiE+3*(y=b64*F}(F<#xMu(PgP{N*`*V#uJU zHOVPi1KoAv5q1CSEACD{j_|2p?GV%@m1h4Zc4xBAdRvTfDYMX^fol%5z8#NuaL?pK zR;uz-Z8ublHEy#tcK9^@s%_|LXzZVCe74*8f~ILutm(uS^3tbi%%|yvOi`a|(`z4} zahm3r4Nb3hn--RRXK0$|Cd(Hmn>!Ml$1fV1-@I?$T=w}C*|aWJyVdZd%Hzqz?v+lR|zqvM+tklGU|-YYTMBQTkg=+F^o+}JB>)2rOpl}g*UyU;6H(3|bsSD?_R_^Y?@ zRbNhipF&$-srXa1qdw8o?#k4spRAr**!9)#JzeR1id=fyV%VR^+;5=V-__VJf`9|O zXHW`t001NaKn^g3+C!2qFN8(-!h&xK3G<$u{0a@aQN1oHDkhM)xTv8nD}mXT$*hnO;!PfeFUAX`L4jJLP1T~$@u#r1}S6u*h7zJ{jq z*RSi3A3w0MHUIeW-QnSngoOLQe}5O1;5F3O2nlpFHoS({*LHGtoSb}##VX0li76>b zws$o54|M(fxr5PCtFC@LGVE-{H{ zYG#mMkfop~QB;&0H#76>dCzrw179y2FE>k5V~mw0&ezjg#Q+y}CrI5`KPvjJcSYIi z>XMAQlEZbY+1aVVq5j?7&F-GI_4N;uQo_nAvhUu_9v#JAvo=l7AeEIB6NvY;v=rOh zUFz$rZeBOEw$c@o7SqwWrswYLAK>NbGrn2&q zw=&Zm9aVdJ+&#UnIlHJU>R@!895u}ix3}*(=VaO0=miH{cfM(wk!gOrqfJ*&tER@$ zE|xGo9b_I7VC3hWmuGc$78e(9q>a1w_iw^|g2B(9F~)(u4Gp&jo_QJv`3(+vYuQ@9 zdl$0u;f}Eh9;YMy=TE#rl_@iI0?>gP=cRXA55f@wyDawB(h~viH9Ec zqAT@dIn68NCuUt=7NT7zOQ_dafeiVOn8}Hb+P9CP{u@w(&bpaOd@k}seW$2-Bmh+@ zHRx(sXte9_>6$dyxRQjXaX3(+6|ZRanrpc6s=IlmCup;sUcBeY$Npen4K9Nq*lL#? zvVcV-iQ&mp0#e9j@1*6!Xa@gDz7eym`)FbG?CYt%j<0V6 z;ooCm0$FxP#nMaGS;fiAykt!PE6(fQVYY`M5_?M*xQPM=w?hr)4AW>D z<`QPBb=#RT`5C*yw1^s(ZBse)Bu7=A!+-Cpip@vrO^GqfxpiRUoyDq94UU}#p>7D_ zVQ2J37}Q8g>o7SXRUyIK$V`8$&QVeSa(M!#igOvk)wNcwx)YO3?Mh*z-&*e`xN~(a zwV(JFmb6i37c=L3``lacxQ_4*{ZPYWz4ODttmU;3&c|}~3B`|r-?J;Z6$9A$A4W}m zd$~Q}#$)6Q3;J_ zCM%#i>iwkmWaw=ZK{dbMuRHRi@HD`<^Ao1q2BBXKtwJn~#3hf6 zG)-BKj7&_eJ1wmLFsEEOF_t`DvQFTd;q|K2ST>bXO4!%th6tA4W3$Cue}oTS&wJl^ zaN&RDVT5-4T_f!anD=pC;M+qv)PO8Iv!4`co^n@dNZ zLAx^Z{!#OC7FlH#KOXk-3v>d^aO(I{PxAyk_FEZ3m)@>!gFqz(R=q&R=p zkNCij(SO*g!;19huOc*xSZGFum8GXc%>s+qI9nMyag`A%V?`ViBO^b0n2?Egww!hd zzUkQWlroKC9^;Wwqqg(Zx|m`<2h|^D%jan=W5xWwBR^i>ou~H@mk36vj#<-RWDIMR z2&a#X*-Kw!qGL)#OI63;nmv|k#!AGSN5OC`UnPIzTqX~PWE~o;) z7D~A?3B7A+@UromUKZiu67Plfi_K@R2W0Zj+w80*x%pul&-*st6ms<&d6KuAhdvh6(AZFNn4$Ntg|D?HU|W z3W?IOyBA0M9eTtpb!;?ErCXgR4;h^HHKbLDe(^O zJBEDtwzy7Ri9sG4mX6sor+_C3R|kC(Ju(YE6z7&Dv=KW?J|>w9 zOTo@ab!%a(vgAJ`{yWRuJ2NcY_Rsw4bV17fPl@(T;>dN;d3&d9YK4JcA0%+nc`6X< zF$p=#@-tZZNPuKSybcMDyT&GUHwr)DE@UL>*gYaX54%V^_z}HtIhhv7YWL=FYJq1B zGlIF+em8aY-S!^1Amy4nX;J-Zk@f|d}x8;VX2Fuka=s*p=1 zDoRfx8YeMQR4DS>BBWoO{3}SN!MN8<{?w0fgq17Y)jk&eu9e-`OZGr-%lvB}hQ2g=W* zL6CbmjS9SmRL9+)N;r0)w35ITYQgM>J?N6Q3+4 zKD$k1^4GvnCk=}xvH2%)WhU{oCh;vL@!uv1(j^N^C5xISi~A=_VltDZTa#rolh}K~ zbXXA9bZVtcO2;s%m;N-WOUW8bDOz-%kX9buB|81v6eIss#+UDp5?`q>d%xmNu#kYP zK)uZfAk7(Ixdp04V;1%6)b9Ex3ulnsDe8CS-fo_0CYfq}DpVh&Aa1@ij+~-_OA-20 z>8AC}W>98SW_o2&KyD)9Z@~xCq=0%~pV#%~Be)!euK>@VJ8jVBj|6!#$R*Zd5&Q;0Ha1%*M z#*^=75FS_XS+F-x6k0&48=<}rqngU6R)csaVg-;FYK0U4Oc=O$3S7SOdbLoooUv_i z(fBV?Hmg!ej24DBMb1t~j=zf+@wtTAFWwi>|kf z8V!f&6UKCLyfvjKZ{>g_cttTS#{4HmWo$;Ne^V^13w4A-t&$-QQPiIF#YsZ(u2vZ) zy73}br9h!CM{w{OJf4>)?`udpc0uW9VR94?xdx_)I#vx5twxooR_eBykgl6bWlEK% z2GKG}_1P>>Nh~*DuAr1sF@aX3WL2bZ7JVN|0Nq`9znXuI%UJ_u-xjK2FR{$bylHZhP(&Sm(CBu{jEBHhR~DCISr zLlFXlhkSZp)U?r?4f~+AuS%u-fr?UwJPM~Neag}PnwW(HP@;3d`x^xCzHHTHb zk$Lyu58XG}-FNNX4=dgO-FE|?^kB>O0AKYyI(Hlq)vX0R!vj5_v1eNMJrp@j5TRPM zZ7&w07owp~-qHI=u|AEV9L!c}^2v!4qZ06~brxz~b547qn@%#-_Y$lBb?IAo-84W# zn*4RI4|$(oLA5M-2D3zlx6t)8HlY5CEE{HNN<}~4y8^`Bgd}~s#6xj%>5I?bhpAeZ<%vA zatch&z8gcoyA#uR5|hIj)FUwu1vnuCF1nvRutqYON5ZN^BQ(CGV72toLSAK4{eBeA zGdiixa*378oR~+?Il% zff@OZEcifnlvKC%Gx?W~0W@M2lujCx)*=(pl_QR4V`d@kg}mfJhO~Us3`8!n|?3io}pEY z$;la5fy^wWn%^3sgH}m{X$Mv;*%0^r73;&;5o^wN3l}Wc`L5RKmkxm`A&>2_r5~Ry zN=Rrlh-l`$)`T$c=PxB79MWG&&cvzxb4%+n&w=rdgl*rn33)cUEn)wDt_fq2+0~_UqY+LcgHthAb@~3Th?zWm6Idy%J>SmA4xu^QG*m=1fqfa|-hC3#?o}8Lg`4;_e zg&xmB-p|DJQ%>y|SnZm-X;nVYfbl`EmNK z7b!hSJSERM_1!TTLIxn4q~3*t_fhinlar5Ii2|?7AGl5pGELaX$b+cQ8Rd0^yUzJB z=YotEdYI%b;WroJK^KyF7t-AqvOh0gU@jCGFBRo413oU6yxZ#n?x=)Z3e+#wZC)Dp zUiueanz8FatF?F>v_V)0L_FZCSl6bHdOVZQw2rk#wCL>Ib!>hXRZwnR%>LY+Joz9r zJVqNF-rZ*?)b}xu$_GD9{Nr@c&y8f}TYiljwJ$r)R*W|VNWp@;)_-8Fguk-PSE&MY zAAC=6tgg2b>9IZM{~Q_0d%mb!TlOR0E7AgY{G|RCMALh+^Ob~h@(okK0@$nO;a>!2 zr{cXSM%P|&1&pIN*>)0=nh6OY?OU*GG<)^mbLCe}#=mf|?jHj{G5QAp!GF+X@J~i^ zei;j6m;V4*Jrn>0F4h<})8K|;s3(v=2djrvDaxIAzAz)PkSrD-@)kBMXsZ&MNNhHX zN@7xuZH7~LOP=m%WQn=1^U<<>Q3LRKVgs%kZR*ouysrbx^&M4`asBz9JEkye=MjbS zlU(V)?M=jMSHxwYcEO9fAIL2(OUduc+oUy`lk9&E;Bh?ait(dydEM!C^=s8?!M(Q? zj?vrxAaS;t9YHvcoA8x`c!~7^s=||oE1Li>9Efg z<}l8~Y31Rv+_G?vI=+M0!~Di0tE<4Pi0G=(WNYBFJpLa&@a0xkfk0`l#l6q*T9`OZ z)RP9^^Bt0DEQQQ7{qQz|LgU(nsqq^}!~Q%~ce(!gFLJ(z?xjaB`pK&9T(Y#QfN#ta z3h|tHJX-K^0uL0TSc(YR0wep13zY~NS z-X8ArWE;q;s~p)@j;TE1ZaCtkB-@%2W$wlHf+z9xY_Wx>ZPyHEW)+bOa+ZJbQjco$ zCjHUf<2|j0;5ZW=ubZ6)p`JqDUGPced#R4~|0;rxH^x2ij?Dcky7-d5OBt<9Dcz-qpQ7-Vb;hvggVof$-e#qXDU`A;VnN6YNs%k3I+ z(IAI(VUczny0D7*EDx-F!Op{nw6^Mjq&fa~D|Xi<0nTmL;>w^3K$UOf*2VfQiaoN~ z=Ox39Wmwp~uT?<_ZS9Z+37#ckR5;r4HGp4#+&qfU9%PffS~n@0Ktn+%8n=SoL(ufA z+R4r=Pi84U#r1c*ZM}C%`Oj_QUs6?BL~XbHd91I8pQoo2dN?AYUV{enF;s_X(xq6z z0Y54m#a)%_zfo)MW~XpCy#b8*wCEdl^Em#_ENFA7j`RE5mT!;cp%3=*ysKu?l0jH= zHxub`6&^fz57=;8y->HoqoRp&>mvDedE9Y5&*d4;hp*tCRHOh2?v%Qg{C8l#Gz;Xj0(< zn&ffB@$`Y3a9l~T010+V7v5AfS>&eiu?ObKyCbK5grfky4br&zw{sES0;(Weh%ghZ!-<051wnwysT88k&C zlBH4;CcC)c?I#mmlH1(xMjPB}4hwj;{0IGcs&bn`IHaAF%H4NFQh!j8DqKmSjd|kp zE0?TGiQ7gt5@7jF{`)f^uYNFgzUlAj=;81ddS}JrFWa|eK8jJ)hnt`;#B|(Rugj+D zQYiVjI~QTlWJF$%H#1e|zTT? zMDwO3Yo#%TCh~g!rq8-AYqTznzf;fvM}^_Z(mR#0YsWy&{B)(Q{5_eBU9xCT zM)*be?P6zUf0;Zr5an2=RyD!hZmeo##pl3ym{8NF(Gq+ge!>AtYRq8bmcLP)pBYZ- zowl8|G8H|`s&(mpDB$_f%Au_c)q+_;ordQ*#K zUX*NSEtfa>clPNFM;1MM)gG6#%)K<*3EKVowBy*2Nsia?hE&mA#OYV^NBqE?N!I#x2WJqr4B*3-Y6htf_S zGrax%cCpJ%jhE|8z%)<=D4^7wPI{ISpSuGkxd}3UcKnVtFx~LGf2YO^)_s`mtLs_fvs`6#I>tLYaQ%BhrX}>exjT;-)8NSY+&{28VZ(v*l!&>@ zi=HfXH`MMnpu9^HkZ~Ob%VS%3jLxCIA7ejDU|y0y1-&6S&DzN1IHb`8H@};VYk8x6 z)=BhFrZA{%xLf#iPd=)yyYZ#~KpBfQ%Upjdubs(x^DYT@pu>Hs<>yv0K~WD;3_I5y z0g>$&p1vM3U@w@mSD3z+LbMkG>lN+orUVv4t$S&T*lCcxbVa@NO}z{Qy^rAg)9v18 zm%WU@J|@aOX0|>S(LPpKADclRyKNtbcONIRk1M5*yQq(+sgHM{k8if``F7t?S&249 zGe2d&5Sx-|MV&CLUsM!|!5L%9((ji*_DjBs5=rToZt71@=!}C`9Kp*|S$IAxMnB#P zspbAWKm}!cKg<9oz+7{_uhi}cOYlnT;Q=*{f?%%(G-d~iP*tgxqV0~7q50L(J+Sc8 z=1h1^qhrg~FVQN6=%eKUla!Y^HP-=Z=E>d#|p4&;j)9qtcc8}>%F{3IGg7{J92rK@kH zHqkF@KEQ`0+c25vwivD1X$m{b&&V(Fps|^f)JE`{SGUk7neLmXsf@ML*h_ zezXt#=$QS{xvl=V4~4eGLC^v>d+?i3Vds)#2zUg#uCvQ~j1?KGWrZcc9rnFRgR=;? z6E(J?5Yg_4%UM2#_P_^7M*I*RXIj-*hHKWC{8#ApPVDPReY7QCo zfhkhjF+9^T{OlEo!BI0@VKRnGI|(%&r-O%!M&ZE6mYcMNM)5zGfPzdwwj20SHK zupXccKh#7QpfH`Tqla*uM)*yKG3iF3rehZI004X+K=4u#>OBBJ={hCyJ`F>M3s~a= z!I?npOeidNkl4pa#bEtVxK8LW_M;E^VrOPAKTLtdAZlM1;PF_?7<)PnBB&;SKAnxb znOgFj_7p_D14o4U0dHS{E<{0U&q3->r{c==l1$Ld>>#a|GX`tVNN4dSQ}qEG+JO9- zVw52Q6vyYM5Ad7I?!kB1*D3?yg>xa(gLO>7(Ux;4_#lB5dRkBnwH`=dhYFr%L)ifU zryT@N#YTLZdH@t&j-Xy_oz5GbIWIdM?B{5iFhh17ggh>QA$2ZB$2b% zqW`I7I^7R|P6&H)XN*w51^D3=sg8#nfh;W-ALj^zi$QiTi7=4ok6s+eKOZ&KK@ejH ziY-R*JqJ09fjs;o&kprs%Yg3;O$7+X{OwTKSBr=YLpd>>sNtCg9+X*eq#`cB8XOIv z)u^f@0HxxU0hYfHgCeP7Q^rAFTp&CTvu#P!P)oBY53_K9X*N1IyKFi2%Itzx$A=vR z4_?5Y(@y`aAATAUP;DCCVj5K!A>9(G0mm!iUaVsZw>qLjFqzd4KW-KhxfG*nj!<@z z;r%aHZJ3tAZpJdk(E~462X~CJz^_6Vmum-KIY^8`Xm(IstP#dx9JF2>Syc=gnFA${uWqd+HM_37 zVn-<_m|}HCnyl&jyjhsA6tEQUq>2{Wko(tc%KW1wIujRQJFLI-l`GxwH4qmd8H)?w$AOnwOzD^b6y`sL=p22G z#5J02)WHj9nhvuJ9({;_e2pZ=3nqDuTE^8UttR+xh+e)oGI)+U`S_E1g7kw9_FboO zee44LJV^5MXnNT?y3RO<32!)fBWvHvT8>B!cRkEwIl$yiD12-%X4<1Vk|TT?5o{d} zkFYbrYqdiKoQ78xqmps;g)Bf6KAXbfq?k`PGvn-_|F&m7&Y^INtwMEdj$xrkwAQgL z=AoyCU3RF#!AP0o*Yz!y*@8b2@QrjX+s9AcV$d2cU{!1z{L&PlVJ(48Az^@@EyU0CA5g(1wAfU z7Q+X+bZtZmEJK6@AElK)?MCc8wAI~@S zn*R{BuMbD?*uTFZM$$6z2?B&Yf+zmE@Jhy{YdDQ^94ULDke?!jgPk(c4*K^;ro)dG z(_9fixOC3Z%0%%)?-6Eg_h|j^(NDbN4eH}fj^khA$6LzB+eXJb_Q$(E$9v(&`)S7q zCC9&yM+sY;{>&dMsf8E&;kj+#xvw9e#T9umom{xFx&iG=^=$L8Q7Z zHuE1N34`&JNsa)gCz$XPKoF^A&*Mfaex4Yp^J^qF%_*KQE#3(TSR1+JeM)Fdn_G-h zumqV2;_6$vBlbP?1yK$)?1asyK3WDzv}DAbpzGHtvV|!`@F}F!^F(2wy8|cc(G)Bp zpix;Ss6AuijCZahVst>!8M8uYygFXk6$qY(DV(#XdvQkYX8UoD0<^V)RMhMJeD@-~%WaHIA=X*zvuVgWn0eTls#C6u}3Os0c~#z5BiImZe~n z)bg4j!YeSto#o^LCP5;>Ng%0%uUq#n#}6e!tXoKy&R~YU4ll*RFIq zuk<9Y^i{45jIRtGu8e%Ij3cg0(yvTQugsdS%)ehLzb$>Wca_C-_!|GOGx1-m1yu2L zzkCsDisP@HgO4ufZ>_^fDR&?J_#r3btGCTQ1}fyvV?M?ziC%|3dV9$Yq`sassb1ah zT~vH^<&(l+`M$%Kdpico2)us5n1AYj6oBzAn!WyXeI0~<^ZyyG!Tg_U4VlN`MBxgt zS-YfdSg(Eb$&ma>$_c4^L4sv=ncd#7T|)OZbnzz7&nrvvHhXb;^JdHi96PmYlyn(i&CIyXgiofF#%4>92<_h5q@2XuEd1`!imf||)3I>0^nBcRMks{s6rn0O zQN{CGbUy>a(eD4{S^^RR9x7jjS_YfH*o>ja=9HydvK$>=l<>BF1yiYJk5h} z&O5yL*(wQ;;v~u-Kd`{^V?F#|9(bBa3tyQ7ggGw;IS)?{!1e^hLB_dy9MuHQgSSG@ zXQqAc-mrsYRqhe!cUeql8vCcP&QS0IYF_|EdVPxM`46FUQ8b6zlaJ%`8h?6uXt+CxqTI7Vpf2M~JaYgjc>o}v-tlw;%7Z7u{KTY&8DN6* z=4qe@SWC$iEa65uRZ zLGk?U<^MBUL;AJsf-YEwM2PgU7`dq6Do6E<5`OAzl0!zGL^VPcY+N!*KOs{F0F1jV zExKyl3hj)BpEF_F?#nhyR4bzXuWC(=%dPNkIWY-^jlb)bdFZr{4;~m~?Fg_Z!n0@> z;_sUUC=0~mro5C!GBaR@XV9`p<#&txU)7r9huc0|SNw)>P~;bvWhwQ%^(c?8ItyT{ zH!fu#_vF&PNi6qC8QY%3{)n5Z4I+MW`EYlAadLu@55^*NH1z>t;mq3Og*a?z{UQ;4 z>a%;>lnbX^Phn7bpD~lJ1||__LNP~4vP80H`LRT4QGuoem7Wj(QVk^rlEEm%C>Nq+ z>jlwqPfSth2%pd1Jqo@%+qzMzJgsbx(VAPf6dpA{^m~S-o5aux-31*?s@NwasWg6= zR6Bq^&;wU754t85M#; zQfCCWo&4vOo1<*)og{wgKLzB`860T6$Z0xIaK;9YYnGiOx1nQEw$pC)Z`+?YuLaz@ z>e>_HMo0smj8e81<~+t$u%Uh7LE?a~*@+v=9|XE?f4A2{6VIIsCCDFS1bcBA0tIcc zPzG49a6@sbQKKxfLW5N1fkH!c&K*MEpMH1{8fK1`6&_*F4iv_Wa#wZ;|9Ia1AUr1Y zLsn#5Y$Z@+Lh4V4$fVr;g9sW*BquuclHsH1v?_0>=!~Y!KharTbvdy)L-TQn9024c zwqWt$-<7Rku$=gkUA9HaqC;h;_=+o8%C{BIA9B}ILkfQ2RqsEY5Ut@f(cXO|t{|#qEyqNyqI$W%rBwqxLsG^LSEZ1DN}(m7mQG-9NkKG5_u{ z@&FvJ9xRHwU_4nSY)DxTu5eulX&@7jm8+LPuMR=o!GtGL)=T157s`d80oZOQdqKaO zJtSt}>!a!v;o)H^{&*5Co5Ztx<=XKhX@u{%L}(PlBXsFzR2zVRB?UZ`w$PmQul|(2 z9$19dSUTBL$lwSl5yh5718^y$Wf#U((tfZ`VS+{{kAeBg>IlgqXH!MQ*#Ouf$_Qew zA*typX&V z307gJV=I;I=?dhHWk}RCN9tIY1>|{LER+9Dj)K`8GKKya%1u zjSoM?Wtp#oD9$Hy#~I8pU12Nm5fcW7H6YnSoQ9VRFmI< zx`g#~cqE#M$F5vE--=M*14%8@Ij!X{t&O6EWb#RYr86QSp9u{)``AVm%h^d;2eEPS z%lj3Uzd-mEx3eDq8~2Fo(MlyYRaKrZU?|BbDc|g{RV$s*Xjf#ABWY7P+p37a>SQLn zliErK9VC3{A|%g5Avwf_c&+chfDsg-VlKGBLRi6MNDWU;UlA0ax76n$(ru&Ee;~og zw+SQIFKal%;1=$`hJ~ef8WcSrt2BCS9c8uxPwxJxgurOy0?*AN|G9o5ESS#=q-I_% zD1c(?%p8D>*#!YjCtgL&un(it z5gwYQMG4NUzbYhh@%>LU7gy+Sqrz+C>iKo+7#KbmacY65c+@TLEqX@3zqslp3t(NX z7^Ud{3NGJP7%PMjnoIIb9i2eSFztz(HPk$`HE7Lm+30vjlv1nQFpQmVi{kczgE(>g z-A5LFNGBI*nCME^ve441nkFsKy~~7g zhNJX?s?tI>D4E|-i|7;*bFkLjsw=~&6@6AKW07gBuHwU=>$f4eDwmw@!lxW$dZjWu zsw%R-g$spjCbO#=bzS7nmD^I@+>^p$W>n+T>kW0h^&0Nt8oz!S?k>@4T3(PDP_TSe$ZJ1JXM2dTKu;{Rugw=gfQt zs=JW^huo>5@LE}GQRglgqH72 z%70k^>D+&e)=VeYTo#LTx+vwpoB8s(i&VYy_s9zU0m36;-L&)1k48TwdoXEj@;{$M z$q@#C2eP5D(`WV`zP!SJ-8$2G?9=^WU@Pvr^P=IE=~3b^uJ8JouJg2R*HAdB^Yh`HG3x#u0`?2} zhFgQOdv5#9HE{5OJIrKb!3)Hs^~6%2azj@#UyEx)#d7M}N*TjFc!p&;?ntZBLJsI5 zS7g)c2PQ%Dv6;@0I6N_2#Mzn9P%e}S^UF-APKdOE;uGB9zQZZvZ{+M@8w!*NX+aAr+fXj9TgmrpAf z=_%Ds^I+vbGYa6ZHk7%P(&{PBoGd3?vY`seP`JK%JyPK#3@a^Eni+V4)l()06a?i} zE3Bw&Y%1&*KvB3&BTN8Gb8TX4X5nEiK^A}{3ryjs`8KVhELDvslEbUe!0%DQdW6k^ z63hctVz9ibUkXjXlv|ip6jsY4Vdql?qn5PTEI{ZckZT>HrNE@EGvK!mR9GXF{R|U~ zf^8At3a_Jtza=yN2Aa-7sD2HI(1$@yUsWCDL2YLhJSY`WUrHQPq&^{^=YD}3KqOBw zFY)MM@Ns5=Ut<|JDcpcLEvjj)#QCSdIjG>{kT_7`ITGp}`BZ!$JtT~qFRS*+FvkXx zymhA9LMMbRj!s23Dy|-8?lL4OKA^~x3B4KhKF$7;LS1|S zGjJPV;(%n3z^*h|R32CWE!&##4V9b~g`$Bo=0%mUmk=y~Dr!@+$L={|rDYS=%8axk zFaGg_U0)G-&t2S5fD5Rz6?PjDF`+dI&VnY;QfuvKznU);gInhgT6@84yf8pp#Exo9 znrR8d1vYQQ!y-<|p}+AZmrBKt zQ}Je7^KxF*!@+HO3~KM7bYuVR>$dJH6;Tw>6Fb}cEqxOA9#pdQ@%s21`QB;|?21%h zCv-ko5EDm+{N2??+bPv?mP*ooM02PCf}M@Z!mRh9`J9UIeT6cI55G0iHNJE?l~Vr4 zp+m_40GGmh@Yw$YIv7I|sa9aPv`wNl%XS-kOf0Z_ zWJ!_bkwDZlWP~EpHLYyI#4cuRSOr|7OWY3#gc(zWu`Y3G$0*0`A`?B?^<&DlbwX@} zw?l*nv+f2`ZjokQFeNcqt~f9o+S>nBpvvo#?dhDq~rZISh2Y9KO~!UMS}QV!7&}|@R#p0LGJc1RpR9; zBO=)8AaBD!c+wmcN<_DQke?NkX0)a1cc7B8tC_$KFfdWFEVA+fmQYxWi2Vtouhf#{ zRa9_h@fu*aA8HmK`0y82{t@Oet5gv?s*n-|J!DU<$NW)faaMfZFKlV3G#e_B!KrAF zBC9x1L(2Pu%lX-FwI+7E!Up8i+&4{LNIk=!SEj#vsX4X1vym=up+>ub0VPn`Lsh;R zRUMbxP0q&mg*E=RN?cX&;6pC!L(QIwG^#AEoRyNQ$L~UMQUx!s8?p_HZ?}l3nPuQ( z7Kf@LwrC5t4lLII`z1Q9IF`J63OkI59Eat1L<3iU-ZNwm?yAczjB8L4H;qD>gniPC ztg!^Xq!?!0gnIror{6z@UU6VN&h=PuY&HqBriSOd+N;lkKNvf_5}v#o_4@nAv7dNu zXr}65z)TDO&@Ue4EtWySCRDthDr(NP7goM$kEz*pHAn0G$J3-#hx{kUZpZ(**$I;BC6Jy{*BZdJwAgab z_yu&g$M-%XH-u_0&j*&o2L8B>U)sCt!)kR7ga3XyQDwt6{?!ZJe|nQEa946-CtG{> zt@gf4;9=+_s1ETkf1+YLsZzBDWmCLbuEn?w%>1hbkO^YZ)L}6SVsqAE3kc#!)Zxer z0#)jO+Jd;ob+~T?@f=Ra$(?kA!J`ypFc6>C;uizjH~K9u`b_+~Wp#LsTE(x27G4jf zeDgq3@w|}36|Cmb&i`UJ=ArZO)4Hxs2ZRwK`7%L7Gf1wzQ9u_#hCi50eTECAcq+uq z`gD|nqx8j7Jq9cYX%w4^BlCOZGWcxB;%_{Z?stQUnO)=hjqqUNz`+dB5%Ni ziYa|gbXUJ#FG}Z0kAxyjvLRCX8It3|BR8iZB^Sv<29*8#M|qaj(bWs5*Fa;08y>aY zxHH4-4&+}Eq~;ChSSXTQwbi1B2{FQ68J(-350!!JlKyc_E5hD>^jxDu8vl@)9KtGP z?B>sq=HV;q+f}Gsq`GJ$bg|HN8)MfL2zz5Df^V1hB$de)I&2PL6g(7>&jZRi&}f6| z-;x5HkJGezb}dHn6%Cw}UL7dR(uG+oi~VTaJ%t-Uog&cm%a~d-xgpve$yB9)iJ2np}C%a z`y60Pr{#ULV4vhEf$zoZJ4?m?=A6ybyV*BL6F^HI!>{_Y?<^>|8QR0+pYD6u+8h|| zW|$5STxkAuA`x`m9E6bw#%~EGlMJD031O5(aNc0L+zxqKLggQ2(H5k(WSElVnUQ1< zk3hH$_qAI~M3AJlzW^#;GBUj-GEXw9v?Z!mGP=1Xx?3{ldrQouWb8sq>`%$Ky_UEW z$@uG*c#LEMKBhH+Oe&G4H4(oBUm^ljx@eansK5O;aVFNJl#-b2@i}~xl02E>o}s&c zs?~9BD|)64@JwT!NIPMsAj8Fd7LkD&fTZ89Bg2_3((n=az00kdA3ce>EKSJ5G#P+& zjX;JHW>}dJoVJ<4y!pwDP|igxGb@by{B_Zue=$~Yr)gmm`ydPB02?bMn}86&yUlPC zm|X`xWEye**ZBa%|i)o|0;1V$I(k*SCcj5d*yx%zjb6|XpK1yie3Yj+h zTx2>x;&DSCY$p?cP?!NJO$O8w7gd~PQ_0_RS3-)a`_?PPiF1aTKOI<~5Yq{6 zti!?dNOoIEWxrE;B?T*br%ID0(|w^l@UBJOU(Vdf5>aSO3A6X|e)|jv6>(A`{;SI5 z-HFeWN+=C*yn+^8cBPXv$Z`c{;*oroQHR~D6g8<3nfXOs4kR~;WP5Ar1P;cJ4_R%>Q|7T z*CUNUBZv3s?Aw$lxLG6{ny?SnjFDP7SJ2A?XxZ1tSN7&_{%sNe`$}I?Z+Mpz#-r{Z z*eHs8{o}3s0?#@|3;-0@;tJGx_SYn|ZMl{tC+rWD>A#hB>2$S26~{lW$-E^AqHTm2 ziH=-C$J#%Yk$;sFd^#0@Z-WNj${&={{I^v1j{}==xJJK$8P;##){HyomM-?weO3k7 z>@msW>E3+6t8FVIp`*|Yw|)NJ{94npnX5p7@AT7&@zal6VSW-pxYfQW^mVy<5L!FtBHE(v`97>f*ce7~sJ=>jYr>SKH+~43)%Vv03 z^+%9%8g*oNJ~nQcRg~e{UUomyg&gKPZdqc&R0uhu1~UJ5w8lpU_Wz33Wc#}R><+=F zd6DDix%EAf)3__g|J~kXflB&|&jIiMEYv$JbbWpt=>6FnK_j0V=zp;{RchRw`|-o| z$>#TT`Mggb@2}7H7P|9-g7T<%PPKcm2yFQ?vB@=bdU5Go(7pJdr||$LOjYPUBDx>I z)X-=99{Hqd)}Rtc$Lo*v;Wc*UKJNYHRp3t{pnXABLb1ZC`-#ORF){aj8`3n%m}QwJD4 z*;fP$}|O=uNnO=5~LiZHlJ z$b5{!jOLdrQD#=$!mxY|SFe;AecdDe9*tAJeZ4Tars2FPuWgEY2sRR@z~n+WmF0~p zcG|pE@&xcL z$z5|(A1>sh`zx05+u~L{$q!naI0?L^?c@(sOIAs&%8%8WO+A0RG@0;vi`B6@#JYJc?Y<__m|YOAf{=2#V^5l0UNSNE>ipxk^Gro#@IqG zn}l8cZ$vU z6~g6)#n`kt-ar$+;Y1dwj}!b1CXw(eWs-@i2ZkjMXs2IKh~(O`plQ37gM^d002Y<7 ziZ~NUz-LTPxPmFNX&>L%y8++SF_LL73IimM@o;VxHo0zaptpcXOUkXM+|&R*+F)YR z(=Ep8grQuq0)U1Bwm`5?FO~)PjDn$O0G}%{^!aX2oL`e|FSZU|`x1$}!ECldibD&q z3Jj1~{Iw;H9#VUqlnO}By1^^_#>fT3;ejhWMbE2QupFiuuI>nYod2PXotz;E;nj~MkX`5tH5;h-fFKZax%tB+K5z7x(~^WG7UIMDR0;AHwAl!xX22jzL>cr47+ zALSiB0ZzBKrY~eg#KZ-E{aWMUV}De59;uy2M(2^*;o)U}RCOM$od50VJTf|u_|BuG z^T_Bt(mDT&y!-rWqJQ+gA22}Z34~sR&=G0UYXS)!r1##tAc%lS2_Yo(-a(oar8nt< zQUwu^CQUl1h$4zuIdlE4wfEZhz0O(Z4>(Wf`OHdYzVFuu@N@uP=U*`g&~pH_Cp;nq z&~^Yl$JyBq;Bv&S3jtydfcO9a5Wwa9tKuiL-g&GYAjNl7?>wyCN4hqf`dFalhg|3+Lm*-Sz6Zc- zc6a|lZA{G!0T>8Sb)=-P1D1`amkU7H0DcXi|D2y=0gwn_bO0y^AZ$iPo&xTSnwreN zuFdZ5rfK+{>gqB8wfR@H`4_TLG13Jf8!HCLkW3_+1VEWbJO+2eSE@S6D=N4`w%d00Gh|c zQ%ylf(=9LOR%64!`T0JS5nD*x_X6yWs$P>!~nvrPgPKyaj#Wm`Gb>_ z=(cuOu^ZQW`#b?#2T*?OlL#Kgg`1mU`UYBn^mO($7NB$9ya~0jH8Z!60{|TzPglSR z@(=LJ%d-%b5Q&P?H8#-*yQ`&dAdPXhPfaxjgdJB`RlwGH_S{!V9}{@X2jF#NhETlkn-+R223q5)^eJn~LsqtoD^mk-d(qpqpxDghqQ(2)17^uW+UVL;@$TNoCH zy@##GdL;^3#YF=yQc|yI;j3%^h4PehDw0uF{tuL=bsHB?OYhoHC&>F8ds`5q0{n&_ zO{WGrImItkD6FVkV1rJ3&C6m1%4ZY*L3xnzbn7DjqCBDwFU*BAYmBS({zZATfrG1a zN8TJsY5Y_b!jzBSwEs8CW77AmRR2kntvo%k4L&j2G%v*{3&)*W@T7A`+|JTeVvc3* zzW=8;RjfzaX$mFcru8`DhEY$MW-@na3zg3#k&^VUO+n2TE|r5^(Xg-U<63vf1M-6&3QG)jIb1Fe>vMWR@mWWbTG>kd7i`BW%IL@aC5VcO$F$908CW z>1Tm_y@WTfp~^BNdnOjldk07}<~xT-O(?qhrdQ3RR|)K+Vuro%RzgBrirgxcsyUN| zJ#H7ZKx$4-m9U4@8}z8I@-q3ET}Syce5n?h>6>Ny2-qVFzQTODAbPVsjWVa6$wYLy zsQi3YIMM6p&n&xU%LO4+G1Y>IJ%Z|k80y97gn7FkMwz|yRo5a@$hhZ+#=xm)yV}Ms z0cvFT+xdknpi$F>K;sXC`nlvEG2qSUuNr&n1JNF~=KZRZ)Hy>vOVpW9jBG z8wr}GEEWQ_sf2<-2Mp*Y+k?tJW-9K>Fp=lrMMb8Gpu!Zk7rvC>C{q!dQU%m-eNzccur2S@$Jhig@UjJ2C0|X^PMKwGZqy{ zh(Xit`5%`?r+6#EMr7DlLo`Gs_HT{r`y}j+DU!W}Z+d>e3}AjM_s&pmC7NY$X=R37 zKO=*F12VVfH%FT(*0x2JIgGD;-2J5Z^=N0ihx9ka=)(LHmeq;?T~|Y5y+Vd%J2P6r zKI>XSxS_VSQN{`5X;}s}ZE##gN&5m}Pp4T$FUtX$zRq>hor}N)P+1`Hde(zR^ou0#~YE zlC<#TGtj`aK8yT?&E6oJ*8RKAfU3ex1k362;8_(iFUeX2uYi$cL?P(GI-M{JO~FrR z%|Yh8mv<~kvTkb?K-sm>E;}KRxx8J*>lagjDnH5{E+rMv)k7`v8YL4j-8^&&wDr2b z-G+U*Sr&fiRf6@jt4Z1xL*mM3Q452qd&i_bB@;WzDk6O7u?bA2ROu;3C&Oa;a)@2FJY34to9^(rXVcJC+1H$@I#3 z7@m~j(hz+fuc?y1*wyK@@djqVF}HtZtdVCL)BSjHM76Vy1D)^=I5dV`;e(;&M*HN3 z#lm%2VT);={cu#X>55j)jvCH+EmcCkk;%}1@<~199!r!3Yv!M&J=`Z*y+H=jmadgs zPQOH29tV*+7s+(<&_+wfSwuM180GV@$m!uX+P1ws?z(Vw(M*ZUjVLAn)CHvAb%hK;VDSavCRZ9$RURo+rI^7H%uaKce zclsSneV(_2pV3t(6>;gDb7y&hI^Il68oHp9#GqQ#qjPDFGWas#A^g{GyxjZ*au$Lp zMN*J>*lVPr2O$H$yVsvouMXwe4=lrGgI&Aan++)8nOO{km z`Q?M%WApSYJ-d4|D{v3>kvFQSFiiOd+^1bJdnpgn$&vMu7^=KBU)F%^4LH92q%GsX z=t=ML%agFaUmKspa&vbL|0l{5{p;8N7UfyLHGNWC7l&91Gy1*F>NPd$^P}jiM^wXj z>Hf%Q07q8szAn?{-I_`DGK|>N?On0-9Out!5t=IV!*HnA8cm(bNBU zF_YbKX5Xyga?kdWBlL;-0FV9E%;`qb0!F+&qTl!G2Ts!sxj8D3I7L*FPjSwc(%y5I zKH_eOX{}ruS>!)4n3c*oZ-vbWYyIE%L>b?jc|L``k z#frznS9QU!@?N6Mt5zoF-h=s%XQm|v4Ow>!J9o|B>?&oS*k{?2=j z=u3HeUWxt0AFDJU^UDi<-;1UB3oy77BjXY)2lLU1b3>ux$VlSoT;jCjIapWV3=j>= z;W)|(=2lB6F&~PAvv}UPh0Mg}lEf<_;;o-Bi(fFxSYscWp`5goXkpmE)BC~#xR(p@ z!0g0ya6F6`cl#h-EiOt`${UWdjujL#Ht|kmc6@OIdM6BSO;9qOU|e_(KlqlQUlAwc zf>(5Ld?^I;4QIS12z6lfy6p1dbZ6N>MB1FiJvfDS96%ccp<%)?8guuttbR|IbS1xY zQpiB#FS~Jn7~x*IKD97{B8td#N}zWkXvY!dU5E$;R=sUv5rmK#j_VjE74&3O`>Ldm zB82dwNg4h9P5c8AnYtAG>0R!Ix+LEZXBw>I81`oDXARMlSKG6MjSIu3bf8OJ0s3>b?|vYk}WQ9i`8&PA?+YM?WiE_J>aZ$q`g{5J7G=#qLBX8 zI{iF6{h}cKXLtJVmGr+C=^(ZYQpF6gO$ND5y2vn;JkWMK+?@LIw zWP~*mbyb}tL9LMShN2g}R1T0qjzU1UDVX$$j0svS&flX(6v9!%asnDG60S^wS-IK~ z`jBw;tgn%U6aoso;pzEVdD=`0=HWUOi83Tt0*;_~M4mYe$wa)T?IIjj4-b8l`wE^9 zCMmE8z6YAkCnHH#InC`KkCHjPF_|Y$T#jnYicdVuxA3^{@jN%r$NV#kUg;0U!Y_qc zD4bUu$}y3Tzy`1HDSV8HHEb>Namj0-G>?La@++ttn-r6}PbdC8`JisO=;>^{D3sx zuYmEu24-OmJz&H4jXPBj^Vw(LHZ5eFa+5eMgkuo}IxeC|JyCm#>}3SDhu+NP;f!QO zL;@>}S_xKto@^)YqZnLn8mC2R3*TU=P;k+Z4Gx~zu29LWP>HLkRVdGsO7WY^Vam)g zuc#!OD}`+*zkbK~>W7%m-6|*yL%Ut6GF+v*T_yZpc|TN~Az#?J<4-`0;=t)&Cz!F1~gNqk+PO2rW1oR>W?dWx;J59#WuZBqqwF)tzMiJ^M=LUD8%w z#V?OkP!FwvxVz6>M@KEWO0K~0aJwL_W2sIG)0oZkPM4UO@JbBe+k?-4=e$yUntf_9JL zqHWak1UVZRKUF8VQ}J#gqioV6%DE)c);8;}excN$FzV~wr|9P|x|C&Y_H1Fg@2@9J z-8h2Qgqo>Hk;$&->gnUbyO;aVj5`cnCRt@)HvWdX0D zG%0X8G5CxU?6ml)Uh7lJxSrzH_Vvz!C#%J-7yc$N<#&3FnQ!2KK5%fS47Yt_Jkisa zvWK00cxL)=IPp1ii9(lpaErD}QTelBvNd5fdv>{XW`zbQ-7gM}l2UyY*p*+#hQL!O zbL1xx&chJ{&uq~PuG5TomgK@VMr3nKfnQY^{oeZ|$YnIBVhp@Jrm4bm%^o&4DFnvE zdp9(7O)>f#F!5TVSQ14Q?buc)OGAgB%SjFEUsg<{WsSd2ny{D~M^eL%enH<-OeRKL z(>*Pl(0;&^sdAwR4VifK;c;wbNmMi}5foHp65K($J;B7$rDz4WyXWiCm)L!bv%WXA z>PHL0A5Ued+AWGJd+aCvzv zv&xjD`VPxXEob!rtFw6n$GpCF-f;JDdpCXS%$5C_cgMG!k5#{=)Y{oH{VI7C&R$dD z%KO*9);o!rOm!AgI!iS$OS3Uc_h%N$HOHVj2X~lbZfs(@%U~7kv&znXBWms)^Jqxx zcr#@Fv*lP8YF>|IO7Nov;t#WEDO_x0p5t=A!=QrG@*SqSgjtk}FF^LSjG>8K028;D zt(h+4$*&wz!}|@Kup$pdSq*>GOS1=0*hm|MRCyifhZ_`47Ok#B#}kB;q!(2zCUxT` zuco|`MHQsjH>p)zdxlxsCtnEhYBC$q+!R|DxD(SAw`3tDx0cu>1D<4QSpL2844;~0 zV<4Su2y@L|$(za^j5k=$rnT}cW&G%)nnj{k+!$!X@eBk?Vt(X88_D$0 zaQwOK>Q~{aDio$=An+@v_GUNp6Nfd%AKm?b)`qy&pKVxtR#+dqzdljA{$gN#dSiX& z&-yIa#=Pprg2TpA05h8^UM*og}svj(;0 za$wkGv`~c-Qn$Ar!|5I2uad9~QscBn2GLxw_PdP!Tucw|yh>bfkQ0R!sqVDFcRhKV z+u+ZyUf+FdzGFtR0v;}oq6J}SV48oIwN3Vv0?pZsben9ThGlzO3oGyDTf@hhO*a{P zi6IxX`wE@U5Zv+hbjG;@%=x9)-M9}17T$za9LS%(p+j|`wqHPb55Ft2+)|jtjvaWH zT_5phX>^!+${G7OmD%kS6?alTd+Gm3=T{3t2i%jlS|5NR4jxJita+1ELF3+aW+rbK zyxZtlTh3eaM+F9g-y0Q$P7A{p3*MKVm=12dZ{hyXruM__HV!I;{wUA;@x3Rz;ehF{01n|= z{S`-8ThZGB*a`Euk72_*bCA%m2h1pz1yvNC&J=|5mz=vI=6fF zreYLU*5yl^r|OJRj%*qrtU$Xi^`K{ij~k?*VvZ~KYbKwXF@B?i>#3gY_a7)#p7j-c zrjuH@;_}sSyMrcht8aQ?X8h`#NRDC_-V~MRgpKW{#qgR$2kqgBM^@YFyaB_DOL~Pv zMTvHQ{ocv&4l&ZfUKi#0Jz$(?_}=_cz!b~)r&imZ{zRsAulL(G+Td+cSR~u=H}Bh# zbzY2a557N!&JP8w8^?^ET%eKS33Jb7@BqDN7A=d;Us)}w-|*8?dG@`rr*M=wH17I6 z4wl~H!)no^q#B|+pq`+iX zD~(HD?JKM4o(`6p?SQY)bYCxzLEYRRoyj?t&l>@6z{1@1v9b|@B|pr(hs!D5=sb?H zcW3bOln2vCp*#!8rXwKG+!E&<{E zd6UJrhA%WOV+vM9OGf8Tj*K5Yrg-v{OQNHH_>3+0#&0^FsK^vCs__S}GP-`He4y@X zCJbh5u1&~;8v2ePq-jM#;=S=h z1`>t2N|?yAjE78i)khfYXU3a+)NDJnvE0p97^>uWl7a{)a#Zxqy))RWSLdV$i8=( zQTk-=BOZSq#Skle$)|L!zGuswXd+hJ;jOPZ;4f@a26;JQl3eFcX$Io|*k%Bd;d(7A zHTK(uhl-vwr(C+xrhd_sFRPQ!+DqVQiHHU~<-;%@T|+|DK4fKe3p(AGJVn#AA@D7k7x9hcO?qdgg?Yy8&lYg51T%6P1VdIi{(`p z>~T+4kyG@@wesxo$algkdKP-s^mrEE8dLPjwp#4*dJsddbQI5iYT#YP%lFg!VZNN0 zPt60ol5hQGZB4K599h%01qb=6CmWVlql zY|ptCA*j_x$?Q&Au9ulIA){)F!H1p|i@rJ7YKmy5A|1lt(}ariF>9sIzP@!{?Wp}( z5pA*GZi;%Jtx%hl72AZnGipF27blb*Dnj`vXuW2O_>Aqcn#wawgdc#ACS~rS{5E@& znCyozf?6m-;5tN)4Pknvs3V^&*jqDa)HJhh!GE0ybq;zDOAGs?*b(|hDUo!cqMQf9 zE%n~GHE-eFSGY9VfzB+kO)DL8$LOzpS~*^jv4}7t)?Hz({E2kFB}cG^NzqTMd==K% zg>K;Wxu!9nl=Fmcq(127OY~q;=D-&wA%;vRd!Zesp;^-w*t=_%0z2bxT5zqG<x? zh!5?PO?$1cdc-nLlGxJC^IQuZ(!3~1ZL1ZMeJnf8+}iF`rx{2K_%RiQs=3M(i{?qN z#|LQKerz}KRX7r!+34qOV@I9@R_y0AyAvc^MH|4R2A-rR%HX)ewuMVMu1w##ON5d| zRQGv%OyHoE4ylrN`3~Egl4_JQKCuf9G^pN+Sf0|(;`z?AGpcis(bX|!uY>o(5Hj9D z3H#eMQZd3sxbMZR-7gt#41!vsPHZvdkx7V%qWRCWq@sGcRL?mS{Xa~b+xKUDGmFtn zBD2{Mp*u@5=dh_uXl{RFk{Qk?Js6~^cFfDMJ83*p`5I~4xtqFGfVfX}Nu3mdu;%-4 zG0q?re3N-`H^(9i;gnOW*D{@9J0NOldIhnBXvmaee4UbS6M%V^0(VVi6Z6A2yUcSI z-AEjH+2E^NYSG8wCY{VvGoT~?r>ms`s^rY&W9=q$#Ho2>&nebM=Gg^VCi;OsB9q)o zLo&5pi=%p;@|}zZIIQJ<06VB+5b{Xki;r<~vU8Wk`Yjh#zaGj9cWvszc%K13$M37l zPszht5>$_KJPKF5LsnaJ4WGD6ti5@K59@fS8sKZSwz@nP*3~%>5O{ZO?JfD;?orji z+xctjhgx@g7Y72vo~&(r!r$%RSG^UvytY|kb2RX6;8yhadjg8QwNEd})ILua{&d?D z2!F;j_!$c>*`~jGVK1Rt#FF=F>$booX++^*@>TxEPq^?2j3euE8hC~(htSGsdi!Oa zidAeO0_A`7IW9J8Pd=tQmji2CEzBTyrQ#84-8lq%6vf{FC%%F`3rUVOQ2`}GTgkk z`R(LJYqmih-}=3+Z(KX8&@x#aDHSrZr{QDtxQ@1nD1Eek)`a}#m;8KM>~$9V>AQc| zsK}9VHrVgUgiQ>`yWY^3uk9~XSyU9~Vd%&XjaSQRD-w8UH6r)2%J>hXm|+^^WU+Fa zNz+=t|5FfcqNc~1y!z*m%|(ZDr$_Ie&;D4J=zDZlD>>BCD?tA|`eHODz$X3e??dgF zpNmhU&!4>gbI0%e*S>np&*is&zmLcK{q{8G@AtQtmlQ)F_z(&I5UI@274#6;e2C0_ zhLi;64be_>=-07vA(L&5i5}s!hDfTrTSIUecKT{IC^%UU z1ah1$x@$ble$2*P!p4H8=Guc$vgaRFk=N^mAXB4Z)c>mwfhbP*F8914&CRstLptHKX4$sw4PkHuvqh6;~hA+fS` z-~iU~Q16s59!O{j!4eFDEI{snLE-$6Fd9nT5yD+0NShzx6|Nc2`W!!`eZPbtT|jVD zAjG(j;p|!b#0UW@5PupXkW`3`BwnUilYxxMqd^JS@^L~qF8(u`pfHkop@Tn~NJEl? zpov%lMf?RAUp|cetbq@o#1V9fvqSOam|Fyhr1``HFaw27V&o7-CZm<%CXjG+GcMe_oriIeIc7-X$L2q}lO$>?W-#^Q#M<+v%S z(;>L?i#QO*IBKeflVAdl1+k(*6Z)WwF;h;+Q%*>fF-ZzE!4?Egmoxxbr|2xH3B!U$9Ex|Yvx{W?xat$`jW;{{gX1(wwS zhol%xflTrfE*p*^NXTT;kip9a$hM4bdVy{lEAAk4233%N1wGHf7#}uy4P`zaAkwIdwSW0j#1ik(ueqtI2#r@fPg)e`# zcMPHKm`Rq@O0w2MZ3tsxIPo+qXV_87~&W1zX z6LICwlFFy2Ms6na6Bx*5`;b#f)>G|Y2_^jmuq?!-VV2W_`fWxcH5VkH!;tpQE1a{A zbkKy#R}&EE%KdVEPzL_mEO|gTcF15P*?459!*pklvJJr1;k4L=IZ0ZE`@%P|N3)6R z#+UI&voxw^h|=6KPKa0l=l%V?Yb%zQ>!onC=VC?QrpkR89 z;UdcALVVoy2B&9vxCk0iLMu76TVjONl-KZmN~HvdH4b93PheeyxUK28BTYL2!{^qpF>TL{CLgZ!SRG8Ybg2Mk2fyZ)V^hO%og>E!{f_vY(%<);u;GgEi69w;c6op z=VMyR69uj&CcBYS+h+E)_Uk2W`-D%tgp6S9h~`>1rdYt1w#pB#ow3$G%5fPNS7%4$ zHL)9DvTy9Us`$Bi7_%NlwVp9?qjmyn%8*j-rx0p7! z1vYnNH+M0cdlsAf9-9YuHV+dvk7)ZfRtQ$%WJbB0$Ej>ii<>9kHb0Tc+fC^CA_?Q} zkf2fsGuhj3qf8MPh=KrNdk=E#@%CqF8e=L1xn(ia@%C>c+i}A3wp8J+z`&RgU>%4uNntj`@ zeY>%J`=xz{gMG*IeJAn*XS~913>9BBGRs)Y#nSNoC^gpsJlW$?ch4`##(OvzM9twkG_s}jhFzpD_-ZIh)z*_#Odw`LDd@)%}O92 z^iBtD#een;1N)`x_~5oMkK`aB6J}-Q!*vI~34IeO)lN#Px>w{NU~!0`&UoCAOZ>&F zNOI7SIAoZanC(b>5`7e3Zi;h$m)3oZg&g+N^}NJE+7EQn`3Vp~0%f2VsLmCua~vP; zJg??QJUSHRq?)v(0D8uQKhMsz$9dc{`_to44gKp35uKw`o6QJ!+5{*uGL@1U-uFKGo|;sO94V!oFy4AT>tb$l7%QS4&gPr1(Mvs z>bQQB3r>^t1+ktHp*qT?1Vu06=bE#ykev+4!xX|!YWdCskY$?W5+PidSO)P>wM^|^ z(o(k${!=0IP3f9KA|$2U&tYtAg^?E>enuWW3>AGm3UWj-Xq zAqb{{=b21-O92g6*a(xwVXgZqRTJw0H`fbd^OUcAuP+tMyY@ZQ>ifN4l~WGi`%~NQ z#@N&*--ys&Gc%yg@4Q?7kltHFWcA|wKFgcH%AQnFNFCD!&g#NTe;|S0=CZWiE|F#J zwA`IYVe`Q`EP44N_3$F?`$am%j|`R{nLHVCOix2*^9lXE4?VgF}HoViKTBL)lZ6EGXE@*itH%(IYs!2 zbB}Aom+$p&9SSHu}#QC z8lkf}K^$Zx;02lSf=nI~pJ)MYluu@mPYU5(a=|-WmETE|&V=s!msnPxar%I=bD!ji zKRC%>o3(^3ir93y`?_8PGI>I040v{iu%}KaQzMW(A)u~8sx5tMj0m;lple=#HUtTe z#34NDga%JSLGvG=4qnbX#j-|&F0Mqv{Rpwz{D&_u9>gRE#binP;6a2y5IFY(rhwh1ur2!TQ9q|o~mf%0b1Cee{JUd3S#@GfFLU$|le1g+Zq-+d97E|B(`Z}2($ z|D!xq?O9W1P$s=7g_aGZ6T{V9w5_p^M%DE@&<@)#<>rdab5b_#5K_q(0i zl3;<#1>f)DoBfgBzkK}gU1DnpOL2L*Cj&Ls1esF<|LQu+tq5)uy_Ll9t(|cP54rQn zMFH#V@-QQEUn8pbTJ z`iMCKf*~JWrL?yR6nD4HLYL&pz6B{REIqAK>@WH*66 zzyE+lKeNqvn4k5;G_P0-=ZNB~{CT~5J4so*2N%rx7;_)d!FuzMp*j$CTx1@g|GU9m z%pjfaUiJXmg?%p4p1DKhi6p6W5ZZz?d%qLR8y{p)n4|n3lqWbPZ)x5JHH82(_b1Vg z=oztx&>$}-k~62X#>rfSO`e9|-Z?>DFvv8b81Ar)mHz$$mqcGS;VR|DbX9VqSpP+N z8kZYznADn#T<2Z0P`NloD}x6Hlq?{+*^cDp(yr>Y*FOJ2d6pOSP{aWZzIE{AfSed| zEu0n<(DO%rD~|d^uFaLXsVjMtZct(OAC$+*a8p=uFZUmmr_gUu@en|H6pt#B)s)`- zH_G#&vG1?aaqE8q=LTeOQ& zJ%8i(RQ3DDJpkp|PF4p{p5hp_p8(49_lLdCp3tw;DRuSBkG``p>VJP!8G%6&$glB# zNdc5cNt_?l;-o8s{13{bw}!p)56UCjNDKc5<_uBFu`y;wgo4s!b@dV z_l&8nB|$vOWuHbNQwoY>0~zzsgw#FfA|1klf=KD(g-3Wbz;WPKa#(g98v5)O(I^T5 zuM!>=F>Ot<>_;%S*NtA!dO?x8gh!B0j>(qL@$BdJ@ z^ZeP!9`~EbcUgw3)p`SSIAh1N35%1x4DcmehK)GlMH%OedFR(ju{&A%Gm8nigZ`8= zzHL)$v}b~&@T8UK`f1kGD(a>roh49EC!v2D(Ve6#UPa7wTdm|xxJ?xJg5$@cLyG7S zkUK>WUnZNIA*Os?Gx`-7LyYzc7};orHhdT&nfE+C+fx!4Two#m9}&@-gezG@;{@it zav77vH{@ByScTBS&}lEUEvh|FOc+t&tt-By>nI_+I z#4&cN=zA*K*$~0br4lCBK`M687cUreSl+RrKpvTH^IiO`xx{>XY?h%SUnNM`8;xJf zk}jxbfuh9S_pNF2l&VclA}CwxJ}?;Tb@J#WF_=4PG!R?-O7t2}%$k&8&f8&5Qk2d5 zW6GIrB?8xBFb~)0Us(?GRs-nPm-is1mDnI!!~iFRz;Eh|<7DMa5g4tDCr>->8mR2d z6%<=2XbJ4H8CLR2Y8&SK96gAE=CB;j;AWKKST&5_?WtFXs>EmeueiMtuH>MU z#CA_bKKFuLYlC*g*B7gTggH4~Nki)n1PcsZ-o-``fmQl21+VglYe|B>9%q?-dXrkM z+N}GRCcEQz_$=$Bn1fHHE3vCuSro z`))D%?Kk{HPiX>-gK^K8m^IN$;d<*CXM_MouFa6!|2>gMZrxp`{*DM`W*9yH#+Auh z+c?>bf>w<;2VJ+&Kl>Tp&;Rl~!a@S#Xh9z>vv$c$dUTsac4M!^?g`$V%(?&fQNCvN zfg)vK?cL}0$-i3Hk*5k;t~KpN6ThExq~{xccF1|u{NcUqa7N2(YQ~g9%rnUD;~nnv ztd90bgw9n+0uu);NL~)1@2SKrB=YUg%rwII>BOd@?m3|azG-%oM&E9eq0z1V6NAWa zeL8G-A>=Yz1c{%R5`A^I>E>Qj>66LlF4z=fzdiwmd`ReN83xh0qVTH6qrcf8;~7)P zXLRfRr+1>nBtpD|t+%6YbsdC(rmyh1XXAryZvWnEcBkDECOaDyOig0u|N7`@^sOKX z_(zI_U+VS6ITWt@Pxr2C)8s~4#u zr2RfcgHA?3%xijE)(2nTUS8h{!2c z(h3;)W!5EU1%p~9eF2VDj2Hf8mIXEf?*-Fgc$q7qU|sN~dj$)_98+`!t1XNQJj`0g z%ajUYZ>pfQ;N=)}p{6C_oY`jJildq1 z49tjJyAMf_>nJcP7x&W;jt=5O*S*z8n#(7pK8WSJA-)@eD>dSAGx!X@hX$LpUgC^- z(JJQ&CZ%ptM!45+z{-Q^hbXk;Ma!o;X^DD-8=Id z41i=6jB%{K*}tLJe}xp9AN-Izo-##Oj7uwa4Vh7m)~HMxwo=-`?R<072U(+NSW#lu zC>hoo49<&IMc5lvo0mZ}~&R4u?k`9>Sso{S^aL%06buBXI$Jb8MupQwJ5!j#@{c zjy>vKz>ni}#Jj+Dz5Cor_SOXg)ExMEIl19V52A$)m?<|11 zU+gM}2qY`ISfoMY9_p4HV2}bv#vZ!XZ;=y%2K_r2{u+%uLC*84#EFNxJbeB|IBj+T z=W_mAqJoK_LnYFLH!$!j6K=J!G*nPf1MY=#7u>KJ*$@yyXq5S?9o(c5()i7XE~wR? z^)$>X)89G>i4X#In=Otu9rhj=K%CH9TBi;pUtXePp5e|=570Uf6iH(vp9x_PXpC~M zUgn~I3e>TPa**at{#_(UYY5{>XA(Sx6Khhv!h{L`>BVyont(G6*yhJ;-OQlujG zk@Tp$kqg)WgX{IqPRYg9IO3Fx+))d=deeL;;SY}MRZZ{b7KAOxPN+1@9}m%@Cvbtx8Po_`!%m?iOL(3ieX>98NR2> za}5MvzGsBH-3Y$z2)6C@?LUAu8=+$=$j~bOwqiQj<-P@faE4T@8o&3DG;WRztiw$s z#-y=0!`SyEJN%|5JgNc4)pLpL?QKr}8OY;t;YWP|ekWaY6h0$j|659fbmb=&w?61DdQ6{>gwUZwl~Pvp zz-!m99eUQH{cF*oLPw7>k7m#>Qc^aMU@fL=-3;i@Z6k3-BS$dYM$)mK@bO1q=j0zE zo}{4h_qC_FsWG+^v1(V(5)7RR-A?5sD8+rh(cX%V5(TLUUnIFC*n0o`Tlb@@IXPPR z_l(4!rRG1I5`Pbx|DH%(o;P3ql>kw+{C`j$iVWEGAgo-=l_&0uO=un(FfArXqSr-# zotON~l_jht$u~9?8zhm(OPOBBUe-d@EXhRzqxSNqV!?3@wxBIZX!{3cD)BAk@krA;l=)%BU^{*KUR1lwz`KWqML4fF3KC~a# z4Qal1kl2kI@;7dlQ-i8zLRje&gN^I&8ai^4X2- zcG{vdsjABmrN`|wZ8v25+Cf8SG%rFxvmvT$Av8PfYG)zpQ)kjvNHTaV>S`$J(+xCk zNH0hd+5AAAI+l|rmXtG;L~IDe8LOc^!li@LRR8)-RuhH(injWSa_i6}2$A$ryAq>+hE87k8k>Ls3W#!v|Z2&qKAQWDpamo7r18AA}k+j&Q<9^jKse+;@zG zWKj#TW*nVJ{jd60LuqwnH7vfFIo*NKfVg;MsDe7J>|~WC&bVlh>YQICXh2qejG7N* zDYQa4X^U| zI}9|#T%02igM(JK=&g|1Ir-=zU>f28iv2MfkLJQ2+Gy(qceK4)pn3+iO60k57z~mbng8_p7U~ zf$CmELp~_LHaO7E)#;|Eo2k2tiIs)6y{*2Jy&+K412umCK-c>EB9P+u^>qR@K2XsE zr8>~VySO?4RX>p815G=S;sYJNxPgS34U$RTXKVy$7m$pu-2Mdkv(Vm8Filx~zq{ zmb0Ugjg`*75&qMs-9W@1H8KLE^>&1We`|ba7ki+_*VRJ;Q~bXKzk1q z_&^d5B=`~p5ZVw=~2deu| zpQ2yA3If{u{sAw~;z9r#P&UA5V#KSe>^^+h1G;*krT;gofAGKtDC&V=9w_aRC@~+5(w;NHB|qt>w~iY zspXYbu4%bB0h#^!M%eA_V4$@3!FvON{i8=tTF&-w-`U${p2;(Y@ns@sDEAi-z_~IiGTqS_E@hXlpQbW z9a^pskG{_h7iAEMm2=#E@lQ*?(HDO9eq$}?s#AjtMa`l$^Nw|V;H9YJba(6Scm|(- zSyaoln}$?gIV1h2EzgFbeL-JUBu~w!7==>IH!^N`;2Q>RFGbC{`8U^5_ipy}xdmbe z9+Sry_IC&8S97G5Lu_4cb@LfseKmRRd#8>8G|R7ZFY^53otWawemV=H(dp~gkMGhU zuWfLNSM>R(nMJO*_LMwxDp*n-kyiNjgdu{~0b%S+%A}QnW&F5o0-Ot<$cO{+KtS=7 zU3**FYMeNLok4VLBSA$nJNj^29pgmm((nvR{|2F5x5PX0R=0ao`Eydq$tq#@X|7vk z-M_)y15M+0!B?Y>L~7hM4VOCH4a_2Q>~p!c!?|#L7!gYiR(6pC$5{|^yWl#B4`Zfd zT;f5oWDn(`)@?0jT@-_wz-md<`H!q3&L2Y1eD?idXgOqGB%=b}`c4S#<-#OlKw!st zpq@-x_@Jz_@_Z~bie!9(^BLgptLlv8u%7p7tXwtI7%tIu$l^h`-y_){6Sd`-FG+ss zPsy)|8TE!`#v;KqUL_ETde&?<(8&K{?>(d8ZvVdB8Flp0d+#+O(TO2?i{1%Qg6Pqr z#V{BpjNW_iC87t>iQb6_q6Q(Nm)O7Sy8d_h-+S*D&)RE0uO9EL8QnFAkc0uQVKC1o2sAf6&LHbeRH&^SZE zqvsfpXRe%Uwl_!BlbtsobRS+8>v^fHOq zjuf2{ZLUhS-oV9y!28w3T@V-V+;D!S%grHnVC;=~+tE*dvyb-zx5s@ujo!b8IA!QJ zM?{Zqe@`ksxKp!p0v_w1d0BgRzT$KA5oWFO=k9Vd)%D32dyarV*9Xlieq~SHtM}kJMJL+Z6NfFOS>os@JN{bQBN z$2b!qG>x2I687}`FI#f>9Q1y3FMlx5sY`{Oa^MFlD{2&@-cf88;J&k#z!TC*P9o#s z%#IiSmNboOn`Py9=2m$zLY5vYA28LsC-3wlITOsJD-l>uJ?8^0Xy_}$ly%fh@=Nf} zDJqbLJE~>j5|;>tSIB*Rp{APxt!eA4#0Kvx`c^>ew~L&lsh5D~2%!xeebugG6=q$C z9xmvdBAS*-iE{~p-3e(`xT{6IVumWyPnOR&xW=#JF|vcJa{Jd zJLICV#Es$^+ttCB<4D~B8u`ZfO1`I>j>}U#=N}@>IDc5aQVO{z>1*QrR1NcdMY`%T z+1yA_;})T|vO#mvGNe)Ck@#|MOX8w+@?DK*soK{cCKqjsV>RB*pTGX}yJ%k{03M50 zTRq9R=yDQzG@6uTr7={e8l%#|TpriuNTR zW-EzRWgGtlO5V+<51fZIrN##;;(ygE4qrE2@`qE<88EIceUle}n#k~>PY@s`op61!|o@i-5TmR$;8B^r&XG{4L=ZTfcQ=4^K zVvZaFG^%cRvG7S>Uqj90&bS=&bMNUNdJ}E) z&Esb^{&)M95jY=vEjsHH?+)yrwJ$G>pEtGN9lFJ}uk2`Ew0*hz={wQBdNJ;^nNPCM z5AHa|=pya8xI0EZ>)4>2xEy#JD8i2;xM_+ut|wsE4OJWp<$R7B(Z$%pc@Ei@MDzQ` zR&*NsY-HAz@+eA_z1L#^_W)^~Q#||RZ0yyEbzSo{mazN9_B{5H~4{Vh0&n~3YjfZV+r)yaYXw6VxUcHg9 z@ak0D$PM}u=;!_R#mJouOVOR_){crchwvvSZ~+yD(c5eG0En2PETE}M>Pfh8LyW{$)(N&-MEzUXvzZmp>E--`g@tBUVKAb_ag@o2Fly~a2NBwJ>mn6cz zP`$F(MD<~Wa1+*26Ke%eqxi7=Fc(&BaS%3X5<1AvURPDlCaBV}Uk!6)u%(7NA& zXtvM*v4~(QWC)cUSxaE3FET(|nhqT_sYDWWF9ux*MJAL{trwCdi$$iTMP{@_W-UhM zTt?cq4CwcW2bv!C-Fqi$TX{pK;6lUlJjS}1)6$%+F0AfCL|2Kh zMrU4oHyNteEcNbRk(6Q(5G^}O93JXBm-L}1=@D5Hn>GalyQn{Fcv3`oRQv;*at&c+ z59lJrwNau)xh(5E-hoq-(W2$>E-XBM+N7NRmYSS@ znM_g@DnsKe5uZfXPsWl4=HyvZ%s%7 z+e!_FJkWVagm(k{C5RpGAtnpPq0zV!5i~J@I3U?;O6_IhRKC@PjuB*H{<&>_TlKg(YG?1gl zJIVHSelb0BF13!%K}+1T5>0$7Yr%pV^VuroHHm!*@q!^KM1*~*qBe1;8jDt;f+m@U zo$`l{VHlxl;sfbK1gVevCroEn4uUHeDVm(y96vi+=;-<1g&dJ-5x|tGfQpWeN zm;qjc$Zy!)s`0$HDt?^#UZVZI)R*^9Zr+Dbr^6&0dRsz_DthDkdrW(rRl{UnLpQ$^)(ErEDEYz_2Q; zy-|!CZqfhL-iilf_(I0iP9pY&lzYyl{{~nDo2QIXYRt(T@KB1^rO7wsj`>h>O7_vp z4qtGa=%)tz`!`U5b`n8H2fi1u~&6P`hGcc)c68&fbQ9ioL+L(|RJ~8SQ6ld!_xvn-jQMo6l9cvV zhxv_#|7S&3I#oQ$PdY6hRr7m1KlNbAHsPeyurX&DfO|&@Ev2n`ab@|`5;Bwy+-HKdN zzaDm3xQjOlRz(bN7PM9!S{6gMJV*w9McEoaQV~E$D(b%cS-2TLEPN=d_=VBdEAkp% z4#^kh#xWK4eB7+@@XCECy}BWm_L#g~tJA!Fle)%q2dT%EJ-*lL<=Y+_=C)Nn9)9;R zefM!bcq=w|LYLUFU|@`*b^K6Q(k_a8xP$8Rir~EzHK>gk{Bg+S@#I_g$vD9Md)S`x zfehC?fLslhuvd}1^)3xphqM;=9F9? z_3-Z>&d|D-8(GbW=Fboj&(IA`XN3Y!%pw$VNQb|W^nMol?wz3EJC$-vtZ+xny)_P* z>SvpB(YqtlJ|t1%*RYlYnHp2hRzh7ypw?eW(0}-?Y$8ym50zp_Z39U{*tMN_gzco+ zK$fXw;E%WI(3kuqvA^xTdDY*33@6C%Mb};&^D6Nt9$;u&I?RL$eb(9?F|p6u_qsIvxl=4v17j_aT7cGQyRRZ%_gk@zww*-wT1>?q%I^AQy+bF3ng(OrFtSo zJ5I{%Lb*h@;jf}jB6eu0ln=r6O;cuDkD9x+%|(|dpM zI)IuTNKREzqSTj(rUsI$Vriy^?M{ZptOs+YYH8sCzZc04sOz7o3}G^FrH@YHS-nWT z_4i!a63QRclFhAol{qdw1Ti0?Ft$>w+3=OpG5RxzxY^uPkzy42@#6ZiR zNLLETR@ca@xR9UXgJxI8vj#{ptsmP&Z}fxP&a>Vo5prwQvx%>gydNhPRvFjgK46D? zl%myhx*xC)O5X;M%>5x2?9>g^`Juzl7h>`B+c*`b1~ESU&xx6D#01lFDoGmgQ@rAB z?7t3ss?~_?+h3EkZwrvNNFH(TEIqNAX8AOOatMAKzuIR7l#n0y2SL$f#w^woA#ceE z9*~X+|00CXShLJdKb>X1tpCD7Vwz3qL4CqEHAmd&q9ILkl{3inpqM*|bct}l>Ry9V zSQG00?xWc%nZ)8e(ZeMX_nxkY{kH>)g8B16Ih*L)$8(=aRlZG-Y5$IR@?9Km!~rMs zJDfLYfNIqe!|#$@L&W5qNO~fcmUB9r?v|SeNc*#gRAe_R?(z-uJyN$kIzJwSOJ8XJ z>TfrHCh=j}wHC#_b)NU`Swr>eIRE5u;7S~FY)~*H4ZZwmgSKMFM#RU`J7rke^X?lCpl6%wEb<^?f zrt|)$oAI`%7FI5ED@D6M5NDQ?b34lDBjvjIwJsMG{n&5!AZd z>KVe$t9|LZrNc1EKm&|Z-CeB$g?9`J8G3syKL%ma z8XOokSiept_x0w=On0=hkf$~LY1ZZixb&HZt_%^ZrwlQVlU%3N-V!h>W*Pl@F%ZKW zY!i|IQjFzeEe)X4VIBQU$f-M;g&O}f#(;yg&oVi4oUb zPr&KsGO02F2lEpKg?*>(>un&JBo)4LIdz| z%s`{r+L~ z5c#eJoJwTK3c*G(q>KpPYPOCu^|#DX8+)k4{MJyyI1kejGjB20CX$;l4Bx_@B-52J znl$_A*))?c&vN<>LXg2e4I!q;^)0OBs>PwS9c?i$;r?mCOHhmrK`>hyKliY0sJDai ziUC>35_4_bi?*W1!@xG@=4`d4k}~atbha94l1!(VpWZkdh z(d@2!y>phU=cbPvmErP@nS7=?S?$Mwd=Z+I(;0MQeNA@}b=oDu3?JOcyx#5U2o;NC z!FY@W^KLvz?EV=*$nSI1K%n-~4a(pH;(BU_rD%4$RzhjNQ8iW6gAoaH7v_QP~h0t?;Jf z+{f{3JhT#1`cIMyDErG~`7*R)H9ZUIF&&f@By6M5G%Qm_>>U~@M zQJDtq1cIf;n3aPG%cz4XK!kIU|113N%=K8s=d{xFIQ3 z_PSO&Mai6I4PN|0Y4(|^%)R|Fi)|(Yf%neE)Tbod}&-8LHkQCTGHSugC%!*P% zQaE@W@Pp(^!X-ZCX)}^uj}cy(*T^=E9$N)+{?RkKS4or&cA=M_*aBkfHGU)$V6w2$ zo(T;_f!zq@MG+A_EOWBsvRm@smNJ@Dd0MG@7DHho%s$nSQu33f&<_2942xmNTQR6Y zB4Qe3|M)4znYEzla+Y>ZrIOT`F=A7K!|x}uf_|er95l{cixqr}@uEI74acwPr|l9A znqw%479=NvOn*3S1Gj7+<*Gkdq1(oXFD^3u@)+PpX~cVB6M$qGlsEri9m>0Cu%QJ& z@|Fhov(_ZpO$HzW_Y{LrRa(>eQxT5l-gDWwT~lV?R~z6}u5g$l}iHy?hR!S$@Q51ZvjB3t?nzxI`iMG%yU z2jiK-OXLY1i)-d{lbtO;NFPDNew4C-=duX4=a}m}aSTGz`bK>i-cL{~> zh7+PgUi4l<_hJVFwhJ>A#(Y+P=VAx$D#-Xvr>>rsDh2+~@A8{(UOlUgkPfed`Y$i6 zo;ME${`Bg)zY*nuUnp@*9__!Pzvi&X?ioCKgdL&*n9dq`f z>#jR$fhl?O$s1Ah;UA2fm+OqRzcC9UBWxJ&jw0?gUXk9PWq{kza7OR;9(+S~`~1JS z^q$?=h;E1tWTYLBJh3}Iq+VL(T}mNdOgoINKq4H{oC*2VV$_@%+)SibNNg5IswWHm z)Ec^&7kb>8nD!|aDa%PJn=&baYLQJ$6AG^r;?sph7e0zV778!>KsibT+lPqP^Kp)f zMg_~I9)Iw^5lPrZv_+y<_9A(0AlzoSVy_^5rm4m6A8{a{_fHCw19c%X){!D~kz;62 zxzunR(IX{_AYwL=vW2a1vBxY4jkUTErjW)ku@n_jIbj>9Oge&|_tWdElsGqeiU6EX zx)8leWc82s1Y}>L)(2mQ5AiS&xsEh=p0MHy(IeB!+{*L_E?I;Fl0gcR=#Mm*txw8R zNWGK~hc;R5Lqb`_!nH&|mQ8W!!7p_c?t-7HmC+iLK{T=y(%lr{!2_X-{Shd|V%tZ;G?3wL{(Pm2SuY`4l1 zZL%7?wd8}!K^|uHge@w87OO%6a1eZvegQ~-d7OLSDo9kNSj=%ZTnzi2E+m$hF78nZ zd=@ncS56gFDMk$;>J(07qh{S9(V>!t)<_uyT|ys`6d&#oDJ0to$w-G3gQ{i^N#@c) zhJVW;pd*@OQ9Y)@zMmk)l44nAP$c?D`BP*VS!Csk2!cu2p)fxJ(q_D-l5{x&hp1H{ za7wdOVgyNatB{^Ws^?-Vg_6iu>HsH_caTLTt3wJg@c2#J6YM3^GF4jJhokD+TW1Mr zmj@cuAu{V~h{g6;w^1d)vGars-6Ff%+d>70;FGGInUNz-IHhcny^@grr}8oOQUgxV zVKt%vHXOaMFgsC_+i_c#{E~slW}xSyY#^}E+Do$zNt69Wit-A^gD?0-K6oo zqVXS%`#G3wY6W_4HX4Pw078)%WiLmqioT zjT4ud6F0LHcNkDd8iG*EXMax1zw^p~g(uOAiGImXV%kn(c}-$#6l{b};uKHfewf7T zpTwV=B-olHJewrKoEqOBOQzBmZ|G*hnTi;KrLU={xIL^h(oXc%PPNxgD$^$CpNd_B z6^O~DE-FKSHv~Jh@u;U0xTfb(YVpdS$i_%Bj+^FubyCEpb|1tw3zpp%s3GSFGnifPvG1x*LNj-(*Yd?|4kyh8u7@A6&)GN81 zl|Il5MKuX2JnHI2YW3q_OUR>q=jN*-wfj^&RYt;g72rtOZaTdfxBe(6NROOu1VrC0 zUjf`uU8wY`X)cM#U^qgM)Q5V~P8n&doQg7z%Ttc7GOpE&Y&bQ}HyX6;L-J;8rD9643gc#I45eiE zA-_iD%niogAz|dp6&g4(kC6p;N+5f>L0P&KTCq9;)A*RQ*tKOc=|wn7QE{#^xn(i2 z+c@$JvV4ndJ%q&S<8&6|q>rXdFq+W!Rf~(MQ&Y% z!u91SVSoJEaSIt!#~G@Qlw-Fr_ax}6f^45bz6K)U$(l1&#*6fk1765AOpw51 zoFC+n@6Iz>>|b-Ng(8kELhV;J_;e10k-y0y6SFw;_&8TyNP20eP{Ad{rFn(==Ww@$ z+HR#d^2qy-ksw7Jv~i_$m}TM67y}LRb0vh?5y|pGhtHVzLSGfWxP)t0*7j+o2C7M@ z$=*V~9$ta?IP-6sl5>4MF2fjn;|XDuj(aVTgCZkF?6J=SnAe`UEQ9Nmzs# z$?moJC)nl(YExAc#fV5!TaA>|N8Zsxo?znWXqrY{>bB3?K-}MVwHSoe&8nGqWEjos z+Yvn*kCZq}HYbJ@8P6NBFByNZJr$&UraM2Oj+AjhzG%XEWe)Kfp1)$IXgQckhHhDj z#BHACB~RKVb}vL-8cHfCA|N}Cnh<#ZHr9HRTRU|YI69slA{6sJ`%SZ@0rK{4S<4$z ztMT$jT@{^vYwsOyPz@x6VJ9dEB}cIP5gz#g6BL4_a^E9ss>k-Ffxxu);masDdjuAW z0bgQ9oIV@0GUt$;g0hHpiQ~DW?`m8wm^1@jZkHkUwu~W@3VY`$^Uy`56bfY40M0Hy z?y5#c=4u>>Myl0q^~O0T4&-Rb=6D(`mh%($8WX3&0&)|GBy&W*3Ucf(Gaqz*hvmIS zkBft2(Z_z^NUFWr_>+pnAj%6f5^A^KTC(5PwBJ6k-!Z@caeKe>e7_6ppj)Jdj^dz4 zEQFg!RY+K*!IEr`N0I%;UvZ36vyGT$l;9Q z;jF>ooZaEP_u)eL;o^1_tSMSnBuXyDxxL%=KGWz`JTk&0C(_U&l5y;?QxBzn4p9|w z$z625fc@Me#CwJAvL274HUCYHdQ@lpr>-3t#6Wj0|JhY`bfLK0J$jqBNFNxHBY93zJ_dU%e(QW&C-nQGU0bKbwR1>G> z{3x@o?^%p|b5LYj5Ypob@HPU(a>@-`6yh0sTx zf_f!<=}f{GEpr8TBNl(fXZ`AcGSMz97rNOaDUi`Q_EAsrkrZG0I))gJaLYSQ;cJgR zlSjt?f%H^E_=zGD!%qrO9x;1LH^|4RYnGa@8YSC1?rexO{;T^D?3GW|EL=H zMrC+fXk_U z&YokR10uZ@=lKiK^JCqOFu~$`DQ`aN?{*VVp73+M_ydP#@ABmrp}QNecD##uCS3;O zo!@%9ar%_1e)mxN%cb{vdExDI;S+J;n|kr4^un+C!hi50V4;S3?jqlw%(G4Mo7=8@=Fb+;H;lCDFMsB#QHOoD#Gl z04c%w2CM!{(%@dy%QtsJmrnjy>7`d0%~zR&S6K^Jleob-7gxC#Z@|#&d``cDZ*Q(Z z*F{HH1uw7jWv(x^u8Ul+OWyijBK`7m{Yq-DFIuj1C$0;=`CaT@=iU3268WD~-4s9Y z&zJFUe0KBUz~UQ{Bh?7L>1gd8H~mijL#LqDu%%_1o{+rlfv!R z@%CMg3SPSYU;<%+ZqeK@pn12LR0uSr|B-jV+#-8SaKLbBz~{k$e8v!P8rV<} zjnxek?-Fye>!y@0@cvlrZg|Ik4*S-UD%c$w@M$8Lv@Wn=Jn$<~@X*fP$BV%HX9(~m zV!iaw3^vv~GVrczYyv zzxpjGpYm4G4U;Gh{xLUb9~%M!UN7XcKW6Gd;8F?!PmulX((6F0sdhZ$nXfW=*h42996kmj_V{^lHS;nYgdReL8SKfs(&Di*UH$4`F8w<^T{Jj> z2GNx4)O&d>J}#a$`)@-DoVqnmS3=vP8KO#Ik+H$(BwTt(q?HjU9}}j?jRtxF z0u7?XXKI{pM1HQc0WSR*bUTbn46PR;-@w@csUM3ifE5-!(TlZm7zvV7_ z4kwVfWI_%w15(3S zMT-Ew;pAfRa<|~%WcGA3zqt7I%HBXwkPAqobMdloZ?6Nna(8D_egO^{na4nNnwyic z!%KZ2FApTIlau3s)OJZ}{_*h-AbZZu!)kA%```f=kVc2eJT}r-0y6c_pPK;jd0sva zATa*sjVF+o2eR!aCkK*}!aTejuRWcC@U^?gDjRLhC@<9mu&W%8Tpi$OGwe zAmk22?12qAjyH48Q_9%e5uS1An@F*z1-HARdI2CG0QNvxc>&-V0FDCi*Zev0p=$|-z9MjXkVHk3B4V^D9YTkl1Z^8QyGUcI$p>vP(pSF59~?{_Bh zfND97w#L1gGTlmxv9=HU3w73?bN*E=x4$|DRLgzq4#i{C>}dJ*eJGLl`FKa`@14m) zwOq}QZD;$7?_Yfz|JZ(UwALGa&-kpf5&W|@2$KOBaKI`hdySeNf&F?Im0j6-IGy+IdIVEA*9MX;#eO4_ ztE6lrimz#RBU*5P>wC=OdHe70#J0=6$4Z^=evgA;ac`pJDS(4XnWKC&L0x2TGf_*C zdn-xLz+o%d$gX@V#msweE7dZbdppf0#bG<$zNCCR!>MU+JJW4|dne0t-eD)(ce{Ki zC*XW!Mf9%(GWAPr;^-;V!s2}2}JZKmd z**|zcsmOcSIBW3g@WY~AgeO;cI8p$?fL#u7YLj0xEq7g>G%_bv+B49U-aO(7plbftB=gk=~qA1%c@@kbUp{a z2ALxGPKMZ0olb_iN~=yr_?i!ZYPmta-=mKgoPLjq?Nt39m%2FkJpse!Kb@4PbUvL@ z=Bz%QRu?@yozYU_KbzGvbUvFidRcuoZ{~A&wqO~-f4*pw>MWA&lvRDc?9_aC{>5#O z|6;{+!TI8=?@sl_YQV+);l;OLY=O%)1f|R6I+C;IawA6c=jC^llEBqwlA+7hR@%#& ztL-eGpI1A15dzn{MX4^=du63H*FUP7e_rp`4GP>GG%f&f_?DfTo1YyQKW~n@u^#|& zcuLn>AP!%9doubTaro0&L)W{r#ec=&?=IFN9{l+$4*%zBx3u=pwKgXTq;Z5tCUf(z zIQ&E=>GfZ6c;^hpzvA!(u>Aimarhh(CNfgCer}V84*DJc|HR>eYPtUwhaX%~f?mX* zFzY-n=1NWM2RJE;Q)ghGkK zqjnO%(=SR5@8X&xSP@%x>*hF>Z+s50)6@jGi*y;Ndhc-*_~clL2i zsnm|jgx~V-oXgSDCl|x_6G7L%b3p|5r206-AtSEoc;f7eWVoPE21Gt3oJ*ddAS^0v zI{zVa2~2ckO3tCNkcpt&c$aB9A>*`&^Oj3>D^hEs(X&|aUAg+psFGBX{*uRI<(fVt zGdb6%r7(gDtq9fG0-CcjWsM4*)REZ|iL-L8cNKc2s&f@4XB9^Os+RLRtF$DjG#XT$ zZyy17cxXyo)+Mw?<$^FXg+B?tF;hEx5QR6sz&D5NsCu$ zod+AG)qSW(g(a%;3M~!cp4F$!;n+R;yfp47BA$6yWv`^RJe_ggSf)|!X!v<~zU}-& z-Meb1mug>@@0ZV;TE?nfd_I3!y*_X5{`WY1>gSd16dOEKw||Sn^CyHK{(BsLSEJT% z;q&Tw+r`J@ceMdKYTvGxFFG&BYJ)C5fBSQN(FG!`3&vJoL!-UyhG^D>P>!x)Nv1jE z2iCcMWm?BI70U=Ob78K)i^NN8YG5#Ui6E+qfM#CyacR~^8IEpHv|siM#@5HYRR2!% z<#Ir5ygt@v^gF}N` z%K#Dig1`_cn2-;IhOyS@jJ~!MzWs*m6PjIM^k2nq+j z0r>s$@&w>_0Nw!;6>w00{@ew`Q2^lqP6yB%P)vaiWPsKIP6wbHAZVa|8K6afe{YZ1 zPCyGW(B}+ju0Y*!eM1#M&44Bfa4~?)|2VM#zyGxdJU0Q5AHaNo;{QSTf7l;@Xn^Ja z0eJv^0hR~&7r=Rd_W=q9pdJ8W0K)<32B;jMU;xbj!F+($0Sf+4*he6O0M7j%$Pb|I zKh*z!2i|`+004Xc#}e?rM1TL^e;E5d7!(qU2n&xuMn*-)yo-%PMS&BOl9SNV(lgTI zvvYFu@(T)!ic3n%$}1|Xs%vWN>KooSerRfLX>Dt-O6g3@{FK(w*FP{gG(7TobZmTL za%y^Jw!W*g=hNJmm9MMc*48(^Z*FbxG%utqW$ykwI{tO?`}FMm;MaSkcD}#c&f_kB<|G}>oHbZXo@?e_(_7N51j=U8VhNYSqLp~;i$h#KSNRveW<0Y3qhZmgGr`V5*tuy#75cRCm0z0O?g4-~QNtTC$v8o8LxSDP!3 zoxcH=pU@S7SHS(=`X7LGUDvPkI6YYT8(?pt7U&;s@wmpyTmAyr2TyXc8U^?M0$3Ma zZss5L!VfP7KmNt9ydg(rw|>`u@vBesZ{Cw*hqn`d@#|aLGq}FF$*X$I*|&f5YlU7x zqU)02-~5V%JR@o3_l~Xf&y11*JGL+Szjkb3I)NDlCKc#z z2Ly9qGy&He*f4=P`)6u_Ef<(VU=Dz>0~B&#K?N$qfmIop+J=T|V5V(tp99u8;GqLE z4annw=naVEz_0=mH!zxqhdaR946MO`IS$M#Fmr$g4pg=S+cKby1Nt_wLId76Fu~E$ zVZg`&yEM>H4j9}sGh;AW31Hs_W-&ZG80c{aHtMwWL_iha+*}ogNdOyWQ&Sx>G8C}a zfo&Y{tQ`yUfguK@a$u}qdpZ>t=K|vnoCkm>4x9~u=MEIl1H*0c+&C#I77)OJ(FZ(q zpd=ocV?czLGcoAz?*goFz>fxub)Y(3P>2`kYtPHi01DKFMFjy*95{i1GYq&60IJqC zT%C}S&j6|1C=|Z8_Z>K>00W&*fKy0H1UPJfg9K2*ft?vR$!crMfdd9m#Q`ha&`8_B zSQPNhfsS^-`}Xls^83^cNb9aORe;zIGtdEabx92s=_kC2iLs*M4>vdc0IM1h!^I?o zgdXt&K6q2JjZa&vjh!@bNzvKavb;P4nC5^m{!drBw6^*ay=R`yAAl-%pqf2od>oL+ z0sTDq^9Z1a1HI;EQ4zqZ4;bQznHfMK*Lv*+Sl)n~uBi7E(9!{U9Oz{SZ1IT+S3wa$ zpqD){Ne{5RfjV}ee_dQfKBO!JrY;4O;|JQ=<4`(4OZuzg!jMpPKo|#l+ySW^aLL!# zeftMqdAybfy54~%_<;NXT|2E;NC&_o&&e?cdhSn7g7y4;`*sXF*lb0 zL~_6=2kde{CvR)BwR-a$5Xlu3VL%JJ9oz=!l?U!Syiz3TMAg z*h6=$JoPVK+%*nM7%=q*2b6)1^~e#?vd780Zv;+>FaGIhhhloLz7 zEr~XHY2TPYaB_yH?`KMlL3ChNzd%V*BT zLgRbL7>b@Au^RMyE&@t(u|-MlxKkW4Nx-O1{8SE1k;H`k=fh)5IQD>&6%ryV*iUT* zLeZfg z;oi#Ef8k{->vf!*j2TbIwgYo)*yG3|oub~(RzMT9Ek-j_on#@iy!VntlhjOdNXsHA zLV(Q4xVa$D!}oS!A%q$F`P%>5v7JnGG$seo15R)ph1|(HS7c{4G z805#np(J{Z$FK}Ey2$}z6OengY%VStf{3Xo4+B39BG?CG1U{vb#blJ4!r8#Gs%zO` zpgL@vTg9ts*(6k(Y~8E*^0S>zL%sULBJL@gouoZVF8Qr5Pll}Hh+6GOcD2U8`+@{z zSq#k{5u@$GFi0ik>*$mym*sBvQHu1y|7k@Rwx~1oT-2;zUZ18B~%pp{XMW_ zpD)=b@+ae=tH{b?%+Qx?!Q`Bzp_W+EQ?|0G?)xv5u=p~jZZh{yvq?M!xjHi@^bh6V zU~eG7$|_%|8@<1{4)Q}+-yCUZePhP!Zi2b=N^9Yv70E&g(752W>lo!%q98cYIPnGs zw*csScq}1o&n;P77Q+!=-sL%6e$6$ks{ILy&dl4kmzHJC9lC?1pL70~a(;KwsS*a3 z4RA*tHlY`TBteTrY`r-|<&o&Jum{>=PQ-g}dSI|;1iqM*Oyo+9gO9*5u1s5xly6qB zWzvvw0k24ga1OA7ts%i!wY`iT+k;(@DfzdUQh6{E2#5o+MuHKKW`M$q$8j7Dp<+|U z5m*a_-R65ijMrcgNasJwIg8ePQI90N?kD;VFY@|vi#RUsCivHjo=9jxNfy2hE>`<< zIYm&|1K(~i;ZO)j3=#~J@5V-lPmU}1JcUEuz0hDUWIZ7uE(TZ>{~Old8(dHd!BTu9 z2pek_69~%&6@^w;0IMsji*%ccwj^Vv*8dTbP1Jt0!D?f6*1$fGiWC&DCM(+(EEU-}lYRUcLWhxuR<-4p1={7{<5ZoBGSL&$ zY>7}5mQV=_dY$@_PPv&cSoIw-2EN{!Topzh*mvr668dl|nE(t<7fcA!{=x~WTH^;n zPZ;?3N+e`?G!t_k7xOwh>^`9xA2Mdb)_Uhi*a&@=#-7OZ8Bwlk?>GbBYz$VnEd^ny zqHxF_vuGwe>Xnl~jiyiEV@syD%mY8u&5TA_@c6 zgZm=xY)%_w%{3(GRl$QR_<}g6aD|7cU?D*fQ5T-AX9Vs>2Y16*-r2I0k*J{hRWYLC z*@tXCsiNNA56FVj*^s$n<*4Z#5f)J!Sxj}H;AhqDy)U4g13PxHr^v(Cx>Z2!#0m$^ z854QS565gyXdXD4i4_`5NvLDefNO(cG5J!qCIKBw%QA}nS44M_u4w_*c^j7OQ}4lZ z)XvGQ4-w9h?^a|lVUQ@x7N)D8*R|Pn9@LCCYv?U8U$7L2i9pkzD`?AqWZUnumx<6_ zJ|~)r-x-Fpca{tIM@3LbH^y-WEYML&tczxn$!B*DCKXIRVj&AkiwCKTF$Gf;jTD}J zt@I)eX@|E^4X9}dDO3rIhpen&ViOla;<>H6acTyLhkrGDuUIb=ZstN;K);aWR*~}X z`w`4mAz48;3Ne1Y{tFFA{5!slCpT9UW9$!~YfNG>+4yv#Q-kp+%#9fNGB8y!K{)E5 zkjHCz;3rTJ@tRk#K+ziEi>h=U-bpZ?5lG-+cMK+p8-iM^yDAAY*cc<2BQ5VIgW7R0 zHrxEfTb_(5G`G_NR(=OnQ<|9!is~fkf)c_NIF7uVEJl#ph<(cSY~|r;>C>@zJv_^~ z>YxvP1i~huSq*H0$zV(_x5u$=c}o+q=Z&9=(Q%Ow5Y&DK{B|rvQ6^&%t<|f>hhR5^ z_I6EwIgX=m9Pip<)ilerp{L<>)(WZwF& zc#?jI7mP(`f+1FxEFUc3S)hw}AjhT5$dZSCxweumK?xbP)qIWkTRE51b#V(P-IZ0Y zw4KCzlE;;>yN+?8sEl4zLfiI*{zx`bmIO5M4Oymg6yQ4i4c(Oll9f;Q?&y4@AN8iy z|IhC{qCh8x+$4g_VLvbSkGqBw*YoXvYAPP!V${H}z$nl;8tiu8XX0k{rqijOQI)L0 zBe>7v@nzSu&Xd%MfTQC)aiuqMbd6eA9Z$Nh7AHE-ngAFVdBqu`~BT(Zqr=jDoRzgCS|bxGlj; zlprt)N@xTnybNalMa<0X7_ChV5(LrtLg~anQeZf#G8}^#&Tbz<$_3|ufLIqp$n4=v z+CubHq?DI%I^_`I^$=)$2>UM*rB9*4#396B1lKS4FbjenjKIxD#H@#kw}h74?!HiC|)g+7!QTf%POJWgCl5L!jWmnr{GA)C#1|e zk_aA&_6eEd3(dNO<{Clgz@+($d^)~SEBR4|5OM>t5GSq>xH6P3?Lp+ja9ibQ#!E(< zyohZ32$v!F7v_k%%V;S`4A~`oAwL3~7xVI0#QRIclrpr%3dx8DPBJ2iRu1F0q8&`8 z?G%fgHzIr8A0@c{j*U1f#wd1Wk(fk3DrzzIWn$C`7sK{ql*X^9GvCNFqv%+#=!}$T z^z~>UoZNpIjm{mDsSpDbi!et*$04+xRJs%PWNBiCcf#aLX|X5&7gJ~A4dolS{d+cM zjAiUQW8Vwesb(0AeF<4J_Pr!Tsb@swoh zyYZl*;BX{M88?iLlmNwJokB3|QL-kv*n6~;gYgp)Vd=?HVL7Pxy}10J+(j(H6w8Lf zp6&uDUKaTk%e|7nrUSH~X`zu&7R{Wqqs3Ro@)JvB<6ow*II!sQu&gRlQhSQSMk!?B zRHUYipko1uEGf}1*-pqc6EC1O##=Ue3!zqX1eHc=b?7C9aCy z*9^y!+Z(AzEv^lZUb}!w=4_-s9xIpAPcpJdei~1GCY(MmoR@SqW5BIq7nyO7S)7;E zlNw7a9}(v67D_GA2N_g;pS}zjPzrPmgZhYkhJ)mq#Kd6bSgHa_A3UZN@LTX`+e12o z)D^P5xRUkITcES;cFyrUypB<81UxRVbuigOA?x7q{tHF6y2!{CBSE*x!Ry*J)kMqeN$rfkm`jSU%o*!41f#< zQtN+Hc-5N0rh^#>o7U76kipoidvRt14*J1{EGzk=jZSx+*O68f`X(;U{ZzJvzdfWR zMT^S{!fn{jf3dwYO~aQbYkRy+8+O~90heKV+%61lJH^|~&3jcrv>o8u1;QF}-R(vy zI+sN596NGLu~u_W8RHp+dd>#sN?TriY#0048*Z6T@&AR_q-P+<#Hhfo2Zu7w9>rPyJ8wQQ-hPD@c9>3<*I7aVd@#;uFY+ui8Q~& zdjp2tA+#)|7V$ngeTY=;2|1K83aUtk%+1(7w^yhln zvK!S)9`!TTMmN!&&CeZ+ZhF;-+?;B>+x{vwy1U|~@O=n-C7k`ys0E`aH0!B;IqN2a zoBb|yu}d?x@5V32LkABT)U8Fq2_)` zqT}y@W`5xwgh7w3ySgE-ero+ytWyLh>F$X;A~z_IBShmvP8f9p=5TYKEIT;#0+K>w z^~UMJ>~-IF`m<;ZTwlJ=;-4f-@He&3hqfR55n@#vY(d+DSVA){lQd zLD^n2!~g_0q{N1rJ33`Q4ei#RU>G6Wymn1}w9KBC7988WDtDF+ea4zChjGZuzm_za zJKJNCfKdUUhn`2!N;ID}zrsg!RVRMmB{+1HasJ6Rpu@!W5m0rQShqd7=Dss(Y;?ko zLQ49^4nF!pF2uDOPF3rdwx4TGS1Qp3*&dlQqnN)DybraKJVp^to?Mw0B_YIhm1`fu zFx*F{`MnrL%y6q5>$Cu^Y_2T}di2v8c;_@4yyEkC7d}3i(ODugG5xct%V^@(Vpf;+ z3{QBux9D@<^vAXuS0_J=?kHMy%);9R`dgZ2xjxJuFPRz(pRQ1}9`v`a_&LokTw%0t z&7o`aykoL?VKNrYtsM!G=o5oFxOU*@oWkZDZdiT_$3)byPI(r;*tcU1P(^(&8sMv5 z_wVOQ#oMX_FZ+Wp>rzw9Ni)-7bY{EwzFnd&OIR=p_PTmMLI^`TyL_MFAcy^ECW$&=n zP>|Nu#PsYk^Xh;4>gnH!@l~4&Ina|A?mImdfEj zw?>;^sE$$;>m6Nl9zv8S1O8S#8gSPA?rgMq6|aQJea!uW0}xm)Q6Da8BTz3kmS#74 zSlj0{*j$e6+lAD-oCv_cDxFp*6Me42Fc=650}-Md3pJS3RrFtvpfzx~g>7)$|J$lQ zPO%b6y=^lD7%nhwf$pu^$yXDbg|*+0xo4MHA6sN|$n2#pzCga4;7EQl=_Vqa zD*rD+v2rE((^W5Y?t3?J$&Qyq|5#C$ot9lkWcGdUVLA~ zD{nLBA2&KLY`h+iKGu&zO!-&r+HWZ%gVgk8e#r|1GXlTc=fM9~?wRidZp7lepl9yZamoc8bDQ}M@ zP91vg+nZ}5@p?J>6Ut%ved6*$=6aItffM`7dC~2tzZ<{RHUf|Ki(727RIMjhK2Jrz z{qXu4P&t)xsys`A)+_}4h~3P;w|hRO|3ZLw;}o%!i8jwutF%+Adlab7$91_=`)c<+ zm{A|ef8UQL?ua++v=94OE}p#e*+I_MiC2L8Lbvz32&$+(#7iA615vN%KdVwWC3j|c z{GS~m7Q~^zg&hwF)~rDRQ(`tESGB3NTdOXYH_^_(=yT^NNp&R}o-rI1E zy$f;Q$%}j2S&1<9J^y20m|D9?%9qoe>#rida%619p04y5-PXLde%3bc&zmo6mv+IK zzA*F#$C-^YWuG@tIbsa~25&Y>?S4k}ejQWof1`5UQy6h%-@oJ-xXAMRY|A@eoh+lS zgQp1KK7?@tz(Z$|Li?g!wd^}wd0#TD^9qK3(J#l9WeB!=!^Y{1y#86UUU|RYV$6O2 z`;{42a1d6ky_+e7GkGe>L<%SS&stGVT$UVgLnQTxk6+u5HhuRooPe0BTWk%g_Y|B&-c z@#86CZaeC92wAr#qIUYB! zEvjmf<$Rz75iyPgB-ZiV3K^)u7d=+`251j_PYz=s3}dRy5k+fEHoe{oRGSwat8n-e zKNGWM+oB9qKntQB-3I6fH6`v49adoQp&?8O0g)bEMRHUgs6=Tx)TM^Hrh7Ot=VuZX zDJV_G*Zkj>4lqeirnE*{ARsObr0#3dr%61s_?#`{!!*_27=k;17h&R4OK5R8&7{T? zPA9R06bu9j;&yNKtQQ`fX9IeVNBcEGgI6kBq<1u+*koBpX+bvt0dJ!6+8cI3G3Mac zP31nmXuA-mO%E=Q!l_?jj~dkrbXVVe@ARZk zrqTDPhwU%;Vzv2cGsnw6?HSf=NUINAEkL^*;bD{sKDhNY9S|0jUX1(_3E{;WK zigJLQ!{zk)yp^)4f`fFpAO^yWALF8Az9g|8nO8z*O(mgKmr>5$#s|oG^5G<(O-CUU zkrx;r<2DN3HxdOwLNsR+*@Yq-OeB7_rQkYzcu;W+F6C$cA?JMcdP9;=veHhLFXfO1 z$T9B}t{|K;1THa5|IFK;b{$-4oBIEd^MiO?c(M)GL=US4#ten1urON?wKIkv6-D6=JJDpc`fSjA^TRIj_=ieY4Am=@nE?v_F zw+@i=0DUX>1LXYfV8Ef6o&)53y66!+P(4}S+V=oCA0Y&47W7yL>dcfpJwVRu^=(3L zGaWdiFsX!^$jSLJGW==!1SgU7NZ~ydZr%`R@Vv)1_5}ud@!~1L>oL@kq$P+2ojpnU zh-{?12J22p5DsBrPd&6EuA98M0Vgu%v;6X?j;^?nrwzUqOB02?FvjHVpiohkH zAfnR-;Xsm5R$ig5mXT0|r!2)Q^NN zPhwk1Y@PDdwJT)|B&#3~AIpP!E<{>u339k2M20tb0G7na=Ztg)HXFtwj`lD}Bwkt)gA>%G zk`M#2x5fin&$<0SA-QCSy`v<0En2Sns#8T#@R38h?UVL-MqIf}aiR0#y&RtA)d z*#NvkFwjw-j_@L}n2+3mkh%iDI)#_co?@B=d1bp?ZP3y%DaGlSlQD`!xK!j3qD1MA z5Z}$>q1xx|1nktRq)N#cH}RU46!xiU@%-eOlyC6wmae@0u3|eMxU$?<=Bf)7Mtznk zV05Y|lZ2C2!7xUJj?`WJ=>p=jk=&;Qa)?e#(BOcHa`a=NV?py%-1v?fwQ=OOwepi2 zW-(39H|CIS&Qx_45T}eu6-8@H%aHp8jg|nbKOX3T+u3f^4NuI%2oFk`BzUBb-+WC7 zI!Yx#xgnB-x<;Yc$eRPyFt2Y5bBxd7B^6Z z$rtXdy`5jS=egm0Tm&hPrHiwh%sI<9c7f5>;c>_idN%QF0u!qJ99AA~pfipS8gy0qh?=wQew?n7|m^lk1> zKKR-swu~Tvm||s?Jhe*Ny>5PV{_m6Mp5Z0Ee;Wxq1=r@@c&qPnzdZfYM1-5m`sR{) z&RBNA_mISVJV%Asg-wXves~H*>JkgX*pz-|OzSOnx`_Ba@l5;*Y!<74AtPgZ6aM{> zto>X?UtiU|aPQjIJlD3O9%#tfXv?LkW8e-LmiEKHcpoXOcB6VAW=MVt7yM}kTCP$=W%ecgOUds0bZGX7{Hviv?CmDVVb0eQri z&`l7%6@r4g`=R8>9D?xb5g9fyJ|N!wVEaU0kF>f3txs*O|IlXoa!8A7)1aaHt0ou7B;Sq z|5)1a1y$Jx_u0d&hcomPA=@mat_|^Q*cW;R=lt2vCb1Vn&HWSTu?g%6b>`1g#jbW_ zFr({6^V>%<{AFnV=6~JHu0fSbg&K23h`ox$eErd0(UB;^82TP@cxhC5VZ@_^7~gDG z_F%MVcC^B%x<0h&236UgP|?$du6ZzA@lmO$0YYCftAUa`4b19&m2Xg+7Nyb}e<|mR zlJB~Yfo)|zd`Z0lTLz8V?knAkc?@Y&DmP9Q-6t#2DBJpM%>?c%XRW#ksT~P7dmXYG z;p3hO>_zq}b)jR0bgRZ1Ws~x<`x#d6B2iimiM(`}>SN?+ox*tjSf%3lPl!0UP*mzf zhf2#<%Gx|GRvq8LKW?vll2LXozqLiFncu4U@*TBA4993cZN^EYy}kK?z8W)qN%hW8 z)mMCKOwE=EioJhrOT1)RjAsRFr;5uk+WFnTYh@qM~ulmc4LSt~r@!3v^ zAfNei0D!K{@7iorN1v1m0jqf$O&x;CK!O4qu0hSpExhs0{zrg;zV^wZGJ zhdE*n@8=%=Rf_vFeK>LB@H7+vUUldywUng(-e0{@sSvmVKmy3H)^$yq;Aock6qygS z99PVM#N9&DZvAY!MI$*vA{`YGmO`RPNM)3<49Y)cR^d#G|Sg>{sMTsm1PIq^@CcE&M1c6sR1Fwe6P9`0?+Fci8+ou4j?XdY2BJ$vzj-y*{g`@hdeZjf;INJ$yyDm^aZWNIA?=~RJUYFKuoM?YYl#l z6vV;$!Zq6>Q}fuX2GyN+gzos|y^t2=3PX@X3XtcW8G+h@!I{YBQAh@flh}YtIEuc^ zQ86)AZm)0t13T~jayIB^{y;W=MV*sn=j>^%3T8Yz`|$Rxp;akd$l2q_C}i|nin}u{ z)HxB^fnPQJ3?pwlX-$x{n88NGbfiV1a8W~tmEpX~vySA!N9ozLpgXNJ#h3lNcU>RT z{JPtp^n-J#PGNjwPE3a1W=Fo_%cG5{jU4F}N6o4-k#mWM5-iZdL}U}keA$*6gUBBA zQ}O}Q=0)WE)s`t5LY%eUHDeQPCl1_ZY#qhH=~tbnU?39xGPy(K;gK$!9@{6!t~(q? zK`?S~IxXZI<%~Evj92mpsdFd9nKz!Q$)G+7NNVE6`|`RAbhADA?n%Q`XR3QNk+qkJ$#L&w;;!&kI4HL4;0I%8`3w2$+k7C^CYE^+c=}u~PO8Udi0O$Fw^n4UN(q2otm{RI~z{_5b_J-fQ zdP3x;`+3x%mk-&NR0pmx#c-=yPatY~r0QfXwEe19pdV{%>UD_kJFg6RmU+2nBu)X( z2r5Ch}5$dQjT8uBwr>EHzH9Z?qS z&(uz;X=(R$uC)2xOPxB!#+g29Xf}S+tAC5MxRvfRyqcT@T7s!&W+kWp-8yVw{-x6= zgYfFU`g&P}hkdL4^BJS3_=3rjb?aEW#BHatmxt6;A9{R)o{UAs4GX?QYR#1e+(`8H z=&h2HN-YdF$}6BTUp=NQzIxc+7Ud)h8?kZ;dDX3FMfFWg1iUmbkO-jHk;@AQ(F#h?&f7U z9WF_@f4GU_Qm0+4M%Bf-OY?&K@5jXO8}4SAUM-ZJJi*-)$M;}?kN>`YXU}#W2Y*Lq zOP%^yH$-cFV|wLmaRYrdrx1BFJ2mq&y74;dXIMv%1lRq`b6a`H!Bc71^@h7oO_$JU zeHT9Ft3Mw*_KwUia3D<{wEtKcC>{G^&05=~R%eUmiaQ=ME9PQvC!dzp5biJPzB!e} zBfDUB4yA<8XJ*7P;BMJ0ecV+qg_7mdyp96)S=<4d%dA6j{=rF|mXy|>*1V1ZWIm2% z%$sAFw}DGKXZg^5m`$C|0Eu3<=Hl0<*?Ej`_eIHXvT#eWjIGOGbRgs}y{9cwX+Gw8gDmWQduwGqLLu8KojF+o%=~(Cz*5bVE|elM9rUuSl_q zpZN8u=8SmnwnN68jHCz)!XA{tZq537IiY2u9oe4rD>dTt= zjCK>is{+xu5x-|H-|8 zpuNEJdqG$Cf{XS-ZtR8L-3uGp3!mGISl>JSWA6;>kI1|AVfW;F;pc4aq!Tk>JoeT# z(vYUTf}n%~pBwCESST6`;lUj*wcZ`Zm<26g z|BD{87^R6}DmH+s=LwxRdSw>?}^%YCp<1f2S zZ$}2~61 zlXvw)bBh<}#rtmj$;+Z27}^%KrL0UxM}pXwZ+OgU|Gj>`nnMqWH$+bgzGJccH;ek) zOZ)qnba}+??}xkW8&&k}po)8mzqOSgr&Oz;LX8%mUMlNK5{7``3EGb{#GiaypWYe|-=J#WDesg13HAZEAWuT$Kkp zp$>u<4x&@p#YT_6X3p`#Vdmmck={|2og<4CF}72voEY*-cZ5ePTxq%tu$H3IhsV=#qiAZpHM|Bw89p(p_B8xJ_!Q&p2zQ9S}4)jdMMR*Zk@fGPU=tLR&cqz z7?;X>{p}IfHkTb6>W}1mw;r7eIPs>!+#8>bFnwvm{UJ%<?l~oJBw@a`{QL1&+Q?? zP%t%w;zwdA$DKGxsU#>evQH4=gkZ1-#yGJs5z?c}_SXPW31pwp?kX}3QCD|Bob3>L zQSywV4T&&2l?|wHipF)o>)%NR>`6Wl;CO1AVtRDP?Rs9T^=yzh{Gp;8-VaJ1BG^gT zD;3E7*GwI7c1{9i6S0AKNO+SY8!tq8<3@_KB_`j`F(kmsBo~j#wbVo@H08RxXXh95 z$hx9DGf+t!;>m7G*^FU*?uwKZw-cpd0<-VSzysHYoB}qIDn2v?4es)$zF=kZ%f-3k z-={p@aw^>kq4M8XvJ5GCHWX534ueA&C{|O}gBo6&$JBjZZjq0XknGTp8HbLl1awe@ z^;Ln=RN&{X)1mBrkpW8T)6AHcsmiMLD_JUPO`z(dT9tNQdh=~ZO_k|hA=Z!@m8~p& zeBB7APR^M4LxYBvJJ7c1<`V|5kCYr2t=POhDWDZHIaKJnl|Sdg!l*Q13MVNTOJYmOn1jE9m%ZI>|6?MSCX(An*G%Q-On)y$9A zU8m5}$hJflrAP=v(wHqWl|>C{4`Ej)0JyU~5=Vidw6N}CTyj{Pgt)jA10xX78^1pO zZ~4ok5|(8cQb`d4lYbDlcP5&EwLU1wvS+ni=Fn0%t1?7vD~s{F;*w$P`y7lf)2@r+%Qv61QSi&!#6iP+!N+mGe7{W;X=*^OogWaazC<()KX{0(R~&8+hg{c z;R!1;RX_jz=bfhb=!H*%bb3WP?)kueL-`qa9^arDHOCA<0+n<#$9;2Z%1u5(j(q}&y3ynug*E{(zi5&wHE?+MA z-J$GtuivO}-7XSVmE9)2%yD~>dwEaBm91cZj0&<7;cIfRgjD<^xi*>ad}DAp4sX13 zCo*cI_VODn)M)d1l|s!T!4V6%^Q*CH^L|aik@_I~D;q2_4UMd6mWM8tAFNnJ_S-|a zwH(|;-BLeHV+2KzIMlMfQ0dfMO*#(HD8vHAkrOFw0LOt?mH@*p**wv9hsjL`@gFHi zF?g#w1e40cwgP7(kU3>2NfP$4hOEdSX?6^mC5s2z1igAJEXsz7kGhI1A8yw%dsa2G z5H(vTk=zLX8S2WV`2y()NrJU|oBh=j>3R|_>rtOJ3`GMad;U`(GL)derkb;<1wAH* z{L!W`(>?11bhS5WU901#A@u8DU$y_&U;%dmKU;B`65b$vLBYCJEqlt^^5lZ!%2>FO zBIfg4S|*w> zE*-U-TUI^`E|4su9MwV9PiAR;gl(x2QF18ty8H7~5`WP*#9{pVCa0cYn_{B4I@q-I z{>=k_WR`fw&opYD*Lm+Y7;Uyk8P7&E5f})ENJ|Cg3JGk?H6ae(&*YnV9til~3eb*p zJl?GR&bF@S=@xOtJzz?_HW;5^OE@4!eyqt@6lj8avr(U3ek+-k(#TTmMNaG*{ zn}Y>9m)O#H88X~jmbE*qV*qX+#H13{iwiFA!2M?e36Hs-tjBnfZt_$lIo!u;k9*;@ zF6G!>agRzm_04oRLcCi#NH=Lg2k3nFwo+CzRF03nSmky4%aF$P&38=~5!s)poAX!A^~fx%NQ^Gpl8;=#5PE`>-zzINET1smm=tcmr9&uPp7$OPFLgVmQQ`?@iV}1 zZ$m^lSNJrJRT}(B$$Ni9Rj5bIh327tP@00=2-r>BI=#Z3NJ^cr$)bJ zO8jMneR}Y|u=WJJ&w*VKG*snxdgHq#Hl+qPxgG!EC0`;=#=JfiljHrPLh?esz^IpF zoUrF3?Xvx!k^^50lRArtNS06=;cqb#^LQ*X2WgXi$|a%vP;z-m#G98(bfOV<$%4dC zdV8sblvYAYb@ev)XL?Wa^N)QXnQt%s`$=M#FrVU1`e>8%1u>r+DS=lc;kD?N8x?S$ z3ZbkyJc9xnz*>e>>g?!&YXgm=ppj(spv2t>>q)>6#Sl0=$@oa&Sqj+GVl31T<{=sE z3B{aFjHl5Q;9AVSo%#aB5Urc*a23N;rz2^&iVly4EyB5aa-gC;Pn4@GX#`R{Cu1gE zzqafJ!MXT&oFp$fA*EjpCCdp(U*{kbp7rCCY$c0R+r-5XD|~c%N%&OF{_7PfM?Oi* z(r?^wtV_z*u`ys@b~*3bLM&V+YZB$TLJV2y(D3L_eGBqs@a2Bs zEVCwfLQuk~Le3IpbX^7?j$_S8W!uE@(B8@{NL971G+(NH%jg5GWkf~(WmU<;)GV+I zk>Zf8=UeMVNjZ1R$cNT|0J@HV7@L^b&Lxj6hqri6slf`;A#Qk_oBy29+Qo$DD)QdM z9iGx0Pg`5K^@|MrG~H@}gtuP4n6ygBs3nq4y(xcbyDMwS9v=F|&Ixg=z~1(L!vW$@bzlD<#1 zdOc4U3)<_LkG|vd%nA&dcE|e%ny;M*z+Lxue9!m6ucf87(o`NSzQD^KbTj-RY-BDB zJjON#DK!oxYq;X8Q=%7N#y1|tp$oWHOR z8rIu`NgPomay-3!tma&ef5fqJo6}g|LpR8|NSn~1v(RGo?~-Gw!I^UJ6GSF$nq<>( z>w(f`DN4(Zxxpz}@?P>Moh+rC1(KX?31@t(Gj?tO2Hr>Fy5%Nw%ChF5NDV~Th0#uA zR2??=bCUZ%d9J?`!+qqy(cyzMXXZmdfMUKe=Lmo91<$&6%F@-8@|r$!`K4Oo{D<%S@J6TMvSFpzLjSsFlCNx% z%3X3m!`n(QdvhVQ`8pg9e0i;ts|51vD$|67-rLG%v^vhBbUxOaHLW!?_S<0Vp`ayp zu!RR+ukD2QPfdi9kK%$qSZuUAdMER|Ylxzkx>)lCG7*h&DtPkE>HQ_zXTtp_^f+om zawV-PmT*&EF5|_gYx1R_xXI(=zv8|Bh0 zeu-x(3O@HlN4}SX;Oi^@ngX};nS_@1N~WyG7{r;M^|H<({OsscZaBYn)_m^P@@9Ca zfdxhSGXZl*p{wfGPllULl3?~45Nfqx$-@{;W9`DrV^n7ekoFMG^!XeTP zJ>i7B%nwzGgsZnTh!66s<^v)VnA5Pf51)6sVA#w{Igi7+j%;5Shg^2Lp5>Rlx4_60&zFxF07_=E=za~5x8r5y^rSdae@;FiUZG?GU zR4Oe}=uQUec#Gxk4&hI`>cuFv^jlzY+jb)oZ=_))Y>qh+83HKEmu)qT1V-n{ zMln?67Wcgq+>zRoZmZqpq=)==albj89%*)R@G`sOTuj1 zn_tnwII|G)#t!81riK<^zr*eKQ!lFndHk-q=fiuc=u(0L^K)UO7_e7ZpW%^?uJq-+ffQi_Lk9g*KOGE)$th7q0H{utnb0T1Qdm-q%1FYkxi1`T*ybI&->r3CVOd&Q%O2aN5zJa6EA5m$!^XUOTn;pk8xLj<{ zVBZ#j92a+$DO1Tl5L~BOhC9@{n_qn;MLP%NcqD`p`0LAY8Ke$ZNpG0qnDH`>?!sh| znaIrFZ!tgEtnu@+M-=7{cIRPF)?1V9JGVKt@NgkikJwSJ1F$7F z6U%$`i#e7JL~48NwX@xCKKIC0ZPi~*zYdc&Gq23qCquVC9US#JSvT{r7b<3Kn$*8D zEUkQH?^OiJR36r^S~8&EC?D7}?IDKooEN_>gk>CTzUsy|zU_%dCwClS8eZD}d2M|x zo3|%NaNjon_os40!-)I&#GZSH4SO(2rEe#@MX#nM#k&}-SZH+5>X-NH{;(ay@syK= zf~6?45b;Q|ZW(gW>Vber1b%}uD9Jid^g=ivHpENh>=_)kOK_pVKmvm!VU=l~a2avDYG-0*WW4InSsZSx%4qZpZ<^|*O{Gqu1YELR(u|5ezPt~$ zL0OL_JiFUfVerzH@OSn+{E4~OobJQH;}3(T@RG#jBGHj2CP}%G?~snnY4A=$zVySf-$zG+Oy7KYn6dw7QpMIq-58-4F<{=iCTY89$LxJ)_m3qz?U&cF z_4B>!MMxPML$ZSSe*NS6k$quyM;E7mAMW;kdi3vD=w%n9rq+SptygEJ-u8a}CIt7y z=VUWJvp(83ZxrC8oaDUo1r4^jm_pP4ke8LenLpb7;`)Vo*@e)5l<{i!3^R*c;>Q){ zSwdg27$cqX=x5am);?NJ>U(re|M$qFKi_Wudiv<^iQbX7%)R4yv0%!BkH>KU zqnAy>C$e(OJ9TIKm|W$OGRxOY0!@)R7dJH4Ee9xgcS zGn}uV7id$ad-nZoPhOB+)$s!lph14HL#=s^yz{;MkP|oTs?7=v3YekJH&3<)KEGEG zcJh{YUkblrVYu6!pl8>e?-xdR+&!~ATwqvq+Ux%LukWAVFFND>=n8~Yz^FLVXW;5V zius`Utl!8rDf2?3lBj^kMH)db9+Z6Z)vtO7=TIkWh0vrf)ugzUk`879*e#`&A+4b$ z&0Yg3uI@S!O@_pzK-%x`eQ#VNM63ShadV?(iRIbKiG#GVo-KDXi6KF=ph=2JthpNv zeJS#MQyow)+2HdZwf=)ICC%J*(_kBYJMJeI$35e3}JfZ@)o&_-4i@Mc4%+ zH3C1)cFr11WMC-}+dPfyEaqY%I7*%DMvBfT$=)`N2g9HUnbtHs$#s2vg3e*_>W*C! zRNQIsxC52PRF7YL^qBzKM$yrjSA;ZEnS^0bw=#b55v5X{9HgCdw78poOsS4KmTAT` z%%1ReCtD?x5GTlca1lHUgdlYL`VRv#FYwE8eo<{=UXwSS{~3;*3%!-8=xTDmLdUaM zGho(@g!q1ECjWFyut$m6pBMe-;tg~J>(|5;i6J2unCGh##6!6?3Bo^Zml%PpZLXtK|2xIauWvqSi0d+gAaGVv5!SsvMP#x zq-qM3h2P*XuFc}zK=#oGILw20#)Bqe>9Vl6<*-EfU3Z6!sy7#~U99wlkJQ*KN;K!g zUf)l{2V;0xZCmUwY|yLAuYC_(A)YhMybH|5sMPX89B{|7-uIn*dx&=aEvn|#J4KLP z5_mQ8iqUDx9)kYm5m%a*Or6d70_=l!1;vEdXzHV23Z3uo?_bGTZ?W%qYkD)|Onkd? z3;qcOb!{qbOKr-O|IRAX{1Cy2pAxOYZQjkfD&>Fq*@<)>_!OeJU>E`g6r7G(_C@3p zrh8*+Kql`!|anZt41rSOw1OX#5J(Z2sH4=RPE02W* zNy75eU_WB-AldA{LQ$i8m7nvwy-^GA%{J6wZq_&os@=De!i8^3N^c`ylYr&5@cg>x6qgXS!@+PkG=3G#)BH z%5a4aL!O5Jj2)ZIoI?l$5Cco{I^QGS|ctRc8vBNHY6kbR&4Is|8Ed}SreM@w-i zH9$Z&4)f<@QD>{R5;@4jh9led(`Cvf2cR)kIHPpSHyofbrTz4UXvujOK`EukmOI1FBrJj|$m! z=$QYgRK{so8jJVO>GQ5mt<44J!x#QEbq!&h4hNflI`!UQ?un_uX!XmR!GBPsK{RD;(^?`=*d}id+c~j zJH-eB^rtYgT{_hYNX92P1x|)4wLpkV169n#fFUym0609>_UbQCciQo0Sj9)p8~cmu z$4*nDJ+YEpKYNIuMlAIo6ArJnS}>O6AKWS8EjU?hOw;oqZ5(z8htgJ1Gl z$?wF!L}h=He+^vk;ug1BpdzxwLqasZ!pmnex&AF8ZZT$9bI;Rx{WqXkJv`W>(peYx zN6W$D4dQu+!;khyz8JkkN5#IrLHY4JWmF!H{gIfz@pCBc-#DVph_d-$y_dBYmvk62 ziB9_VNPw|%^?3HjAiicO_=?Nsa16YrMy!P&Vz5G&xt>HEf0GC~5K#={AP>n6-IEZh zwpsZpH(PQSazzMEW`P^GO_2a|(CRh|X?-t9N@PqF*aK*44}8MS2m@EMFj*TsH${UA zQ&B9RJnP75nn~KOvL3RnKXTPr5WXy|R95(s!{zlgxZFFoWEh-|k1qlUA{GW2oG>0!pof!<+vdT3X1(#mGbQr4rHS)r0?PrxVtr_H_?_$i zcGS2+&^+fLluigmBm+h}SmId49NTRLlBaQOsAFqsUv#ESSd38!Dr$@##J0jI7l><^ zVng||!ok51Cd35s4Jplwrt(4n#@u+9r~hO|8`hHB$Wa6StpPq~2OPJ(S=4LQ$yl}| z7|EVDZyUyx?B_ni#p4{=zy>98uCV7Qao@KELK;$S4%lFBDN;ME!a=&>@!qf<==gf{ z9`~aM_E?5JyA)JJgD3(aiRreB>3{kswjz49h57H=#IPlh8&V@Y>r5fx-k8u`aIw=# zX&VhvKN1n}CDb@TtLJi;WB(YpL5a0oa1y(!e9P=Dsb(CYlCTn_F&3({8jnmnPDcMW z%cUo4W`M1i0TW|DZUYdxBsKgQysW}9p?XX z_}lF-QELR2K_wqY`TEi?<3Fnr| z&sFlu!;6hQACAuZ zpUU^~DVJPTgE|FA!J44IMy)|LbhXMZwZMGQ8pz-p+iJSl*F6z z_4)pG{{i>ox~|7-JYV-kT05{$nN=HXRlhTyb$4hjJv>7U&by$!5KOYNaE61+3@n!c z2P(`RpmU{ep6$fzYqJFt3{;^}&V0UUmdO^`19oP<+P55)#i-V{Sq z4FeQRXsA#q1F&WRC7W`ydu?1MxKBtS)S-Dt!8XWmK(&(L%T41qEo+TTQtQ>$Tv%ZN z+N-`;`lfKBi6#<&1D#-Hmcp?lmTCjQbS~6}RHu}F-}KjIjvlY3+F3crTWNMMh)g)T?d?@Tydi#Y=3E1N`rp&%510Q3rW4dR*m8Z*v5TnGa+=l zJxC?T$Yvh)*vKhx7}Z->h30wtq-!{kV{a4?E^z)3jkzjRlHhG2a#c6- z>WPBMV=9Xj&rb8oS`DmPXt*H^RWu^rzc=XO-WFQUE?`4Pj4Mx8#M{G{i+ntC|5H)&KCFTn44L4PeTnAsrKLUYW z?xXfVEj#d(4S1I43B@(+jM`uR5Q`FYDsl{L`G7yectXO$+23Qi-b@-kb+>?-+q#ZCf*k_IlJ!g($yYI*XhSB z$k6)Gy%BA;vgXiXy<43_E7TosGaJyNK-X~@i%4~+8I2^coe$+D7( zV^{)+obcVwL<>1&?WAboo&DcIkdR}rW|X~ppivRw1}_-=oC7B+u?UdOQK1U7gSnRG zy>vOsjnTGePi!M@;;u#uSa*cO9;S8NPli>f#dU|vyh`jv69x3rCB8>+9wcHa9(Z)L z2dhS1I1(sj4ZZ(8L)9ylUN8gZl|nz5l4Yf(U4X@L0`IzWq2&834^uAnV9`Ca8XRyF zJtUOsgGo{tFv%UQAw4+q;?;XdOMEC_Ah6c;Fdz!+(vyBh>viep2R?YV=dhxTNjxpD z6bg(={4cNoMh1ONb$^;rH2G&!xEpSEcvb9JfCCHW03i~xu$I|NW~%CeFX}ij$+0HpHAIH->Gd8{D7raFGkQLCG^O`ZqgY?|2CG4C-bhwxkHg4Tf z|5`ekm%nCo83JRt6koRV^aiBR_5@viY1^`Wow}Rsa^9QL`f32CYFb zHhNsECR|}QTuQ?aek|V-$hU?cDKCBgWjxa22wO)C(=Fb8jeNU+|q4JC#+(b{LT`z1F`)<~{K)WAPxxavI z*C>ATMraLKa{KKoZ2}3 z6FXGSGv;~x%nQiC!0Krj-i>{1zlF`lJz-T7<#57Y`$SKWr2C4%Y_7xmy@?i2i8fE2 zIf;UfkubW!u3N#lgkI730|qF-Ff|OJzD&S?!LqV)pJ&vcB&hcJ^vg z8S)7TS1cG?SS+Dt)bm_`a-rc2NrcGaouZdM#JN4Yt^%JJ0y9w&z63CvK`#bOA3+8w zQNZGq;nYOf$Q`3Qghgju$nkgo7Q2Olz7O|GX4_TD zb%7`IxRc!;_hru2FJqxZ}7;+Nli zUyu7YX!L%Tl>Fo$EOf^5G6KIBoWp5WSDFZd(ihh%`Jx`(*}i`9ZkNk}OzAJTd)Tn@ zXT-ak3+nf7bb~c0U}=KKT1(#aza_K3?>YtP=nN3pI>zv-O0PS+M(0fiy{p)iXUmj& z1*`!L5$ucOO!-ti86yB~Ac4Sy^Q?kGH=1A#By#e=;n600p672&4g}h14T=EKB4SPv z`14s1_A^7OlK?gzXGBXY_?#sa1i&HJ{@2DY*Gu9ne=?)4d%h|T1n>AWfdukWz%<>G zg4UG83m_7mE0$0_S;$8t4x$RBS|p=K6hJ z>HR6Vl9t@!yJY5!pGu(TW;$3<@c%Gm{E&{Kw-+#2hk=Z|d!~FC7}puWzcy)$|C&&w z8}o<5fRg;fiSsrMnMdGPoU$xp4NFa-+}E4FXBWtGOo4z`8LBi3BQ$>del`|56L{ii z#^RhX~y?u5v2UqV4=?zMvSZH4($NvdOAMWgAk`w9ThV6twb&S zc8Gof=$$SNO<4W{0nl1J7Af(1Qm|1PTz@2H;#W+54fkE%3#eT-)ivg?$gnTq;Gd_u zRR=zGe(%GF(vUJq68z7thF^Ybv-)s_j;W5ED%n^-(J2h<;Ky)RH*TCce-!OJ?4fIj zdLQH0SVt7a_%&aBB|xFw@H}y=(!$r*bWam6iRXVREtG7ZVtN8HeX=-yBq#)X&vuIL(Cn*H-!m>v)lWEs{)hZvz8aX-(aET4S~J0 zxKge7(&s%()zk}9(O)tyGTd6rwz9mnp68Kq>uceSsaqSRXZILlHY*-j#(b+T z%ZS;kZ<&hOZhpZKyVE{x8TwR;Z9+4xJB`nWw{(X;K*l;dKn7rA24$N6ejP!3Ki@w6$<99r2_O!Y z-PqpjqOBc)+m=R_%!kJ8g68PPQ6yQ7Lg@wHj0yCdbF~8A)P-wmFTTn)G zk<<%CP(aJ0WkpK)ZB6$X?+OZg7CA*wPM*XexuIAu7lbZ@XoI9B2|!uazAPx;^Vs7S zL_8oFyjelt`wOZ-*;aRK)%mCR63dC$_Y{zIsFyt_js}V!IQuIE%MD`y6}17*!M!Y9wx5|%J)@{S4u}H? zZx10?^6n2CsSdtz2iN5?2*|;VUWH(bSS}5TrZgG~{?y4l9dS5CjOaAA{cm#K5ll{E zJ`jkhTEtn{No4BA2-6*I2{IVX*N|Xu?x3>-GvrM2EVs~dR|74N)x_of&1UZf>{P3Y zZ4efOg@aBdK}U-7P(hwz_6e`=3>*`(**3q~5$b zQlf7EiLYVMrkn+>k4i?rt|=3Y3c5kJX#@Bf9z@={*x2)zN8!0V5NZJg@cmDj;Q z1~@orhCuV247$B_K7l4^a*JvWqPHFZArX=nJBUuh3M#db=!}x|`Ud`C*kvY+kOE8w~%!k^$Qi`+eI3 zLQj}U&3)2CB)6OrYx zja7{>2xWprfB`AiemOv4!WhKN0nosKd#?Bz&=EUDm8aabq7WaKQx3*hLmd6NuQZFx zRSB-QCMJWu;z-e0nCw1L2uIVP)jceno`I9D02L)rU&O6dKDeMoz+MrCLPz5P^a{EN zsS8MuTI?r#-*H&w-s?}jV5_k{@vFVy`K0TLLTAipt?gSu$HQW91d-`;F+L8eo&?+_ zQG*x~Xu#yNl_>MtX&{J0KxA3sv96b_EGrj4QfUL^)h(Ah`-1$~Fw?QJT|H&*{kqP11Wzp{0Qv>-0AldR)~=QX zCiho92mx zu6v5?j)zeLH20(4# z*W}RTk(&q`qWJ4%tY^B1(e*KLrwb$wia1-&PqBMo5WBUv3dTkwnmPVMd``YOe`Gq} z%Kb?-5wa1>8;%SxI(@Gz+8EDVwC91`K#S)`0Uk7>$bL2?3Qx(3s<(vS?6wEeQ;|iOHlf zCWEZ@;3Keem>$}j4AaMgapdIrP2SjfR$1DI3Z@UaIe_DiGuB8|0EEvLughj6>FSYP zP-GAr4%8~bB18fE^D@@V{=_7F^#3m|#*hsvgC^`3`uzaO5DQG-LWCDf%L9KyRGjf=!w$gojpu2ht|2vMT&x^LAcj5vjZo_tx}=JV_bD1@dBkY-&Rbx6o*3 zZyjLbpJSR^iQgB;&SQkZ`-SY7qE?4OfXuJF&jOKWwU4`%@{LzHOb9g^VVjv&bj#7N zyws^SeBQVCX}4WmnBu!N!bA1KTqGGpUrHnA!?S@NAh!cEO_+ows4(g|tbq zEzFs-=r~h^Zk6ok0R(Hv^)S&mUZn^VW6__-sn};_LS_|w@5=dODkOi&^BrQ$ZeBjk zt`L!|R5YtRZ@L$ZDj6~>e#X%L0q&?iD_54R(l@K>K~$>!r|8`gY42c!cdD|Yd#uP+ z^_IC(d{$LZT*s2@@s+X1Zd;E%=&C&>tG&&teXdoXuXY90S6?5i4%(`|L01zhS##5@ zCgNI6RBFww`kL6Wnmb!H_vmWlBx~cjR6GGx@)+6vqx64x=>3ni%$yY}cJK@hxnOFo z5f!m5;iqCldti-(38HHD=#gJ&dhzwWA!l^-A4RkFP=RuC^7XZr%ncrj4GCM-J_Mkr zu-10$g1t5H!UafZO~cXx7xx;p328oFbQBlBh+KDO%N#a?ppXSS@qq8lg)iRlnh?4% zJTOYG5BkY4GJ^s$>$V>0Jddezanb+I)%;Ylw!6L|D^!x$msBabG^MB1gUa0!a`dy8-T4RH)mO=0 zk}ZhLMmFyj6KuQMY74-f9JJa(Gv2Z+4{*!Ty`q?Y_H3Ge*1UmfqdsfLhta{Uo7v)< zTgKY1e`&LM{X}TI+J{QtNjx)JK6YdQ{ zuP4TK_Z@cJa%2YK;ki_r38E=LfZw&Itu*V1p-0Tr6;wIcaHZ-Z=;Ff1a|KR@IkSr9XsG*O{;46h5-R|q5WBAMTlz*Uc{RB}pM59eHo~y@g9Db1i>-Ft!bABP>py1jz6n5^wk2!XM(bzqi2f9j2ZQ)%wE4t&OTMPX>`@kpLq;n|#Jv`6k;^ksS9 z+@wf5c+NbdiWkg*uV&!I+7_pda4LurA;@< zXLKU~f=HlGkw!tY1}m-U+i}QVJism$1EC<{)=2ggi&9}jv&Pba=P&RiwrCmm=`tuZp{ETwnRNEl zS1>Z8;wALI;ub(=X3)M7ev)|j1_hr%V6$i&$#h!uK!-I&iyNTefp$4IeJKPp20n{N zN4c+7Rt?;*3I4f&NWG0lW`3Rd@*N$gffJ? zwf{*6rZT6Xp;KeythetlU@`FDnGI3jMOO9@&(2RB9QqUGDOA4yWhnDgxz{i+EQI<;S}VHY82Zz z%R@XcE{9Gf(^ZDB^-dxie|~!E%8dJqxr+xzEYO3K3?(^(L)vKKM3?n_dbk`td~3Wm zdCs|;(7IF@+xU!TGqvryU(iyJ-G2tWGRr;NiM*phTm@%OLV`TP_K-8yj8h?~`74az zxOoIX4|y|;upSmEdj4w|_*XD01D^n6Ecu)v!W%|dmDJ&B>1%;tP;eY0HtuaV6(c;+ zu?Q>|0PEJlDC{Ily9J|4dFxv|tECRTjqE!1?<~^^rr;EHM-N$=z69T+zoJW*Eu9D< zw|2?(@&{C{^EQ8)RT7 zj&z?|rbmske529=d+ERxbM&WlU_&lM``=khBA#ylN`EqL^(vC-;dLnL?_iU4e*%`# zda+$)AMv8F4(j=FeVez%9mv@mbQ4~y`;NKFz|H;rk}!oTGKVmApd)|b+Whxq0p3~hM{e+m*jp*DrzKbTRCeR z*18ROvpqq_r0fAihWy&LXC7`odk-n^+T6vAS|J?fm(-tH*DB(9$Zy@*Sq%0sXt2JG-J&OS$Tkkvg%_{c~JJ6$iYV?x@Wpna}b4 z%dpQIR>_;REqkU3eM{2lez`ud!0=D$pD`uRJ>@Z{O@JDg{ zk0+|k>a0EG$B$P!N55~J%|Wa-ubP}y_C}>Mq5&v_u+t1xH-VN__Uio1iarS=Vp-+% zX4NpAQ#p8TUf%lx6w!{dV}E;I)@y_@IkX= zY{`WOGz~1`gf+aH9?T&~w_6uK4XVw5%5)ST@F4C%zJ>w^MOv@+a$O#ZI(r=?9uB%y6Qkrr$A1pUVy+S5C(o&HlWdwW@7jw!nxWF-uRoxNzGw3UfY<1969qK&gLeK zr2@qg59q`5Fi2kjJ?H{|G8ZBKr!nXaG(c$4;?EB5V;^W|SLXK7jg;Ydp^K9|-M_x} zJVmk;QlJ!}vqsD~lmD zeNnm43yiPMgto7XR6*O5FNWN{_4RQUKv)y;$G6SsagSZ8mxzD*Ew0W}31c&40OuOI zZ=iy}7g^=Mt!ii)u?!!{D+$xOrWYeRrDd@G67zENF9*|!2Mo^6A~8mgA<78+&j zGPMV3@Si{r$Xli3->3KCbHSRsnff_ehMht=J?lJwZOV;bXdYZ%9+Xmg`&Ccm!R(Ql z@^8B{J6rn*dk34zq-u9y=mwVTuLp4bceNtredgAiZLuo>M58CSh@HwcRVv~2SgZW7 z!v$jw=HZ3f{B|KE2mK~Us*MhtW@J!whs}kTCc44cD73?p4buIMRy`6a2Y=)*s{4v# zp!ugzr|mpiIN!<6({Bv)jCKO>YKP)IApiYU#m`cB2p1eI3$A9HOWMLXaTNnFkAT}u z;+;16S&1llE6nkeQb~Dy_ArMV!e;f|}t0s6{8g}z%9+h_KT9q(hVH}@VstE7P>3=0!)$9*lP^GG!P0H&!I6OKTPz2ZD` zn$y)^^SVE5s$ZQaVzL-okjf_SX2#i-8DVhu`lr%oee*C*OqNuE)QC_K1cKe3_*S%BH`_KPQ z)?W$zzW(2K*V*0EU#d6aZ{7ABDvwM^;9)tAyYO|t;c`$d-NhpiNV^SYHBoN+tAQkQ z7b`1-H{kNtGZB7Lejg()%wJV&An&9nl$73@AU4FOH(^bCv2`yRZfzrPvQNK(5k6yX z#2Y<2=&Ge1n-Fri#150uGx(*3()o7c$y{<|AZ}!niVQGT2^2tk00_`@^lDPR9!acl z)tU3TiD+$TzJ#E#GQu38Y8P6g zY-=?$Hq*d}Bu}^aE%ZJz1u7Rj@LGh)hV-rOov8e=sddujoXUg>{-E{rTbY-0V~f`$ zZS4DxC~tE+s(fUEZjIj$q_8je8*7$kVO`p*S6@>ny+f#u|-IdZSfajKlRC5mf_X5CEHj1G?$JoqhHyU{yMAj)Bb+T z>h@RLvXeExi+_);2yiioAc40Z z{83;f(g=G7lwLJ4on|+zskW=PeSA&MQIZ&ca30~z2Qk*pBo)R$1eEr^8IaI%g%to} z^=j!Krt=Lr>E9&kLn+g5F80sA+PBm{-_m`DgPEY$Xu*2}PUBoz5(oh5s0M+EQr_?U z{@N7!d)DnpH^tmd=)%#6;a&b((bKEq z#tT}k4hRGk3wasL5w^N;!y;mjn1=u{>saFqozAove#6Kxu*u6CqxH}aD1199Yw5v| zpLX$M=ZBYLw<6m8+^p5ru9@Y8m80%#CR=j~obxSd*)rF$f@?5FJeX~&HJ;8@kUgvd z5qtbb$H)rX1yM@^{IMnKv+Bu_Y&lb>i&Rm~9!gY1XS`yXzw3rZZ>kD{FB}JwVPAWa zWrSc0n<0u?uh6mYL&Of{N62kBz)Bp#);Ng}Ll8hcS&FX4+Hc1l*xoaKy%~{g)VIdv z1K_RuBNzVdKL{2!hO4jw0LQ;1 zHLG`^&$6m?!*2V|-p?;@vUQ!j((XKqN_Jgi&gjBn0q8m2Sm5ZeuD`c~Xt;>O@{=gq zBV;fJy(qvvPa`&xQ>=xcfYq@vZ*HFdln*C|@%bl%fS?Xbpetq>K z{JQK=3OEU=xk&$Q5W2=f%SsUt^s6=jqOkzSVr-0)%`?UZ`rS66qt!cXKMl0ji(MRl z?7E2EUg71sq23KNqcA7$SOtlO$g2o(0;xud36MfiU}0kU7ol=c`IM~@~jbVEe3V0IF~f#pzUCd4{{8TSa-__959)&5IzqN%bO zFZmuwb!}y8?4RJ!T4L_D;3O&CSZ0;|vA%>Ez?^)3Rgg+!FZ@Yu`M8;awALzGm1H0( zE`0<6I4R($g?3GDpn;Oni*vr7BcxRCv`sb=*9~^Q7G2ec-J5<4%U(e=RPEbjl2|8gD2<> zYVa87Ne_jc>1pem8yLD8T+h}wx@};RZeUt$VAg1G>A8XVgn`APf#r^Y)v19s($I#- z@Upa_t(KvkxuLzQp+lgd<84EybVKK2LzhOwJ$i`$h+(sObIk&S{5!>okJ49ojJ!^{ zz;!9_t}yC|6ZA4$N(sph{)rLR%8b%|?#NfykdHm2je?;syl;0Nwk9%~!u)uE^94EO zk*2`(`iYN5y<@L}(~ZSXUtKk4R6TdMC{3kmufZm-KVRebT+_oViALoZ#}73t%qc}ao;$EY|C@{NOl+Jr{W zgK5vaS~DK9e0_%6@S@+$RyH=*D`_kgeD=)oy0U}!GmGq(C0Zs`;nk5df`zp-crZZ@ z4fnL+1{IiG3`@%2NeRS{xmzc1awGZ{xKo`{b=649t&nT-#C#;d7s2Bf3i*%%R?TPg zJBGTWf8HC(L4+Tb_ zu*%erxq*NXxfIH?R6rrm6Exmxke4zKd8kB+Me=B7VwLCBvvq%%&^-*a?QTxNMU+Nm~Irh;TG4rrcR)g}qGn{f_DaRyXlH;xQD99WnPJ%0oL zGXT4z?<9Y+DRhV6JcYmiJ2xeM~j5F%q^`%EUo+A8c9r8b>bYB zbmZ-Ao%<>k$lQISj51^BII`K(Hr7&clI!>EM@JKJ88k@W679BU2D76Rr!6 zP(=Lmo+O#)<`;j{;*{yw>T})a;c05d63Qf#@6cs3G9couxld}ZUApB`FYUFN=f5uL zo(^VrUbYO?s2Q`sOlm5L*n8b{?wl0*Wk6eKk&^45@@T}i2z{xmkChvhS}vYi*@|!% z2lS$02{W*2r}sp0jF~dHx;80=m%t`LIIZdsCyfLK&9w|`Hfx)8^evXJIfNy?M$3FU z|9&$!->JRCANJ0@X7{#=`w0eDOIu#g^#lA# z&`R^DTRvs#lv2@QT6DH#u93*y(>8b7$^Bd&5A`Ma1inf{BpTge3#=t>Ubj2{M}rhWAMz68PpB0h`eGocQjeeqQt5V~vp*xk?_hZQNjUkhfWI zg(TgmG##z%U}5YjG-zwpjA7k4!4bz))wlp0RaKj^`8Z@4*jCWmnbj!=`?&ZT{96(6 zh%w6nueMFhGx&P)`FhFvdh7UJweqF0r;YZLIeGR;}2W%>Uqxgj#0*p`Dl2&R+`+4i_sVKNuZ)X{63Yz3+%#Cf#YS zo)~_7*HS4jOd_8PQBWaKG$>KBDxr3pMCPh@986V+euZV9Z>#p8365mM$VM<9Tl9FUG(G+| zSvM5Eq7y)Cs8dXmO_c2`0SNZ_wV&U&s@b+@ zg|6#YUu!kGopDna%nv0b3d&}PaKDROG8wPiZmW-c6_ZGkbUso zHXvFl;B<6+u>ac)ZN?mtow}*&g5aIZ_8p{Fu0*=TTky5d(X#KkNFP$0Qu1X!)i)i= z%hI9&7rEv@7THyWW{qX*N03K7T%T%f*WNLGuBP`iJKqWAp3hq=mMCHx|B+Hk<&V4&IMYUmHk&gHW<9+jXd+hynHl?=TjTsNgI4# z&km-#_x1g4%MaDgdOK&D-mvRG*zu#Xo3bT+5J!Eq1IRU|xr_{0aYaIC=T;K3OSD_s6eG>{sk~!_7SUjQAt2%w*NM?v;;zq`YXZYr5@ z|0d=?G3!;j*Xxwh`uy;0fX?qxNn++djiVn7QNNoGa~ZC0 z^GOJ=9>4jUQ=l4Ey0d?+3U@yuro-(I(edc9qxOv^93An$sIiRr6(4UEzxbzNNH7q6$m4|=%a_g? zcqhmD#!2k=m5Z_c@mHOaW17$2GL&d6mR{QwjY(DgFWoTaO3Q0zhc7uYC&Dcu6OLim zky>wZ{eJC-#7*2B`}0xmAg1v1uhEunwEJ4P%$1I)o$v4Ouz1{g`uSFuN9@$a2a}~; zG2`i_BdXMmu7@;gakD+iXL4!@zclmMfdT&8iQ=aLk3J4D?y`veo<18~{&8#m(cirb z3k}mdQ;dHq9{tzk7H;QpkA3=6gJ6~)C?}>VD>S~mJ3?WNx3QVs^r4W zyQk{yqGP#wacmY`cB^kHwaR{`3*rn+5I88}SPd_At`kSTUF`9CgNox9TokI*GeFdW zRd>GFjW!K50p~>5)(FCtURtOcl^!oO`bZYT*G#K&)i6&BH68xZuFayxjQQNF;@CIu zddM#1Ga9b6IZ0Ojd?rlC8n%+0;qhm}pDE(YOdWH>;i9_I^-o5M52u!FYj#%EV!O^o z)IZ-J9k66)lhBKdTF^`^3dpG%gW zO0qx(-pAiFt3So@G0C(v`f+ZX1iMI}>%JkwHNSDvo$%KV#H0^VUC-dv1tX)40GJRZ;5-j1J#4>ry`=Lww=HtAJ+5WZJO1zSl zS;nuNHmlR#CW_xuFHBvxmMuJzNSAU@y;`qgS)cQ`(wA1M+17pQQ&V4cjC;dNrUt3X zuH3`zNBm8%ZCKp0_TLo@wb3QegAKEWJFSifMs*4%oHuBq{uPLM@E~T0ccX|On#n{j zHn+eh&(iApet8Ym87V$Z-K^{wD{7!L+iM7S9>!d)ANa5Oy+lOXO7(?-3Zpg22MKz` za#28$!;P26%bH6K{J)-EdySz>EEz1!Mm}sRJxu-4&%p1xm1P|%@oiYtQTo^8e|fc) z)8qB*q6V>anP-NmONtis#T1QUqY6YyBkuZtmCy-7QnzC>6JJd zp>C-spHdCQcy3Cd45LOzz(J~y61O-+UR%XQ3sh-ep9pgj5`wuc#@{nuoQ!$t_JV<9-@{m`ljHB)u_Fc_?4vgylxgRY}B`Lk1?A^6dqCeG>I`QF2#be z##M#0qHhy^!Au1+#iGg$0h8Cg6pKDCimIMt#BUH4i&uHX)W-v+ZdNFkY`KbQe)={Q zHK-`GDcuKNTI0n^o4<$-LpW0%&5)qdIDya*^Yc#Fnm&jQbn$UB zloiIY?IhC16aA!ub=zc`@zuxp<}1aBEkxftfAo7lnKW6?oEu=@7-myH-fqZ9mzml^WEBqE3tTu0Ylg$b%e9;xf-?HoooY1Rr&A_{ykiSozrHxTO3!Dp{mQ<`jnM-wj2!e=QECsh_e3PT z1Pi>jFBw?Z^od_^{GO;$K_UBAp43w_y;B%B=>;Q<1*p^;)dSYM~4Y(`oab;rmXHR z9E&HxC}D+LNfqkO%13L@Q7IVihF|{ph$6z)yIpphOrtxlySNz`wp&U5j&4wMn{w&k z)bgYmmi;rmALJ8t_W5XQDsntXW6$O9vj^s+?tgb@c5nUZU4EqW&O)f2{~KS|3y}xG zq2AoUN4Rm9fNo}_IUi^SI|}Hv1gr0s1GTKAM>L@!HtBfm(phddZ@)GWWpbXuX-yfp z=>c>w_#Pr!`f!4~v8jw#IeHj}UoCCLv=6$g`pYFqhDdt=JA=R&2`-0}Lq)biID4@O z?Q{^r8A0S7m7{2m!3bWpgI~wdP*uVk+c-NgdpAN|@u20NI>|zwg9tL$QyS5e=D^AD zB+n`jsgp(m0jDQS=eRNAnexnOQ<(^ybrW31TXP zT4yBFxr7icU0$%Dzl)uZz*0xaD>9{_uCHkiQE181CKNk;F!^st23n!C(i*|2;Pe9l zQ9B}5=7N-5b2Si9X{9TgN8m2ED^HcVfm;2uE_tx-gsw(y(FHC23$FGmB$PBofJaBa zLpz=`Q4cf^0#rUb-5F$i0v1Tm)j=2t0$z+y1{sBkx4sc^&%x*BG(V3XYvy|{L=w;W z-hdjo&rOgioQOlO#_)OxX3PnKagwfrA~|!S*LeD~a%oJmAr(%;h3Gj)E_ zyt1{@^T?WmHQ9TF!TQwkMLxsXYL8F`a`LKHRYM$7%Qs2;tv4oXV*4HXC6W$&Y@TWN zNIdHUZsH|7n82R>5?2f{^ZLLeNKniX&`mGjJP&%5#;XS#a=d$K-&A!a;ib?fQK)ea z7x?lVGN{5r5DMpXju><>cLv$T;YKeE1=uNG9*D=n6tOy;lm5 z6HasqT61kY**sbhrFZd)uJPS-@wfwFFl7)&-~(Ufi&Xxkg)_L6y5T-QX#W@j><$Bg zgmoW2I}UzlRz22)L7@W*8xE?)LJ&XVc>bMR!NCXA9gov0<4%Yd#rbcoivYI=odO2k z5BLPsxO(z^KsiKzmCbmgO{a)ecgp&0Is=Z(Imxhu7z~)0F-P>xDti+@Z!#p?O2i%M z2GBt@b~*2tLu4nwSU~SjqAx&sFOC>2FRvYR_SFs15AYq#v8+=*sPKE{x|33^KKNdy zSd@7If3{%15lSm8`Iw4xn6Z8Hbs+*BuEDok>w@`Lk}6}?5Rf@uTfHL9u4Bp8mf(Uu zbYaTl{T#$zq~O>J78=Rn{~!Ad@|u?x%|MN*f6dju+%xMs zviDKZ`Nl%XjdTeLRk|>Mr6O;`i3Z{KG~gq+nht_a1V{n_(K?yk(keaYad8q@ru4zQ zaKl?*Yr_s1C;Hp-*w$LdwdukqbGztaVMX9heRX3IZ`0kWCjJY}$lh6RnJbyON@1Jw zQ8K_*`NiZXAi4}7*{wo=2(0vw89wS#~kKL_qc*Qzh#FUEkQ0P`c{pv3nmHhAmil2^2shm0!ZlRkjhn6 zH+%sJ><)PXrhV#)xzYXjCI?{gqgzeoBC3LC*H-2R2v|hM#chb0;6KC%8726ydlH^p z5K%Zg_{pt?$FO|OrCze8WBP-qOf@zZ1Q;xNe^?T)A*VheGpA)&@KI-KCOHhn86RKR zeca@VQ^5n;4hqH!gv~skaU)UqN!i|HscqQfy=;e(a*JL)*%9z%zOQoIzte&yQ@$E+ zT>a};G`&+dxXQilcf`#(9kCuXRIt^szw=-Zy~jU1ZTTfQNLD1H@^|vmua}D8HxNJx zT)}bD@7huayP;*&26b^opu|gyJfB^Imd64_f*8E^Eg7!>taZD*^QVwv$YGzHgN#&n ziD!)K3N1rHjP9FzePZ`gFsY8J!G`fXfK-s+to|PSe1>2hSgH5z_guj?=^!Ko;NXT7 z4T4mgHb3zgj_`eS%AC~>hEn^xIeu#JQ-4ZYQF}5VG~x2~ zy2lEPOnJKh(W@e_){NM;=GvB7aD}iEFazNipI}w1+(u(&*-|ik5;f`RQ4h zxE>w{klLsS5P3$nG?0fK0Q>h)v+Lwa6+Tw(wk!`Rb6f$ivF+?odH$ZyJ8K9T!Ir8A zpO=T^v9ao&>qqZdPg=(+dRq~%k+@GuXtmBEP9Asblq=bP1bciPM%ex2K$+ZC4u+QP zdWIA}7cF{zg@@>WoH!zOR5h;f>pr=o`_rOCtHo1-lRajAY%Beg_9!FU)uco1M4&Wy zAAHm(wohh~n%jNx$YVA)=NN=xn}V%?U`HUQie} zV_6N$&{XgKw_kX3xfcVKKD}W7dBe%D0n1Kn357W2FF28QoOVO?5Z_3M7+Fb(j635K zm??$t(H`tpTI_zw0(t$<>?a69810s=t2}{Pl&Xs+Kn-Ne!Poe2^~>=U^Wn9lT$+h5=1!d3Z@%bd!4)S@?$L~F8o%m)mEADXyLi$M@-RLBNQ)8e zf%>_EYYn-QkR^3aobif18)PJDTFxYvGCb4`>omKcU1J7;BxkxTc$tpJ z|EkRHE>%cMdh6`4(u^TkRRvtQu%;4VbOR2^LuhKF?!#&NVo;%|#-5kkmuRsYz~63C zD)=cs^DQEdk3bl!k5M|HP!tFrGJ?a7g^P=F^Jhj=zIkNaZhK7pRqLGoT}h4g))Z>b zTH`5!ZSS`lTm>?w@pddAc_c4GUAocd>BTRR=>s1>;^-=A2hEW7mM4+*lzO2+rp`gP zMUCOL!^TE9144D9(9Ww`kC`L`RM|HU0??&id6-iSc~ z9IyIlSOc+MRnxyQYNmhhzqm?Sfk>I^Fz;Xh-wUooPdr|B8hwG(L8&3{58lyI!9&YwT9c_&qZoQ7$oONZ+8zk|lUdLXvdw4omE&Mmu-=V_3!m0UsxL0oy zY|18Dg}TTM($hc6_qw$p6lebc?tR8s)SHJ)G{)ac1+7-*nt9BC~ z;+?J3%n^L^3d5%^ofur@6AYMUNDt6)i3T+80h!W4#anYKz6^R`C69~Wv7L&_*3UxV zJ62hN-F{xxZTSAavorRa@0jz!Zfqa?xA99s`LCVB`A1eY_#0QZ=i4KG9tzz&V5$k6 zayrSU%K{Qam_Gthk>BGv91zEhcrs#t$^)J@z{&(be;=OuobV?G94*IOx`R-{OTvL7 zdO#c>)J0zl;;dw&`XTi-{l)v;Jq1m)^3C*~O=JU`=2!Qdn11}Zf{cFtz|vYUsx>7?>`bL@qmWvs68`+`cy)0yvbB(Ozg~ihK^C6np|2 zX~RHB2og|oK%%JOXNToF1I+!?Uk%sHo9?~T`sA)?#FG~AwO^lI7dv5y^T?ctZPG`m zN0ZTH*xV0(OJ#k|P?{(Z76}53r z0MUV_W=xd7Nz&AH6vQ~4x;+-GO0L#!HaveX{>RKYfoDAP0nP8S=Y#HF-)ERwqnU9m z7w#psSfn|u#lv%$%c(-rZKV5&e)E_A zgp2>3DF^Q)77z9EM5!OyAJcV@4)H7Wrx4!8iQVz&7^yg;w~FBp94`Q}p%;o-rEBmL zbMu1VV(;DRUi*0_=lNPjv^(*5xQPHAG&p}+CTh*QAo_5;H_i6%_VRt@{z#9EXNUY- zb$!BrB<`}^4FJKQrUbie(RD=TmFBlG;!fVyxY3Ei{mFXOr@D2SJS7*G6H__EVx3%8 zV0C(li^56{Xs<8+>-<34EsY9NG0!=GoFa^o!_$zAHUruXV|4Zx_KF)hoA-Z`>aSF& z*FL}Dz?wF{zc+U3#J_!(BLm$AOw_rq=UET1rpkH2o8B>rBDSFP8(9K0M^%szC(>Jd zRg+8*LNn3j672~#=~ot07JnwImv4I5+_+Xrg-yMsa7Llyi2JO6pdxTy1Q7jI`|V%A z=2Z5gF*F4~h_+cg^>*u$9OKFeS)Ykn9TJ22?cILe{geC&zjGPypqMR2qsk(i;;O*J#7CVE_VJyT);!#dHy1BmmP@-A^rvlL=; zm8rL&=>Lk%N3g#ekZax?r!>0mgmiLcUoK#ftI(k6)MA)ro5}K3F=9;Qv1qE!xxg@2 z`grm`yD|*Fnz$~pV}?E>kh-E$amMlzzyIAVl{@52noRmlZfDlrMRW%Hj$g1T1M=DR2B)K}2@~9$>Z2U1Ut#?CZn-K#5Cq9k}iSAwG0$-?9wKacL z8g+!L^1{iKhIV02C@@JpiEGLOb55<#aW%@xaa=`cC~GP)iz4Lj{%g+p#UZXP8n;Dd zb#v(v=BZC|-16p|cNx&*X~@Xh@|AKsGvdk9m^-!Qr#XM-RTNKCF>d>UnVakD!)E?i ze4K!L=G;^fPfLB)wq`_G{!ZN#kMa1);NC%Abu0t8Nj2jOyA(&^Uq^SGJ82BxonO>? z$h9wNTrBdHU2T-->8z^5odX-1KK2|3Sc+*sqXl0~j|eTG4!Q2N00~?C`I;ofTYie(`sE_jZ0a41!ob8KVFY3cT4JkKG)a(_gQSe{(a(i**9z z+W3mtC8EJZfssXGA{*H|cDxn%5noE#bEEy+YmGLWWlE;j3seo}^jm4hgRq@G$`8&c z+&vCsk+irs|Crnr8oitiD8RGKTc}3bls+JnD~W16&Smu_Rv6qGBfsD`^e$g-j`*wt zS$suH2rHXdl(Yw0ad%-r<_!fvQ*ar5O4PK>gge8_X%-8?cM-LgK5dvPP9iZX#Ssmu ze4@VUed7t_JzLgGctcDX`SuB8`u`=g=Y$i3N)&zG&HNy|ARMts?L}XbKPusxL#t8( zg#1+g6IgJ`usBXi6Jy$XI9R&+d1TL}=rbblmw=rJ5c9lBo4GLaU5^Zc3#nbu3NH_C zHW)ATBG%p@7z>*|XRG^?jqH8*IqhdBTqNmR!~N@HZ3q4D06wdT(S3c+8HkAKn;$h! z41OfaU(3epnhMvZ*QZ2}_uy&tc*0Bu3ep)%=(CA`bDxL^0zP(t zE1+`0OIQ5r9{h_JHdRD<(aa1Dc2rbbECond}@C-j^xwj~BG#i>&~ab1i`28I7LVL{}2J z^8!ec<6uRbK_m^b88}gJiRI7HCxQ;TO+OeaWkt{evC^q{1uGXjBC8ar?HJvdLF0vi zhmkZcyJDng9k5R!_}=*eFn_r2bp8NXr-9Xk=*tWUYu5M+L^q3<4a_7!tb@3Xj`{}ml1rwCI@F+3{=FNj5{DYOuA;F_u;NQq#f)xcv4IqrCnf{Lwf5lZ3rS# zuxE8)iLI;tM{fp7AZXSJ)V4Abk=iT78Y9lVBX#92F)vMcmyUyWbIRHgwCYD!0HI(n z9sq=9TowT_`-~}Q9t@FdlF-&Aq8zQj`kH@7LBtXC1KZsfL=io~tt8s>us-!g4H2~zo^ zQl%D3DzC6lLVt9Jd}^@UcR;s|W(cv1$ins2;L9qG`aGybf!$#KnaPtN+U6+vA8Z0} ziRLc{@p%T!_E)VLdvU!_$6VefB-U&)()khKZR28MVizE&tn`Ij)Hwua5ll!9#tD0| zt3)6CAS>UoS29KM|4QY$aQC_?w{B4*@h>--MMc?zn{B|3k4{nxX}~iR&l=KMJhC7PBTE&0d2&J-f&)+JNB~!N1`?)e{C1vp(jD0QxW4 zNj_}SnR~9q>aAaQdq;S*Ky6!8HCW7^|DB?jqKCMmhf)%b$0da zMqSg)L=ARZTdW4$OGWaspp1%oTLaLkq{$XztIOG@5-rO{L;pVJ40ZufixW?{fjKVI zMtk{MWv;$&1f^o`Ps+N_stILXz)Uo8yyi4t%qEwuMG9^q(yP<6%OZjk(DzbV%pj}p zt{}JJh9IlW>TZAvHIe6y2qC1`3k!Jvbh1)ne3xK9szHb?5j=~rb5mmouyB2}>wu%J z$wzy5H-h$r-~3H4v|HUi)2cK8q7&#YKV__4_k3Crn3?j(_-MamE8G<>wnD?vy%u5m zYf%maYL;_rQ(Sqp6Gmj6WJ3sG|I4u~{LPj~YbN#vy-mgWO$0#G7%zQoQJ<(l3l&!S z9j6kGUWp#7$$G`{%GIZqMfE$zI~Z12MJ$@Y20NXHgsXn0x^s3BJeN9yzFY{zTrjgC zM0&AzXAdEX0dJXti_KO-#DL3T-%Die{^JG$mO4pZYG++{DR0iY z%&T($9B+*G<7i)>>~P*KxMv;r#+C<&0iUeCP>KU8iwPuoN~3B7i#M9Ii$8mXG+2KX zM0GF4eG7fdC*b7h6YHS;4dg39LHknpT$X^WeQfHIkgpeCaMwo65`n>q z2fTRvimm@K4y~fup+vkl1$Q&+G@mz7qB#6iPFKehw8(&7CF4ThIGdw_(#8+&gf3Ql zlv{kj>?k|*&$d!&s?v$>IOU^J>^{YxT~58<`8(A67H3Sn2Y%}M#C5SOLJNT1BHKH@ zG8FoF7Va(3-wL0mqP|XJ?Y!L21*uNA-nxHq-C!vJV)a^3gsYtBa^k+DN4QVC1EFbY zeYlaU&B|=HYh%Gax-^i>n5e_PxC!k>?Q?FpQ271=dKi0RB8M&of7gqx8%cZjqm*#G z>RCnkk+E%gA!5*z7^j~^g=?=jMz4E{OR+KUee{*+*g$YDiF)}>T?lmPm$*tklj#`a z9GxznT+F5NmJme|i2CL2EONqh>Hd{=q7sNEI-BdY*{Vl8YuZL!AYfy*(A4xV z@4@$L1vf4|jEcbCUJBELJuf43li7pv!$;*2t(04O11MIy3IX2%m2v7_0jpfN0;UvUFLs$#r1JS-s2l{kN@K@k994- zomZYRSAK`T;+|{8{k)3&xrzt;m8GtgN0kMS=PGNp;wt%{wB|h-F?sTozpBU8Er5-E z<|E8p{Fo>YJ!ZG}&Q*Vy^O2+K(vZNh+#AN^S}~ zfc8Jk`JNHsD*1`Ue9L7wZ5ubB2GBJGhX4eY<9)G+5gU{W4;E;@m#<(W0FZ|jg`wsA zWT2m5CrbhR$nA}8PrvB57Ty4q$Uw=B4$(e=nj24F2|O#+Z#5AB^vFPzcH0uIElvB` z=KS*v{njiRX;Poy`3LY70AvYXJNZnu&MbND|DfLgMIwPWs|b=0xBfgUs-RnDfe3xd zc1*);AOl)VyDD19|KOX8^`i6L)`ER(`Zb!gnv;uG@NQi4V!j-$R!qC^^1|~^N7o_X zMHW3KjP#UajRwi&8%XJV9==gaTQD}iF!pw#IpJXJ^Ubba#2kk{ci5%;dm^|4vhcpU z=0yiW@{_h19_gJ@Bxb#A zPVqK82q48Cym1tJFY}xSEc{t*{K2JJ!ezFy?l(_kr=EpM2HlcWqfKXYzg4f9ju3hK zADBswAof~mKkPU@+LXZ7sDYS?F|2)okO1*OeaHYBaZG$TCM_1DyP%4Q%oz>%fdr7QKVCf#S&2 zp4({nOUmEf+OxekRqV9d9+n97vuurKNDdK+`fwrV1$#!8AqigpJ+e(Yqn85b)P4iS zD@#VFuvLY&{aLJhRL)lJx6Mxr=*PgX>K$nATTecM!%n<>szGC>UbZiAXYBRr!=JFP z#Mf1X^upM%d4un?jkXe-9}Kt?t~nW0j@qOAm@W#Gdjy|RQwZ+L8`8ueR|=>ZMM?y< zT98seU$BwX7&f&wdu#sUQlt_M5i>%YG!1(rdDJ|pKPm?+D8VShuszeMD$^G}rfIB} ze@xf;vG(x}wf%dxVQ3%D+%I&Ig^U|*$8bcx1nnY;;IAR3xF@)}1abu-8X9poG6^aV z8CrTM3QrR8lYoRTe^P)OIoaO8ih+*@y8qGaBtK+0XgV?xO z!|Oer{pF&0P2R{ryBH^0mWy!Hxgf?2*bP*uaE8X{!i}$$!i|vR`)3ox#dEwFp_Hd%X1#Yh`k6-7SFq_B>@jN4Y-!n$@ ziPJm$c%pG`T?x_*JhqH^3IIMd*(0vPl4JrnUNMdM3|vQ$f()JhLjJL=jj`5qEOStS zgqPN+LWKH8$zBK+1*0!`GKwx3vGsL;a9eh7kaSHWU3;nQqf=ueX{Fs6W}6 zbAkC#cdV%EE}LUE-=FC>o8G_SVPjJfL(c1dj%NK@_|bU zL0JJrI!rSX&3QOx&wq^yGRJhWnwQ0V)piH@%}{{<75T&RZjicf#~Q}z&{NAu5@ti@F-9CLYZRizgnq9e*e~>A z|8jD#?Crl~xtF09Y#=&<0V159C*<*}axowFRnV;SO^y~^DzTJfp0y3pempZQ8=VV<~kgyx|@eCm>+`HfgEg(iU~u($Tq=qFJ=_q)I5lXZ&oL*zCJ zz)RxFY`a6rZ|n(mW#Vie7n%aZzY#_({1+v?9jm+zo&bxL)?*c8VLMj}Cj%rDm$ak> z9!b<(YWuvFr%7)#ZUpN0Kg+f@pzip`F4``GZn7l0*NhNF}J>)JQylZtiaiP|K+(}h%uzXm{g)7LmL)7NUk!pQz*Qtlj z4d(w?Bm43@z?pB044N)~T8%YawfT8ve#+FFEg1iqf0aPI8Rw002X?Gh6j%~2tADP{ z^2QUIaTy7qVGX)6(y(_jKY7P{-~rVX+UGPhuy-gq9*t_C6Lft=E<0yTHc;Bg91Zl_ z7Aq%MD->`^Y}XK98=?Vr^P7n&f|DO}ia?9!!4(PP;@)w)E)lma16|d(mC-N9>_x_V zH|O*bG%@uviI2Gw#j)y6KeB5aArpJ^7LjON&G)>(a74{&fm!v{c3`<8F^?#VQFkUe z#ySJHnrFK(ms}t!EOsMFyCUx|NxBku138jh>fu3& z5%TTQ9x`8-%^xs&FD=j$;{yy*&dJd*Dt9Y&<4SOu`EA!Zz0W5V{2^@YWKOKi>ys~6 zEc3oPC{%`Az9!$f1VkQC%r(@L>=%eU0|yk9!>{1Dzi!;WBA9O#-usKJ#Kdll5dyAP zGemvYw6=e}l6cw{+j&e!Z5fU!vCJ^FI38k_I=KzdQAZGk)M=%=ru?U$5R)?hZ9#q+ z%}I#VrrH=vK_Ijqhp(IG1mwARN)w+vo~XSfaJZXj-D!SDHtWQ(DeL`9HV9lvW#U4v zNDq0BycL&YH^1G%rHH%L@d$5uq8Iz9KebzEjqmmh<L=%f!ExEr(Wn) zUOOvMp%o&-y_{e?GjYP*P?QXbxql)(6sd*~!PncwH?Y{r-D%?izP%Osar?jD&KS;a zVttO1-$n}`L=#MvX2o%q4v6=w=AAUn zxJ5*0qdpe~Sr+Y7j%KNGaAZ*7&z7!z=efQgf-X}RHm1V!M53UI(j3w3(hh!^S5B%y z0kH$_E-$1TS@R*)D_k6>u!d&+>KUbWHrnr&eU6ILg;BvPpfOW4#)8 zJ#>+^5PiudBz349XPcw8u$JaTOnY-7?FAzKc$fCB9JA;Wc}5Y=s5iG?k}WF5eI4Wx z@r$r3W}geDVlz0)Y*_mUcbqA7SQ6dY>wg@?y+|yZEvk%Wip!AeFHPZZ&k&r=;8%>9 z`L02TAjYTh0?iX3Z2u_DQ1m76qPV@Qq6<^(r9C2JN(@a2Wtf zLM-z_Znl4Ww$Mzb)^hfdCiwojdch9L6|Rh|L`6j7K(?b|_RU}SX?!^`QoczvWI6es zmR-*6U!uuLIex{g3F{n|lA1;1$e=}-BmG7!pLauZZqct?247x@W?tEuyhqpa%5(E7 z+w-bs^J;$O)$!#wXy!Ma$#1!q-j z*@Bn93dZ>gCp8P-oGF~XRydPeIC#z1@C;6g34GRwj186Wd znKd~6%#R?~2#HlP03?SwTc2_`?kBR6T#Y$SGD#Lja zbqI~*QegrBUW9UCKsY8ug8_9I2XoR(HZ?(kyTEZ~03HV^x|Z5$J#^T}4F$o$yHKv; zhnfTo2w<&gDw3nYMnzb#Xb{@wp?}AtfR5}C3KXpHNJ<(44u%@)yKg3e%p1U9CMfXt zV;X;Xs|Fx}2BDY;&))zz7_dM?x)8u7AHrN80^SA1T(8K_SIVtg z@&TQxEN;_6qk-dlfO1iaD~BrwuUF6HRg=Mx5c5Z^S_~Wkcw?cwj*Gm0SaE}URf2NQrmC}42_e31rWUxa|k z&|j{kzsNeC8})dZIvpgSGh8Zy1oX#`p9R_zfRtC(LI@y$T!o)+ko(gB4uPBx24AlO z*&-V?@*B0DHtNhb>iuaX3pD9#HyOG$8Q*9!%|GsRHd)L!S^a6U5oos4Zgy~McDm8* zlHct5wAp>W+4D~`RiMRNyT#Y7#qUPTh5VNON>1bPmZQM@qO-QJpc}ZgTwKs%i}7x( z3z0;&XWdtbI7MWCOwDLTwt6kWpVHf&(xWe8SU>FgoB}cYwcCZHuTP$9^Y{uuc;VJ6 zt~pVHIEq8gbhTc5jUcGuGF>otwR!x4k&nl@qRKjQQgB~rsCNY1lhf@Tn-3m!!z<{> z#;3Tve6yM9_A?X5_*XHt$GEc7Ca~BJpU)4w1bFIj?XTT%(+p&)TU*i7r|(A|Jc@ya zOgy71cIw)6wqL?Q79&TrJA(c{-YYeoJEMb<_uR+!8GrN(mk=Z@`04cN=O470U-+JX zbi>%vnMm2lfKbF`arCM-5E_iQO-T7V{Ne~H$YR#=oFdk-kY9Au?FJ&f8M0y z)F)e#3!rgJcX7#4%uyQLR(@QN3~p{kAenqs5n@hJL>p!lCuCwFwmuQRvHi@#pE68y z_o25#y@tm;YfS$gh9Hi}N-k}$g<5kMdU&Gl=Idbeem-b(?LWUz__(ScM1vh*U>~1c z`@3`k5Fz-SC&a}OQ%IMN3XIIT?T9>kBSW7$Jc(;=YV@ zal!9?mmT>ui3n9Bt%I*_dtU+*70m4vel^IO#qb_2n}hF_$nAB86u(eyQ;4jOxOE-@ zP<3z+K(Atq@7|e}l-{Mz$>EF4Xm?VH2)?84)P5M{qqaR@)6X8K_vdd{Up%kkJ57yk z->uEADpYqv>ZKl4QX@7f%!L=QrgpEaUFF*>D;!R8*Hb{~wD_@J^lrhmE$K5dt@%IgA0bFXt7P7lcny&bA}wfuB?G!!3CZ3JUj!W#{A9mX|<9E)xW70Gbk2%bs2 z_1G@qt=eY$VZfWaoiBnw#@=BgtlP-|)f=E2H_}b68`?q8CZQCQNd~E4dlvmIkxytE zg0Zn>2h^`l-*zAYjiYl5rfoN#g+80_GJAVU2)J#`+JaJn&~m!tUY~RC0|;KgBBF>* zIIm!M4z&O#E(D>JjdX{CZ*?92Gf$`a=BQ%w9c{xqZSbnRXdG)uw2gU*4Y=M0pxKUE z4DQTM*S@nofddG-U?Y95I|y?K)vo>7yH1bA7Zv&}fWf7AhPhwu&AE8P#V`?$_#s{N z(dhO97w8?OFX*f;5L&`VvwR~|^$ud?_TeOY>6T4XqidCzE5pI{cnYHY`&=OlaB|0W z?C%^v{b26B{FUGCU!fbY6L8mZ5f-)5k+g`6di+QPxoR_L#KrO_9R18;Xb%wt*S4le$ z8@BxGvR5rnqMMDi+g3-GW;N!&Vc^=k51j0KNYjpvIQ?#1WfY1;cYa5LnA%fNzOHe`LBBM`Eu0!gg zyI=0w$metXx5bV5%BlGEN~1F0OC|gRvzeXP`I?v1(IKp2XYInXivc@FX)_4ExxzMd z(i?@O34!F?wxm6dV^ndHmL72b;5|$sSx66fl$Z<)?jaMg!Wn~aQn7aiu@=@gV!A`N zr+(E+ksjHxoU-Y6C8k~bZf_K{Vvm{S@?x88y8?Os?q4}31E4QSVUXA89*RKi9eRm1 zMn^CMhTg{hVzW)ou(tlie2|xY!io;s*eK6o-R_ZPp-1W%e5u&-Sc<>=beSp3saMQ`OaTFpWpg- z_{^Vom)afAe!{pQXEy}c*6!;0>C#NJj%gO8zmIfI;R;Uf2&v^=}Xo!h6zYHZnO_>cKMT^r0942v!#(d|? zGD`Pl(Tl9na!|4YPJOG+n0TAiFo-XWjn-9haIYU|x+(~miasuDFqau%V;JD@(G6xN zPTt!yR~#TUTJ(tni=60bU*%)EID`xaun4Aw_Lp8|>lSf*b(5axjZgw%^G&0T0jE(@ z1%U9#95*}>uVQDGH1M(OjN5Ia>JlJ{jS#nx5Jhi;hY4g~NKZQH`UVS#tARx|`9b2v2mXr8 z)EFcW!Y^@D;}iBA>Ovefo#i?_Hz@2d^I@Sb|8K8Sv9vZo&(5sRJ3&E?>=WmkFzAy+ z;b7czn5MU_q|7Lg(OD0DX3xd=KAI!0V-*Q}j9B48en(h;`P#iLrp0E1u$@--e^7-k${=LIv z%Sb8p+4pHU|4l%XLz9$>d&ow+e^M(Wb|3+Lo{Oldg;~oQ=KV5P0?Jkd&?CqWS#G-~ zRtPYhE4avOXFBxQ3{ab)G7p$1OtrS#FDrfXy(ux6YW|mQa1Que?t3;a2kzUElu&ce zJ>Bvhe$BP-6u5uuKZddg_-mZj7to?VG-E~-s?=sRL-8)5!2{&Dk!*e_+|uh0`l|}` zZ75k7JRAG<`2f5dM8;0x2TSPAfT;UUqozP zgVtb%O-vB3st|-?69(`b^`T|#A{=L|!qbrnpi~TsVgcsszc8DgY}^0;k9`S> zAs`FONe#zc+OVP1XTkP4t^xDh@E8t90t6kyWRZJlOIJ!S;b|cB%c01vIiPetm?R7= z;H{~vHGJomAVKHXOvSay#-blsU%fHI!5D?H2N-TsoVW(syiA_~o-p|e>%M(#UV?ME z8B86CC&1K6L7b;(X@X7|RqL<~T>2tJ>UHBFzjs4$$_DIZut~W^oj%Tw{!*59p#?ae zX=`A-(LZHv$XEEeb6^PFHWdIq#m-OOCY|;E6RYkfVN!HR0j};t}O! z8zSAyRN~?TdU9G~GS@>=O)i}s6aY@MoGZaEn;wyvWB)Vt&e%)^YvJ6V(jwW^{ z^MPAPEK6ugt@oD#KObfMrvSh|Qy$q*H6lUx{APNuy(CwCOM2H|rgfwm!NbyZ8)T?` z{816~{1if@K#R+Q5v?@cA0O^~ky>f&SMGR-483c#O^oINSS?m#d$(*>abL4CAh`|X zDik1l+GNCiy0%yHD{Iolm^8>tw?b2aMu2HhJL%aD9m3R^*a;pBOn;UCK$lg`VSX-v zVEhXPB-VilJxmu&e#NbA|MPC+9@0%$*t!EgYPo9BU(SYt=hrs!szAU5tK(;NJ=-;?bXhi1 zKva9y`(y&hZZ!Zf?E%o)>2WN}p;uJ|m#T1qva$6ddDf4QmL`Yb$sur>3U_axf?pHJ zS5}B$xu+jkR1?@>-#rFqR9$qG7)4xIvH6m}c=kUV0Ok2MSR)wc#`MfoRHnH=sC59o zKb`7A`*ro&J;-=`@B2%9Xnw=dft@))wrR=#rOSlBRVBImDY;1B#`?NnweWF-udjZ= zw9CZDzMtPlQfV)r7oH7%eT8qCKZ38+dgt|-M`@y^X|}mLAFggs*Hy=A&4S@KcJf89 zzToo};Fn=4s3`tjlJJg6+KdjHJ4|*&tYFx)Tn$ew*FSx=^nyjBHyySF`v{>5eEY7t zcyZ=(l?gm&j(Uys=&Rj&@Y8eQ$@)qtbehCrx2MNZi9+k8km7?^FAjg+;mn^T3R6T2 zI#SE+;wzGKD?2JdiO}j~-97L4i*!h|kHnJ^_1Q-J_H`L@$unzAVa4lb7~gawicsuY zxp^qzv$me`-Sn1Ywqz*d4j*h-OOUGr#U}`r=888FiNiI;s!Bh!|ILK(1HQ|!YysdZ zUCccZ=GHByOu(L!EVZXXD2N0XoA~98yP04S??sGsK()+h_sOlhAcDA)M!Z>0oJGzf ze{kG|L2<~;Bm9QAAD!j6%wlg-7|Kt3ofqd^lE~KEH1oR2@>`RRxuMk)Ij*qYKMGy% zWf0bp3_f3q(QpoLs)i(Mylzg8FgYGpaHJCK|6NXxP=meEYG~64D?NfV;ugR&%2_vMJ5jEKm9Xh25SmU=9`Yg0-0^GgK)d@IPYDPq_)(gs=*WowaJhZ z2bzgWcMH4;EPoUev(2l~!?KYmLi~8^RSYE}b09a2b0C2MXw|7#i9Z3x|kT3V_OwXftfMU2Cxi`ebO0w z*O~hMCI~18gqa{QMhs6Rutc)bC#aNQp~WKy2_81UL52@Kw$=0Hgtk2j5%dOI%8& zB^r*iOEMN5WkDAfrRJ2u*7+^QX=zyQlJXcObW0qG@o^TdcO z7?6a-E!U#ED(oFO*p1crvKkmeg!F&;$T9(9Ae6 zY5Iz{O*-aaOyt?5lEL@5OM(-<# zWzCX!0X&ID$kRZvcq`pcuZ`I)b{MgGrnRwc(aHdztDt5w^`^&n#Pa)_7h6YftZ`E< zs3}`j$7_Nk_Ks7I=cb&(r<~)bT(YLlJe+cEo^tD(a-W*=_%!ADed;XBG+WvbRcxA= zVR?U_X;&?`x7p-Soqz8e^1RXX{Vl|^fFupO>Dw1fG6tu;3-3BWsxGn6}Iz3EyyV*l@ZY?i`ijbQ#C(7AbjG;4O`1nDF#**SyocLFZi4 zna0ZL*ua@cA(yLTa<>-Vp3ju@_*bqG2wI7_vU=7XJ&iyADug0oi>+V)j@>J8#~N7>~#p;n>9?rn}{SD(D4B? z8AY-*8+;-=wU|$q#yfeU6HGf93Du|PG`bDM21;x$yOxK~ba}|IXZ}Bu&c&U{|MCC# zPHYadIiJm(&*x)k=9ru*hmi9rIYkah+nk0l=d+OWnIuKtBNalFL`fsbIfPWo*XQ^9 z54LO9{o3n#-p}Xb@#>Dkx_#-)>_bJok+AFWt#yI$ExjjFoHj7@pzc7CL!nNBUjD}sh zIouv;8(O8i7!2R1S-7>dE-V=t`rckx`$}!DUHp9Qu~w*SYi++}wC(&9I< zuGLE}BLeR50cY5bOaF|vP%~{<&TWQTAMrmtig1L{d%MR^8j^Hhh<(Pc zKH7Zh0#bGtYg^trbQ50ngyw!Iki!$6(RPg%bB#Qh%N#l6bB_u1TwO`Yx2~=iElI8o zg5e#YK8n$(hmx1H*uSOomz@{{yI^>@SQUYURgd|x+v~sySg%E}1_w{6r#mohE`5Nox%&QK`IqrPwfTa50{GzSCuf~&KF`2$+q!H#GH`5+x*b51t zWKS2)t8XoQJ$qK3eOh#H`(~i-TXeD<_+mkP)#tkU7bW#CKmPj4fRex?pXPj8KuYb8 zbqy$NT13E6H{Q?Rd@Ya8Kfrf=M$F6b<|>P&w}jr3`Hptn&Z@rKib#Rq((@I3!FrPX z%jAFEs1xTVwo`{xJ+ENPFX^0YZk5~|%J9telHKft&0Ajw9^8HO=UncKf#{v}eB>r0 zXXOK)wZ_|?iO9ebao^hy);qN~%i3rqliz%w`hD|Ry~nv$Rd7u)+2oDSsP&=-Yj9wF zPfq`zQBpteg*mWDQIW&qfZ-egIMz#h`4zI<7vJb{_!t-`vx2*E^V@Gsn%9}sB80dQFnTFlOhDT{D&upGB5DQe-%uu zlz!C?xPLV8pLk#4H|gekA^zHw(ZcJ03)j`IPaT~}%dT#p#hV4e#>lma*5EGWe5Tmv zgckuaZEinzPJ_JZcBDb?ljf57cZh059+za3h??yVqVR#F;G@0u^-Pz(IvUI*P`@JB z#Lcru{quBPXrcPtVUPRA%=h2b{TUORQ{)|)zwh=LhYYrT$L_rccYM9Y15nOEN6p9y z?53oJpfdRU4KeQ$-?c0;e}%g5B=e0}wfAa|o-(iQ%csm&%ze<} zy79>TM@>?y&UxS2o*%=z`{#aM)cdwsgo&8$+1)?Bq3?HK9Ccula$s6`aH0OdjO!AZ zdSL$k!2Hqaf#rX>7W9$kKM!mqa;@njZA~I&lnyPd4liruTzVhjPb)qB)gkwu3+_Wh?vS$H-sENcwa!h;F_Q}m6?#bI%;c*J& z8&*+f*CEQ$M^RZn?Ij=}9Q4+Aa#Be2?ZVXfC^(rVIzlKlN`jEsejw2WV(=%K=j-J6 zGpRNtutiTKQY=1nTO=MIQygZ(9N=o2L_O|kk|dGMnjqtNBw7h8HG!x3kqfzE0MuzT z5KS!4ve=ymt|-9g%kGY0;2Gbd&F)|Y&|n2L01wSR;0G>h0tPUEcK6q^jwQ%+GU3=x zSQB1#9^Rpm!FUW#427{PGJ}c;+T3JScS2t~K{NC>BL7#CU_2Q4t))X!6&|*^a!1h z2w+epKyON*)BLHa2$w?<;1rPI6u`0zX67bic0njpkQf1Ejv@$?WA2#1-@kv59zv2g zO<->TfoNb-2a(R7phW$X0Kc__LH0@9eDzSzJ|ld0;s?Dg-O zIFjQXPWbOR3Gx6voEbP%>!Fs$s6^_uC6yb&w_B)3!Q0Sq(rjpMwiA3nl{jE_p(Wy#&3aeb;f#jPSvqI(T8wXM|4Yu{R zt$~Nqvn|e#!nZdLW#&3O?`2Ne2)`hJkSxGRu{8;RA$$PMWyMzK6n>Z_kMohNb*A9? zaFn&-7bFPJzmLL+pNXR-R2h!0sT*GaA^2BOly5%cSt?4JF2aNa%X>|TyVtjWt8LA7 z`Mqts{zrXh;YrkwqgWGaPB-s79)$$j7KkhWzxyeP2XGq$WAAeRzI9=0Ovn!2QE8J- z5U7Q%>@$8%r>94D!KuQxL#H-z7RzDL<~YtNHgC^}GdKZ#W9zJ42#hxxLqbURViK6O zk1>huMpbyI<;ueX;Q3OL3!X0m1CXV+D2ZW+u;Bu0w#!AXCYV&!Wa9$3VuFFJ5&H~+ z3t>%!W34OaZ%Ns%4af0lC#C@6YcKCzfrP=S1U(~7vHVNUF=7Qyfse%s+r_3nC2{X85lCz1p@k6=*%VsLw1AbnTspxStG-0?o3K@xoqV_yL-;0=IAhjjf3p1cbd zU_uSc#WdfQD`5z3v1_h@Po(P0V^4oeHB_ZFv7>+nkUbilr)2G{;yBh6h9Y2aY{B8| z_0~9eXrT3xXcIarG>&UA`YY&=04Qo7EcqgT1%5MmvR~qK8$lGtG3Ovn8gtt{f4^;5 zN;@b2_-n~6`6p-KFCYWg>9CE<7WeZl;sC4#s(Zmc&nxg57y=iDBiR$5JxDDAB0%pP z8IT#Y=T(Tme7ggGIY*&>nE^6&23GNXc29)Ub(BZNO5^r}AVmd+)^rl0Q_X;Rga`b> z2ZnlU8Mfzw0YaVL?{THvhTeEa#MBR*&+hNi4nz##`2e}cls9?Tvy>I^=uj;-R@~NT zyf1j?uJXK3>23870V$_Ubbu@E@FxB-95=}A%p^=|`;p@gh6m852rOV!*njD7f)yL`1--dWSN$Wb41p!{o zrI@EV)vABnU)IKa;X$1)@^OwdnJW&&&Mp^p$Chrk3+joM80URxuzLUA)N!&WE7INb zmOj}K&#m+y%nd87g5cX5c;1h&?I3aXW9Zbn5TI_VWW?Gtx`jLnU)d5gmg;P)KBwO} zLqzgZo>>o{>ZhO|6@kL`S0omxD;; zVJX|rw9Ea=!7ISCdH-oM*Sns39g;7Uaysw&>WBo_kYA{Eb!G&|iSX-JztDWsnR&Bc zL@-<9rOtk5R{V(wrmy=Yjo?=5hX7Zw5O|BAEsG0oE;DDAVE_CnEU!Si+e+Y6lJmclD}I%+}IpI`v?+8&-Msy_1Jy2)#wU})mSKz=+NkRp&7 zI46XLp)_K@BFIplFl1sxt4OTzY2qea!DsHep|UHJA^NU5?>12e6R%5+E=qGph=SL| zMCtC#xzYEE5YD%7mZ2u7x;S>C!U!k8zUUS@5cMCM>|phcYa=*zo&V_Wctd25CCTDc z8MsL_8X5NeNE&r@m(Kl#8XX!Iy0r{@;V7cLD42Clm98fEJNT5|t1I<$KyT; z2=WH%DI;2VsPI_qw$h`gY95nve>nj0-j-!9R5UefN{P8cEV+J8QoJ*~g{sGdZ3hVE5ad-Wu0W+y6v zYzaY!MYT{8&v`H1*ss%g{(Yj^Un2LzY}>;ZT03Db-%AmHGsE2QZp7?oSHw75sXXxg zBqbOBvR1h;&3w7T#`H}Z7^QzN<*~00WW~iZ_k*#A=jSx;g>5Y ze{2SYR$uDZ&))>aSzPGqLV~j&vJ?2GBz9Jtvaq7WSu6vzhB{cm5i+jK^;c&bBXzwb%feMkH zosP?@FydyPD_G31{}TX3C_CFO!II{MfHk;FZ4#ZN$Hj*;M=qeVW*mr)J(N84m%pgg z&_m}jwEH@XhmAW&<|Vgd+DGWp@u^$^{0$?*EQ?>Ba*>G|GHwN>>SIpaW~SXgFIAqQ z-AI-5ZK6WJF@^|RLh+`d-GrtVcADHdN}Wvto$m+{bC}UgPa;Yb)3NZsvq?(RSLdfB=_TlNbvpz7Ui6G zAIII?B)@=_yqu@>=?#U&E2o%d-Rq37Vr?SlHjIIqLLgL-BzMn3=c)wf6583Fl>rzW zA!ZPTB5>TlM4^B9AvTWrexud+AP?t=s(m8Ht(!yP_h-$)FFds80I8%{az%&%rygji z&j5o4W%25G3A$l)PmzXY2w=@aMAn$zgj3Y%xgZb(aO;2yr#-Y;OSN~r&;1j%{_q0m zeh1ria!$ml>Vn7-1ZO6Ii2$D?k`H1$^^%v52z-Df@xF(JvkNIPV0g(X)A+<4f06>k zIb8@7rA}8nYl;GrVif@uY;iM&BqvRD1)zyrErvEM!AweMN;#JtwxO>URSJVH`QdICN$LBG5$3RlE9xhIy=EJvsY7e=xtq47jW}A-~uYN0r-bO z2t%sfbQwUPvco}z^UrnTv8-uV(EbF@6)wc^;=gS;OAU^gc5JAPC3td{zWHdC=p=PFXY2}uHw*PBOGLk#2Cb4?o%Hb zULWP`rvxHge3BY2&UQmvB0}4cH;9Ef`Wa#c5RXH;nfpb$NyL!g*FT7}f_;6`P`866 z$P0eFE7o_wFYoC2MQnV-l0i&M`plIAMXeGRh|d8%4e5GD&NPCC9tU8$3XTNIE{LHw z>huy{bf!e}6qtDiM~@pUe`ly|>uv8tIB`d&w^kJya~E&;x$opQ z$Xhp>&2p`9kt0CvgA7eg8xF|C`{GVD$)oY{!yPZ|I>k3nWH)hJga@P%24JO)bq1I1 zTh-It#|m?k#jzHle8mhIpQ2=uMs4x4JOpby@-zB5jw(eX3#sQHcT1urlei_RU`?aJ zcqo-2$U2D1T(1ASMN)gefHAV}nVtY(7$n5hV(g-?rE~e&srq|`Vvh6ynO8kq)Uk(ZUZ{TxsEei4xKXj@XupUWT!c=KY0;kGcJ4mSk?wgOhfQ}e@ORM z`uUXdNav;2Y2Vg9I%!+U?L5tGa3fBLhMo;JxZttJkjAf^WZ%7UCRiNz!a!=z2bLM8_X+oXCfrgM$u}; zFncEe%!q6BrqcaTV0_fU_(R@-np8KI%p~$0BB01uz6-WmFjQqh2n#(dJc9i z{TJxl6*tE2F^F~|OdQdFcHs~lB4Gp_!oolXAtm=1qdK|n?5zhIO}GyQ-3_x{P(CWv@~WBH7avB zKDw29V^e+BDe#R}mD%1OJk$pUTkqI)Qp8fmc{T3xvMT$=ZLqxotfJ|BX=n3veHAtw z+eZS|S`B{$K}JOtBeExWnx$&=C5fL(Fj^0f)^wbT7({0gnfoW`7W8FR_5e*srPo=e z8aFIMi5K4v8u53wArl#XDER_|b4aLQ2UPRCntfl#Wy#t`B$PMmRe!f@J&}yS)TdG} zaPwDOfx%6!56{G=mnBji=&cYmF$T8xxSGKRX&&H?8YD5YFk20nAqE6x!3b{n(sX3$ z*$J;7zc*~~`Ze*wfn^KMLJ#0!BBEUMy^e>CuMEw>bK%>b&}kQp z3E<@)M5*G!PLk!*#gLj*)*2kQ>>&Crm{W0(jR^!)R$X@6Q~K6@lA-Rvb>v~CB-${@ ztwYrQIjC@|f`h0MT=~^7Y=CbNiF+5|m_hwAei(J<(ZQM5*oD9a+}y=Y^{WQJb^)X$ zh@%^LO=2md5^ZgW5Jlj=_;7ULPe)^F?4zHzUj8&U$MNY9P?f-YEko2X0IwmiQgNWY zo(M(Y_7%eIFB-XNlSqFY18Px{?&jmQj=!l=o)ExLLETDqTvaX<>YwEU!Lbih?YH3& z_wT5zV@r_-2onN3KxIXRu|si;2gAD7(9&QlHmd4T8&HlQAlXea+CxIW?}0`3qjQeg zL%@ZpR2C-yTfa-^^+Kry0kKX*5;RKcAMg1lnGWYb5LU&KK1lz>k+CQkKhS@gSCM{q z*knYj+{@JFvmsP<)X;v|sG+3%OH3HL@Wkbc(>{#M*i((C(sg7RlpY@eK-zc14;h1@ zKlUtDm4KR?Fde7IC;BX2f0Xj=Zq(R3sr_ka+0T9N z*0Vwg5P4PGCCCc-msp~3?!l(~17ftRHjnhGAcXHN8zozcID{2JqY*^ZU-);nOmc*cOvp= z3jRI^vMPG6n=u;dgO<%!AL*g}unt1&W@wzdlD^G2uy!D`JeFt?yq}7+7;lN<&Tb znBV$&cttR4#H0*vqoZdUO@85|_p&z*zhY{8IFhydx)gP{=kq$B&fi|qT@({xfq&q_ zR_IeJRSUSj(87|y&tc;%UGnbDt^2VT>TkPt=mNdER@A>|2N2|R1jO5cW82#GU3;46 z)!zoW^NUk?`5Qea_dx$WOD)1{iarj_TdyH86r zr!TQsg#&4oBDgas?AgY`8*UdDr!!sA6i0E(|bmBMyn<{<4NfFMe!H|GF?j_)Gatn_P@Jp`Zb zy80m;j8p zM~MRhdP-}uPm034USae#F@Z<-M_PfOE)08T^U z;Qp*On8EZ~m7#*$y9A)0POMx07)LE43qVCHbtzaDkfO0kpSuw;XewrIxeNE&B>$0Qwe6nD|o!#`Lm@P&@&8 z_Y%U>TWL>Ho*FnPS1}eZa|1F(O=TVRr6t;`&+_|u^AwAB89-JFL5g{XgO(YCio;WV z)3aB?CN8~qjrlA4gac|?jb*G*F-^#?fzn_{Obq%!>0R$htb0X+#mv3F9XkD4LW#^YWpu4z@)KM67cj5{fxK-F?WJH5Sq?P)dysGo)OuxPWU>k zF*lGV{6bSCjfu{E(++g1yx99C>jw;XhQK;dNRU{T^e`wk^p})0=FQR*lQ>~431=&Wp+gj{6%XadnutWw z3{DvW>_IgAFOvTmNJ&V#ge2i)=MrGlv6OZ7->-H0>#8fz?lnYFoHg|$DRByVFIxCU zW;6VsEGrds${BjaO4*(Q0CaTJ8n^^G<1tfsO`10qrdLH}(%jWTXHpWyRF{n4iXgy6 z7+mwf)ruPjmZz;J$>;2&Sf&kPQiGLcan6SMs-c6h>=qMV(e>R<_|cc z-G$^7ATSp#GL?)p?;s!kSmqk!HdZpD6DvjG7?rUw?E?=8$KydB%gPk>*x|eW!y|lO zG+$<|EkQjcFEHgynTVHDC`qa-!V`wTowKEfeBzuBP+4rGJeJ~F=1mgRGPVfL$t`aY zGV{g&%)>Hy_YGI1Y>Le;wY?F6_5x^`fcp-f%DL`kV&b~R7hQL93VZOW{3{p*_pY4N zqUWlsN>+0hedKeCCnCgEvUw~5EOSfV4Nt0c7F%2o&Mkf1wW@LU;leUiaz3ek)0!@} zjFe9<+m85lZpmpVax%B#uvOw=ANYeXxj_iGA^rm{IXiKi@$hFh;=0+i%JdsDr_LC%?gnlA*7c( z2N{(oAu@rZ8{~KJYqgLoXR~9`>6Iq zo;@{k76|ad^u6y%e7Ai|DsF_)k6RSOsbpm4f?{v(#a^84&@a9D~->4;M6+K=&d85L#Kw`*8;i~8)9nY@mxG9kwfx-%9hvvxe zKLu@B!6ERn(dwW70ZdfZr^Hl5iz0#ly*Sgb^C)bF)w>Dn)NdfDW^c9q#cnft=6pe5 zhS8_M%Pfy)*e@LFU*6u}e;GUQ_=Q?)%!Jp~)7bZ9aq;_)WHlxADLw^lc^us{0Y!uo z>`10*?QPOJHJ`w!2*Nir<OeDZ*E_(`m2xP>;(Wwyehc2j~ ztGpjR?i`s7xT3H9aRQ*oR5qwJk=!9JnY`N8`Ll6N*@eoOZCb8hR^xx+KMa_I214fH zk~np!)92fm`Ol(!X-xviq;juy=~`e>y>qAHdo|BOhE4ZZM=xyhAGco@yoUW5JEx$~ zGabMe;c3uc#MU0&C2)M+C-UTru+ZZI>$dQMJ{PQI;Uj&`oiIvznLalc75ZTp5N>IP z&?87JXX+a~L~9LVQCZR92r9z8{`XwFpk{Y- z`F3Lc@q3sofo_+Eh~mCy5{MzNao2=$bkLh3Ck{@drJsPn?x2)}vOQCJDd3Na^}$U! zd!qf><8r~3ooeypKhBudq0f&e1Ki#TY;w#F)8DkdV|h^W^5;8;*7(f7X&*Pe?)*OQ zpeu7l2-^_FNb1Ql-Ku{6r;Z(Z%!c^SaQqJHAcV2cwh{-eh>%ObQK4Y?aQMt?%m)_0 z83(+fVf=AG9`&yaiwF(pgT(%0^8B~<8neZ6%58mu1V4zwf=7l#@Re{w8l&tIQn3om zi8vJ8`Lo!#VvM7gc8@lb2a>M=qH=kexM{P=cToIUxnMfD`5QUocX&uYMd6$E^*_PE zh^#F5>x=N~XMgUBf6A=iw}h^Dgsye(o-$;}!?QABh;^8kH8%6&M(8d!HWZ|QXZpN_ zne4#EiYPIG9r6B-h9O#U)>up07Iv8%N}v-ZF)J*4bTnfYQAijL$w)#%&~zWCF#9yd z7qVQecwm4gGECHoCvh5L52=*0YI>If0PbZqA4EAKe*uczqa7_U*hnoj{s&uXcrIm984gDwMTvO7s{YDt`lw^b^(8VAEt z5vJL67B+9x0j+_)=i4n zsk9#7#dGZqquLva_P$8H(gvnM^gdSXd#0F@rxc$RwsK#zc7J+A!O61nl+_Yyh)Yw1 ze`*NF;t{!v7+0NrX{jMZe8YvtoC2 zhS+k$MeHO%>{!l=dlxKi%*3w)R02aUF3oWLz3LkMRpq(gX1^1e=OWr9vZoMH*?-E? zB%D;Z3vEt$%9SJw+r-l+e#T3^UMY zH`DMllUO#p12tk=rw2FsVVf?3O%pIaI)BDsJPC49bj5^MPgkf@E|M>1`a>Pet4)* z;bYp|dG&oHc9`~Kib0l}wg6Nn$h%|ffa^^1tg~NP>92p1$6o#~zeqMWC@qrywfObf zy6gV!A**%4Py$?aVuhT~o~~qY+txC@{YttGXNZleU2e~my=a*NPgW$pUClYHP5t&X zkHO6w2QPxAjIYnVxXwiKIbHR6n~$w12wAT40nxkp%$#R>2}YTOaldp6>&9SA!X;mZ zE55|^6kxf(vEV9$w|kgdXMMhl8>g}dkJe$iyBPTi3kJ)ROID8?I`>h8*o zYZIUK5(6^^(!!bR;qn?@B?U#h_1+?sJ0~ee>~L|oWTg6a-{vzP%Iv9V?D%oPCAFBz zhn_$E{NDSz2I;3*;6olo25|Yua7CSSFh`l*F?854ixPwTOTX>Gq!nUw9Dstt5VjtS zD48TXVhqCAijfj@;E7DjF%qOOR?*MZQL&8<8^apdNMu3i5IJr&JQKaEi;S>Kc`NM ztk7VV0F$Uj;^)RZ%^82@b>gMe)E`YG#5$sCj@%AOeLZ}dW`#(9WtiTmSvQwPEbo1& z9GyR;X?cGXUf-ME{3U%NF#|oCF$&FmS5z+=k(r7}+}6xG)FkAFWo1ZZ{MDquVkn5m z6y{$Pv{p7pOg7KsY=K|d!df|EF*#C?bL4*IC~4)Y#pG%|&ei>utFM)36q9%1ah}Dm zJR7b2OELLQkMmt)YT22YCz~WX zEayk@6g^KYlp8Ai4l6OimlSI)t6BoU1GUZLBe9vz1&#NhTU)dzu%5u&_<70Y<(44&>88nzt;xEQvpV!E z&uDDV6O369gp|Pf`-#XTQ@dO>)Dj2cFKE}GITlp5w~u$0$JkpD#+yF4{%pZMac&gx zY}dj*5Lq5?doos1(snQC1kN`;e7CD=>$IhD-1Wm&ipH((b=$V}yWNevZdO+wT+)uD zYa>2^0Y~AVgYh4$Ek5DoT4G8UMLj=POng3zhiT3Wan%dG(!d*LgE?kkVH>k7*Lwe@ zKChfFG7Id-vxv09il|aTNHAiB}?-NI9%4IxX)d z$|4?@Z-X^ww`TchTOTo#rM;1T`U`wPe+mZ6nV+WfiFcjD#`a-&b)Isl4Q~Fy)bNQn zl*ZIv7wh`?DXzNjTk9f{)c=gsbWUd;r$ZAgQ)0{tk$Af|Jh?HpbaJN)Rti5bEx+qI0GfnkeqyN8%Zw7_c{hR;5Dv37S^8$pk{sipwPZ zDBVgN(?;>_=@%f@N)XaOW;}S}SJ}&4o&AV&FU9&}>)T%D^N;)p-V_JV{My-ziyM`) z3SU6(tYq$NAvY}rUj4BI{>kq`-FI#OPO#v|+1kgo1SWDV-g^9faX$iB3^9%B$Bbt^ zlbn);Q2sg_(LZDPS?LNa-T*`D|LwdcG8CMiSouPBe^Qw*H${;FcA@wSdu%|G4ccIZ#gf>FU&*ws07Ai!FGi^(lrS^b@l! zv&iy_gy*7x#@G5!%OK!Oet8KU4mGV3Ic^QO?5NzY{nS^+e03jHZ-WfD1Z+$pv$RIu zOnqYXWRU>c{-RK>tm|?lln7~K+ZhcaphbqZB$hvyD!V;O+Wr)82CclWRJ|las-R!M zXySl043;|doa5b2=OT0Qz#21n=k~cE5N^Akbwg@sPvp)X8ol>m(d7H?dZgZ*kRb44 z0R3`zOX47Ex5Obu{9Bv84?01W9h9OIX|!*?d6G(}C+HlQgPm`Qt zA(n&F6JA(zZaZY8#HhJP#Nmm@OK}~KHZ%Bc&lC)S~rQI+%oU=Z?d0ZP%s8v^puc4k#H z=(#o*kB)yK^P%ZreWv-!f0+VO8?)^JFK@;>;MTI!GlGBe$DgcyT`Yxgn$IbECVe&0 zE4X_V@Jaf1D{%F$pnuHzb3yz=pA>fzgZzkl0#cq_1k+W5;=Jgw(6b&Ww>W`r<>5hr zL!T4wJphu-TT1qeX>f6H1BF(yb6Ha$q6p?NM^B;0iPm1giZB7D#dN_N>1?lFeQF~D zWP4djg^w)bVME8R_zS!bKUhO=`nl&nh@4-z{#fAQl@O!9oGvEMIO-`HU{MLNLVNYX zsazR7vR_5)PRyr#k=t5+CO2=+O=o)3In7ks{8sh3uKdPd1g|++NU2f*NqJ`*2sTpg zsmRT*n5PAg^53hgNDDlB?~Q;00M zhAl!c5BuVMZJM~rx^Ko307b=B5icsQ5AlL2&#Pk1uYru*LWD_Kk!%5w_$Md zPxe;%LPcsZ0KY(hFcrDnW5V9sj5H4&gcqc@wQMdnQK$zOuCNaoY4LwM?H#{)5LAVV zvfqAaazV%TkyTvtwcbfysk?rtZt8 zTju9}j{Bdj&h4)=u*IMQy9a(BcQNMsFcLT(^1>2;%QBG%qeO9bRa>VqSwN8C(?an5 zOP6IJw*TOYhED^ehe7%Rk(*&}zOZuKd_`he44>DX=vSX)fMrr@4S6cqzwE@nKX_ZE zKG2E3Bn10q?s`W+>-ES#i|F;bdzrB&yW%zv@F3HU5nHbR&k#sJ2UwwVN6boxWg+oOM7*0X$*9H@ryivbnhaMeG z$P2@v1h7p0<7}N!agP4V&jrakNwVL=1xGOlH72@Ajx4vpb8aS2e(F|7C`Q#NyF)_A z&-m5hOyISlDHjO^hP(QV1}G5FWC&&>V3;-isT1Uma}tLgcrol{*21}A32eH;r8FX( zlt&O5CxF?=A2QACRgf+?K%f`GMy8SA2N@}PvSvJ|07+*fTLS3CvXx5$l4;wx2=lRd z;~Yj1Je!PlxBa*hAslCfVKJGavMqKrBzEI~pN^*_dY!2U=nnV1C;NkvPN>>KBPxjZ zn1qC)QueEugyY9OF_Gj~F50ye!wW0e^tF-18CD8unD*Lu=v4)iU3$VvCfA^(v2xB- zn23!C-zT_<)@(qU;p6*)KPAn@{$&?W)a1&)PMwUvK9_xb?BPkLsGN9=1F-_Q8)s4U zC_rVr{e#D5POCL&iS7K!0xQ=#H2Gs$EnH%XqgDqD&{bwD@c`vmKPt%Yd2^(Qlvn&D zD=Cr5UKy7Ebq)Zg4gwlQtSI9;EUH>J@E*B2#W*_O@B{%>VX)sI7|*?DGwOmDZX>^Q zlHX0@on!?>bT3|bhj!J{{KC5iHDxf(lo$VUr^}{cJkn^VWa^*AnU`o066cG|mHVcq= z^?pG)wA;i+F8EydmHORT$-&wdpT=dUDQWLsTdB6-dyJoM=ov%UuBZ8`ZRV{nTldv1 z2S@zJ==Lc#%Ib@&d(5-+#e*7|M5LXWd;9m5CWO z5AMpn$MjY5V$7KRY!&}eO5UdPx3P=aAO!y6bGs_ytG9c~McMe(Y()~B69Yn6Qk11A zR0!nagI&c?5-Tkgf?HETX;)&j-o`w?xoB6F;pv+o5G$SPYgVE`T{ML_O8vhu8zWJV zD|zD>PpNFy$?xdJOF7qNHWY#-Th`ZS-h$X|9Y19&HvppAQy{i|b`pJWsOVoijuvzd zqd6@F6dFw7T?mq4KQ$M7-?wAhZg;YIiP3$=EG)9A+JfU6A8hsxyh)=BoS;x42KFXH z?K~@CJd!g3CWGn;6@S@%FY-hcIhr-r8idrvt;fWTX+(Bgu;0ltgzGnLSBx1hs8jSW zflW-2lXx&U6$58?G_2684r;{oOKMp6rt!5&P=sK#znr+Ir@FQGRr^1x`6s+`)k~_2 z(+9ZRiLBwFd{bgD`kW=HzI5z9U1Z#n&AevbsG{yIuPAL(E02eaH5)o=Pqjtwjn4S( zbN33Cxh3{#?_yD)RtSx*ySEomc8h5HIJbGr^PFu{o5Ujr*p7h5tw-N~vTL=V84#T> zc?Ub#6+5V>3>3vzuT!x<-|*ZXz1n$}o$p?e4rdo82mrhrp%2*cjzd3fBDjrK%sdi|m{HI>Jg3X5R#thm^jYuV z7U}ouYs25XYPmKuum8Q}K7#pmxH1j2qdw3B{5blK=bU~fF8{qW0ZGOy*~Gt%iZ>$O z@e?P!{^ox0o_+5<8@Tt@eUsR%vwc$~vBs0AB7Cbm%GZ0)Q9zS*fIiNcNbD_)8+{bl zSRdPdYC|$aCqzkb#2bMGmcVD4S__Y8ML22qW!xuv!Ztl1+dwK$iI*m$p#B6V&3G0~ zR*_yWu{XB(DeYT(91lT`1yody2l%o(R*#MDQ@FjsU=o;?)M}7?9G1Lk19rjioG~Qx zv*{SbxWiB|H4(LIl000MVv&GCjt3~4k}NWvB!Z?7e;0SdKiT;{e^gP*tvR+VQ;h!M z4W-D`=xEMZP1ZJyuG%Gf#1arL2IwUTABSnYut`=ew7)5t2F9gznWhwIvXzlhK2*DC z4YoYfbO9R(2O&Z?0(_1Q^pAqNHVle~(+eIe`WGgpMsub&pqeEe+TehWy`Ao<{#{ce zOi?uF;|BKuvV#N+7%n>3Pu60>k+1irhHA3zIHpt;r7}#X9NT~hb24WRq!e<7zGv{E zBvb&Ms;`#%;5hSZbo$yF`KSSBr|44GW5S@Y_Cy%6?sM2&~edVcO6yS*El?n!Dwrc4gq3@gURgzts-in)*wzC z3`qq5(HICN_nemM|Bnz@It1CK=vXk&HxU23Xs8|lma2p*VuB1X#nV_lp4+r=oYDS$bY1&o2@ z&I8}+(`=XX-K7ftfLYI2`Mflc8%j(ov=#G?Gtt(BD6o7fxth0u{ ze6+~xf_`#ieySE*)_S3;AA9!&P)}-UM-5610~A(*O6@_cT%cAG>RJSFJrwFp6&*;` zpKUBU7KIs$$(2O|TS*(__IiBQ-oDNp~ZbY51f~qf+)UB%^H||;VR&+L?<{HZv zw9Z%oCCrs2>%U5!=But8b37Xa>#+iQ2+q%FKrSDW^T-LHI0@N+=y57;Xjq9Umwkzx z%LjBeR_u&)+NptaQ3f8`si08YICR|^=F}&Ur=<5nz%B;}K%4E>0=QaJ5dC5fDyRt+ zJSJHw0=uEjmTJbHQe!Xi9F=3%2p2w&#?fbKi@+&KQX?88 zky(PGG@%MgP$!<{hS^PDo;4ws%4ibjt|p}DJ}`FeIG?R}P01lc7u~=j445ghrfaa( z2l6H6;Qsqvhd?(MUv}?3b+*iq23&tP@V>1_gw^Fs1G0+QE6&ZEgNsPPz(@3_WFa&aVu=PDVZc}25m5vL2kox1 zG?4PMed|Np^(NGr#^#}RlUPLC)csV1N9+4}gV84~0{X3Ig%7&EB)Ae-+Zr@zBICdi z>3Pg;VvQB(te@7-7s-Bb?vH`~6?P{5^H)I%JRH_)D!?b(AfwH8RS^H{8%$sv7Dcwh$L{Q8AU9m*y4Ku>ql_T9*tv-)Q@aJ9^Gku4~~QZTP;xCs$AwleJQHk@Wdh`6`}UL-jx_!=WB`t_!df2`#`K@5%l;pEcl8$4AN~t}4LLK^nm}6VmhSFu zkVff{R!|Ux8FJ{Ml$1t5L`u55JESB;X#~Egm~4LgIeD(@xt{$G>^Ym0IheH$*1A9M z`~3pB|MbAl`{1)J>f8N=2ZB)lMCdH(01MCK&-HKNfN78ZrZkEv5qZ;D>QUAVcX+E$ zK43`RJJV)D{9-_)gI_}reJ8a?V|K{51I1fCgfhN4B0?|}2|r#(-2cKKpe;E+-E&|y)CpyN{vrlViJPQ$W# z&<@`%Qw>rcJNdEDKstOKuNZfPnd1<5eT3gL8ILn&jvpG!2|i*bJi8rAf5%k~R6U}t zZn?A1OOstk*M|!^s2e{DVgY9E$X`R6x2q=av2sd#NnWq=L;V^3Sj~^6CRX?-iHHW; zt7`VvlYI%QX@sH^tN0{|0Z+6w9bTF?HgLwPt#-n*vYm6tVS3xkfN*JYD|C{e-t(I> znu_8!GQW~EZ6eZ`cD_`S@UF!yx%|8y`r2Xgq{B1!=Tww-=X?|T1~EkUOalO9&S^|1 zwd;@a9E5<0Nq9XN?kY<>B# zdXD%Dk53|NM85XI0;*(ViC5%9_+O?6C*_VOhA)xquHNkKc4$w1vMHLpw|lR`{g+!kRi3>aQ%eFh{*J}XtxFzIuOWL5`e=_;f;m)#?Rmvb zb>H_yEHVjyw3pJIPMu{XoL?2NoGC6FrolioyH(-#Dfp#sD@+hZ? z`pN{s(eyXUdRwBxAEC3GJ>0-j9!PdN@FQ;;e;4@EF$Onot*HjT8?7+*E9{1H!e0r} z{o5j5+62HY=(X_Hpoxh4H(_c6kzs-h>8lto0^N8~OgpsIjW&RWr& zHF=c_$_@8xr_O&%`lKeI6PxwI~e^lyEM=&;JZ$v9HR;iO@cHTNu)+SU?9t(|bmMKA zBI?!A>yIdhGxhdz5>r1CQQ^ldI)1kJupJ-tJ%jzFWOSnHffCb3-o|Iog+qd~L%6VH z)4$UNZ>RfM1^r3M2ipo^2;j*oTR$7l#MBPhR5=w_9YApnnR1M%(y(3b32aZyipr}t zs4T5{!62$}UM2Zol#4o*h4hwz+5^Do47{t@XQQ~3C;98~k%D|Dltt-`aTW1S=I&*S z{SR-LKXJ#EB1B9nD(`#qQ;hTdeHc7`~JX}DyZpStLKUuyV^ zY1*u#K3?iG_h@z+u5RxC;Z;P{O>6Zo?4+q_zlhQnt<%oG)Gi9pDGSi4Btlm2>P*0v z7rOOX4bVhC^3r)A)Xn>E7Ie-kxAoo~GEv@yJZ(Y0Lfv>-E204KgONP}gj&Y37ARsN zjbJ(zV%cFOAdjW6fwnXcM8+ZrG;8f)Dj2F4{9Uq&A;s3}o3NFhLTi4JfM-MX$C~*mO(8mkoXGQV*kooqYFpZOvmUug%`W#c=t$ zO6awJ-yeG+=wv{nHN&hDO`ep@A1qR))RMEO;IjGgZ^+g8XT=j{=4If|Pg1E+)}C%E zVkJUmfFEnW7uuug~+MMdsPUj7G}68qc1>!E*F0D58@BMb_3y;6Plg$5ssyVTq9c* z3{Tuy39f5F+zn*VF~DLGFLf3nC^4b0gcVpou*XJ}!ga2V+>sceVgC6d`k+rr7%rkm z9%ERdEkNy>A4d0Nz?7-Hr;t4QM@RyD@guwFk-*zHwea6KZ{&@a7*3N$lGeKbEp z2vIZDCtC3W>q-s8;}^;8sNJ*eLELJp$lh-ah)=$X~w8_gt#XsO%^vvf^i9RnH z@xC1}0q$lG&TN>FNnF`S6|AaZZV^-n@$l^LJ4K=y+O`u>mmicW0U6hsqG%iU!<|IQ zCnKLyUe0|Y5}wh5f6hpXXMw$#Mse?&XfJ(`&(lr{ax@++`V`54^r@hfk;1DgxX z?3G9T>w%Tx&FK{)B*L}{8Fq79T}z1TpB>bWOZ=9v$o#c(pe_6{+bu@(N$$ya^C|O% zcZ0Qbn8xf^3@0rw+lup0Q!RQ5()XnxiR(HivX$kTX>ION4L8}=n(c%?UQ@C^MN<>ya7GSxr-u^Cbzc(oQsb6epi z_09YAbMDiB_R=F?Xur&pCEs62j_&UIaZ>Q(Rp)82+rN;D@o?VIjakWXo^Kw$;m>`_ zV#7nPj+zU24z0Sw!~gyM5grVgISD6Zw}(&!DG|v;g~6P+PA-;}pc+OIB|FLmoI%Ru zu11jzYC6QySIS_FQ4|}y157_i1zm0w&FAbuW_P7RJ7g3iTIxXI9i+lc7yN)!SSA#G|<8XU+ zC%VZX4YBfBcgKlh`i(0MsUhQJaEyw6_Zp1Gn@w}8@-H&2un{7U-v);4#nmX?h!-p%seMPy8~4? z#UQoC?x)ebt5@-(Y4S5BuLQ_=hF+hg@pO@E)0v3U4yJ6qkiyyMz6yg1Jp>Ps2tf&mZz;DoMm<)b zO4?VGcQXbm9y@bJyXo4ssayxADFZlW_lY6*@hs^<2Q&dj&jUU)1e<;>KKNRha5bao zHb=nGDwFotmuA=wW&(tLm6DIr&7{-R%s~FOnQ2wt%b0uB!V@VJ+%rUwxmgE|%6`~> zZFPxPkFx~#deIUu_$Q0{t)|D3O#yKR#NCAaDMcJQO({Wv-GuoOHPmj}j~lvCs1+-! z6Md;8JnwB!l>7PE^&1S+)%RY25qWGPz<_M^vFC2o@(!VuH6&lZA&#YPCP((@)`v=f zuGZa+X9>fl728B{gKtN5ax-RfzE^v_p;F6cwcUwfhg-`M-gdILiS2kn7*LpJtU^Ca zrH8Fw*}(V&uUTJ=T~oJcVSQL1gxHqlHL>vC8}t42aQ#DDpgfRJU=FyQ%CE(&hr%QOr@ATLUAAx$&^?Hkt`**H0d{KJLZwQr&MkttxW8- zlM(|u8<9p3IzQkr>8b%#MV^dgrc(<6YA)lN!T-JVUECES1IDz4FG72tq1Auy} zFCD(&8(>uXy^2JA|BWZ@2*NX%C5mFoYaNMZ{D=LWEmJ5Hh1) z2)R_B!GH6I7KHY|oj2d!KJN6qtzSq%1@?K%Fgs$2dP$kJut_lbu<2mLUUY%lAvx38%Tb_G!@UK2QZG^>-lx}*WGcR0Z_iWNeBfEaT0 zM_?r;XO!UGcNLXl;@lAcL4Ss!X?aW#O;t%o<%^m0Dm)WzoaZ*GjVDCTVDk5`X3<aD5aHKGx{FETNuB{^`-*?Mc7m``w|48@``LOhRq$zS5lg6o^lZp@UDGB zj_SJAOv~p{#?9{b-SFUv68V#O)6T3Kg`g%u?~HUw=FhnbzkBZ9_B0ZAh7xQkt5%sr z##C9KMLwkpqh|(g{kgZ~erQOUVaK8+*Fr$rqpDgwBMxVJMf~%pqJJ4TC-QUb)7}LE!it_zg%HAxO(vY_PV*bq@ zAhiw*!!tf|xo8P+`qkuIqQ0bmynN~(ad3bSm8Xq<(?H#>sx*)fX8mg#_r?A9_|wl_ zHjZBuy+QMtkN(A!DiR!#Dp3&m*=#r}P{~q7>=SIoM=fMU^aG7}TG*N=bbY=PPuqQ6 zBJ{eXM-e-t_^-d~`qorZGe{Hoc}1* zdWk|NCPMHGAoT;HLG|T^xc{Ikx3kGsr=g53M?GNDS#MZ5Z7sQD`HC#$Re1%YA9(L<{BA(eysT{7;3(*UV_(-?UBk+ zQ;X@4XO)h}iNWm{mG3udy)he>wpI6pNxJfn*PCIlp@sB=^HgFhm|tg9)E^*^WD*Iv zRaR7WxhiOz-yS4RS;xM#3(3vFd;OKpktlQ=`n#| z1t7lFG5AauvOj*9@S=wZ7}L{@>(GgB?6No0#{#KmNB!lyIweva`2kQ}5JP9FKbx1{ z8Kv7Q7e8kXWh-{`#!l|8i`;mA#|C5K5}P4tNBUYUvagQL+ILmT9<|7jt$M6W<@wKLw7Ed%hl z>_6*<*R)LScrLNj2(m&9qfu9!nxo1$+irqr$1;3T@$>W&x zr~cU(ko`&zjhi|k!W@#r$QEbFKO3C{jNwO&v08I96q(dab0r^iEIN#<5@!V|;*^;6 zgpv#;|Gq2tY$yTKMS`+?AI?KCz)Sat`!?{J4-H6-rS=JghSav}oM2S!q#jdFje>6F?BOCuz ze!+0DpWPFOIE&~5CE?Graz+$9c2!7C=j0yI;-yse)#F3HnJuBAkEoFg3`KqqT(wF-nc|>sQd&WphXDrlk`7XtwlDn z3oSzs+7`2KukUDga+PwS_UB81wODDb#z{qz1aU9bbhprZ*fZeT-ON%umAfUW;8_Pl z5ab5A>u%&A#sSnqBakFsw5d(UZ!-X}i4Qa`rN-2MqmofG1@^mS0&pVudAv6S{aaO( z7@@h#Fpn}wPg*0-vynh!`lAOcFGylrB18#+1#g_b;?QHs=pu0zSDp3^kIUR zTy|h+h4VJ#rGq3KMDfAM9RjjwD%*RIHa&z^@i>ZamwsF3C_o%6)ut2{To?5-bx3dx?R) z*hfo$n_8bXvycMccj%@Zz#%x|JIF8tf#dH& zfz;i54-~@KU>=(x^Z*$Fa8Fo>Q5qlAkXdCjCL#SIVzB9n@h))M+q0et(xrx%QEu4T zZ`!2B)W*{o)70H%Kh1xg61O{(aZA%RK29v2EjW&y#bJ~f2#P~0IouDgLtg{6G zGKh2oe=(6{OF-$f#z(Ev5n?IGYw2yYAX%JTk<}Noom`3xc|NovS)AJTw1x-H!6Vh^ zRfg?Uz1@(=gD0+1ikEMkGftmN+_^HlDNS})d6kiUyTYM_e9{?`6di;+I(+* zF|;7)%0Dn()#e`j4r-$47`ltx@vyuKI{IyLSaKNE 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

2R>s=diTSbm~6TTwX={ zGM>$r2etF;%bZSA>6VM`=Wd;vJBCT}Uo47Z-D|>y@I7>5Z>DSTW)F^IBZ4u;JUM2h zSUpu24V`;&S9#c3$8YdoStOs4pGREyd9b6qqANb)$N!iRsLTCZSbsc<4)(Zowl}le zHD%GP;rRnzoi>Z7HuNipjXynNZ6zm4n#WOhK6>bT*+lCucybqM1YA_mJ;>?f{33o* z`q*BMh|ukmi^dDNIr_)SwLZw$IwN)4@HZYtNAL6sKal_K>N@aDkCGbSX?;=hRKqk% z=4h>+D`Yta{XvbmdE#wzo)_-1J+is}5XI%Jvj$5kfz)+OIxtn>V={rmPZ zTC5CTOrv=VWId6rK6s)PqyNBAY#AB$blzGM`yFp*@KZ7Pck1}=n{(f!&uS3m8FFe) zhmwvRI(vo2F+!uJ3A7(Vn-S5HOj8MCQE?JRq%}&7c1)TDePRbLgNBwl70y96@evE%SQb7sS1`fB6P36aaRD2RAw^3OWS5DXvV#c6L}URa1^7AiE`_~BD0k?wl~q9E*|1Yypktpnq;i8OLT6CX8`w!7duc8 zs`r>gcx6QN-;0t%SPl%KqFIVFv9K+b zVd7J?_SWR9Q|<;Oct@s(Mwf^$x5_q*oq3u-uL_Q!LN(`&F%{rOBPrgdZdgicn|EqV zqL!L-Oda_54C$ipi)#NXi1#MxQek6@dOoxoa+)QWk91UwK5^&Tua0rDK?CngMieSINUwwh~P8 zq&La|v1{=^R5X%oHJWLY=T4dk7nRJij$$_&@{MVcup0txvxZ$7dRK7Pvr9e>7Fo{K zMBO1oj26jqh?Nt;7HaXUGx<(zbi$@(?+e%!s)HPz<_qi3F7L$h24~4EWyXi+CR*(9 z)5%Ic@1DxKV;vQB(NQE#Cod^HFE=kQKY;)2w4nGy+POT+u155(e(cm`^d8mxitzk` z(fs=F`HlU#9r1jzeYBD!ihw2}PC{Y6y11tmbc_~U)G6$7EvyqxwV2Oi=oIK=v(^l; zY+@jCWY)ro!Xf!{!vTd)+s=)Ro_q2A+_-Sjt7UNMb}f1vUNn_gG}Bh}VYKMu_o6xB z;su@JFRsOl;l)dN#Xs7Le~lLZ`Cg2OFwnXTtQ!L#!64)_*xDH!PZ?Z47(|g09+9n6 zsu-FMk=?VTQwGFqyeJi%pbF-QQWZHthuvj*GQ3BOf+CN?Hj4D$_RjlJlwO1%}Y2V{~ znorX*%>{?}6F2D&l(A4GeepC6$#MgygXK}e=J{ckHKl!{<%6Sq?jk(LYPiD(Dt+=R zPR?W=XXDeHK{1gF4xf<2#X!33}1#iX-N{)~*_Lh=ykxx@oJR~5kj19;y-QF)*PVz+CqZJ%j zkemlR@v1e5XALu2Ca_BeJ74+Bmph&(%W0sz*`dz4b>FwCoka>+&nyKV2l_|_ZrnSg zSdgD(^5gi9h>c3ab+=Uch9l}rbQ|0;qCAbLTe0e+Ng^>3)?n>HS2u z$%Re#a?{YH%~-F^A$wJ}^KMo5(kGLY+d?2*!0LgN@a$tJ-U)8K(1u$YYCoUy%y_F{ z(o~ukDg!Q}JXKjoYYLyqZS7kwt$M}Q@Y?cX@%OqA<0g|Qf)er#1|3Zw0_(|dnzn3j zHrjr1e5T3rc#}y%{TH{(9(x)#1*0X0*o5Y=asv(R^2i>VEr%zHRizOjYsbfEpMIzx zutRV0urOLhho7pGlc5tLNdBPS#Q)PVf{b3KYjH^tZ3D~8@+JauboZ+)&-bX2L+Csz4jbFjo?xV#=_qu0rvaaFv!QW_vqes<>~$8n z4a9@uM3khwa|>}H1QWQdYGpH(*LVosu}^}1yn~lwaaZ>mdg2l*(W}n$tf71Rb;W#<3Kber z$g+ZHi~`bd#P~&Ai)5%({})r1cZc;-derj*^70J%f4YXH9Ne2Q}I0GsR=aDd`O(c`*N2|KF{bcX@ASpat-m_9QSj$BZjs_}v^Q~d`dabx2+{p!7l!PX zW72`~(x)>7zT4xl%iMY5H%=%N=+E4|VAWpzf%)TozfVwY)A<2L@<8!S?^P@Q#wa9ruZV;a@;uhw z|F}onrS4}Hhc8GSywc-KWu+ZptewqE^pXwpx|K-C_R`2Ob!`S(N6 zvYr90`ggYcY@W#%`@Q|Pmz5G;pLtoV^NZN+%R$2L3-1MuwM7Q@@}%@KYH#luyG=MJ zvM4fGp*qMqhp$j;wA1u;j9>4Z?fbc9=aALGKR3N!&+zn?=^qQZgNr)43F-RLm&?AX zXP@rfW6^159EdClTeIwpJGim8guSyY`QD}D_r8tYTbJ^%A+r6C)xggJCe~v(?DX(r z$~}4Ao49LC`*TAMv*PS0#JhJAF$F<}y+LFlf46MI`vP}RLPICK`V#dKH7b!rLj-8J zI-2o#`-3bcZnp0M2V(Ov@w@08w|C68*LOVJ#yJ$EdyjHr!0p#Pzu!+TUA<>GJ5c-U zX3YAk^!+1!^Zlni9_82ZJI{7{b?n5rAJ)n_yu0q$o(wYv`SFFRC(pg~-yD-QpRvN+ zXG0h$TTj#p;m**lwb@D!!nP94;rOg^>u$G^ANseA>zYn+-^)5N_H}IJg+g!2?1)+F zNbR-yW~-4@g?qQG>#57(mcoIhp#@1l)dsT-FH)a zUESji3dl3PN?a74pMF@b;z1+--A(88InWO`D-xBdTLXsgeIFFGUf&@rH>%qAoFy`Q zZ_UG^Z#PiCnnq`zh>O3%e&{C#-G2IG#CFU$chd`{>mrKl%{YIL=4dr)w>s;M#2C12 zpyi&%9*X6s$L2qb{c`Q;_T!ItZ$ZPsR-qN{dZiPFgngAF+p+$Q^7p+=>oyMWEt^UQ zOli#-anvmr?(rG@&cVVzORN+aOv9}9`ZQH z{&DuaCoUg()#+M){KpbK3bxJ;3*Wu#&Go9`;~Vpin}J--50&0E7K|-kD>c3Swn>ps z@yxrfyELbytRW$8_tC7<59O_l53JmtRrTU~?>>~he%s;D+lPP3eF|sI?mur1nDyWG z;T2bn`W*f0h0*ap!>_M@{BXCypQ(h69r_&fPDS<8?8#3{+l1K3n+bFF2d>WK*R+4% zHiwnqKS5;;W=8K<8gcEM!!6GdCFXey=J|Hd3!Iu4DxMd)F)#LVUVM3;B(bo;U_om4 zg3PG}x#9(d8w*M=7d9_1s7QQPTQ>Ntu{`@_*Jtf@^V?>s&bEElS^nI8ppxfDuHm{b zrn?`RtSd1t?lOD%h1L3k(!%t-JW}{dKEjaLsjKL?ET0}F7wAo-?yeQ(zF<~Lq^5sm zi@Q+pK)&rnj#IRI`of}(!MB{zO=x-I`nF;;1G9^OP&aN#n`rDnUtH|`X3M*!`IQh) zf#Q~pMAO&mWOeRGrK+Q9*&OPdCk>bQM^w4~tPW@@Q_gYh|q$MFkdq-7p<{q84 zh68s_U9oBX+4Pc(8`df2)h#>xyJ#7sTWX|xLE_Ifmz~XON<091V#4bW9Jtk@U?OX8b;%}(bOfCUW8{IKL<6w z@g9wTo#eK$RzqgDuef!Qai0Af%j``a*JFiuytT^Tvj0U--i~)RMO#n&!HPIcQAE}MPk>lu!T2wURyo=`75GV56?kd`m>eBv91_#Ner$ff17`E zqv2i)Hbif#r1foS0Abw=Js@k8gvjzyMM5NlOu6Pcsc(ONDw7dEZNuxbmATA~L=&mB zt^CeD7fl3r$Euq4J}{!1itfMULn9(X3^R#|#&tIyo1#g#h>^xT<|x+5y58K)QJvBJ zmOOo_1nw?sh0+c+o_>j~3(;{hBr!5Bqf6}bR`r8EP1ag3W7TbRQcDln=xu#4!+v(r zhzpUA=aXwtPMqW|Xh-h1b%hQU-$~h`1>>VMB?D z9>`-X^FkQsdc-b@?`z-A&;VW2TM5)KTSH{(#MG{Mwi;(r(&zm-yQBW__r->Cw|gP$ z#21!I=w?n@zFE$GZN76@#H&<6hJuPa;2~~{aOnz-C+->cq&aQ<`g1RhO-aW%ZkyWp zv3EtMxI}2m%V-z1`zQeubHDuk@ky*jM#1Am1tp;pSLF0I-RX)grlJ8Ac_;eEDBn?)ugq*101AxA5!6(AI(Vq4y;=cx-#fT_e5e zJ5QTCYRx)05C~94-CstaU!sav- zE!g9U-_lB1<~lkQ1L_}wiMAn6_E4;>u@{?TtD!*4P@HnC7l*I5k;vnrcUt|P5R z;)_EG23T)moVM`>f%}PO#v8)PB)ah6xJOH%B~l*7D_{CiKC2ZGu?k6IClC0#c#;X5 zgQEoLEPR5bmv)WSH><2B&^COw7&lTwLM!(f=Rt34rkttTLM&zvGAVRsJWstcjka&h zTX08K5-}8O<2Y%B=x!)xBYCpPAWqv!t{K)LA*ZPUw?B#7$DVIhLiMS*;nf)U!7(yM zS~sbYtb^EH@5yQ`x4>VLE)v!+VUxLEA(_l$nO~@ubzw4ztJgdZl}VAlqQs`L=e%yA z#qti>o-YLX^RI;VY4&pRQ+qZVgbQ0dNMLgypzk5$$djw(8S3G(`nRU}g0@NF%I9tm zI5EofyesV<@(FDXkk2^vHY8_a^xZ6$$Li*=y39`wiouBmnqN&h!?112$Y=Ue%8Q;7 z(e8J9bZc_u9LALnoR;;K(g7>L08H#O8O^Bf4yb>6RG%It_+ zvkVVSOu5d=`2+DxaI%w&uZzvh{r#47@iXv;h3~(VtUb+uuFD$}-k;Ur>Xq8_X7HnC zaOibPGz89S3>!L9h89E*8n#cXVRHwwmYvakzJ97d9h^JLYik^Uz--y&5}!K*N50>K z-hTU7z~KzvzxaJLOxAYUuf9`gv&rSZU+2GSaCafUHyTyQ@5y=0HPTu^4;3qz~fl>$#BpOy=nR5A}ZV6inE5c z_)4@2ZQ=~h!Dg8OXdzf(IiNIHD1-zGCb6B{OXR3G@KRism2l5tDNtnt-s|CJf3_$A zTY>OP(LlBvC%oj7S8rTzl?c4Fy5`P)iNzzx3#+xCvHi&n$mF-;>dVs)ByJXpxZ%}Y zJ1nnO$nE=&RdF4-48@06Y(Y-UicK=c>TpUL-hjX3r)c&Ku2~l z!WJ~Jx<9}WY=aOP9%l1Xqtsyr4?#zQy9}7WF7B$=L2bC(bixR?#A@uzS_+6^3}Bd3 zfVRJ83y~(C$_75rH(usEg-XKlvI@JDp*AhRUttMtL1g9-({MfO_4l)=`tjATzYhn_ z^gBzP2UNT6{t55;Z^NsO{GOYUqx&W)M$fqL8`GnsE(X%RxH`!I^$#ACtFp?;lF7a1 z_$eHx4(rNq!!npnlQ^xrnXvi&e|jVU)%>u&#lpTNcJbGfpgD8Z7wqx>TuF2$+D;1& zW#1R{heH)hevn3H)QZO#^|8M1MXHdM2vBz-nP(bEUB31zh&G*>fUYLhh~gm%cn%9Z z`A98QWiU4$_x5ogl(j;@hbF=S|LF?+r>V~5Jb+TlscliI2a%HhgQNFx`?3lJ7|rj0 za3pCOoxuoqngROi^FS`HA4yPK4^qpu6D-Um9Zag(yQ(h-JsTovsFZhI)WYS2$6tWp z6e$VfML0<<`1{v=W*UfZ3`1%V68=3tHShTqpZ<%cLrPll8_~VTbmh$1wr*V{kwZuY>{CT65&8NrmG)BHiRD z;$vpdG};8pcA$bdmEr;+y-jSt^OMI;pOikpoU2D-uLcBpnEW-{rgo9OQHoL`7XcLz zWP13%4JpGeAyx|06c5iE<4H>&87`|1r%+nPbjhB%{LR?{E8Mp^`h;gXKS*WKe_a@x z($kw;C4U6p-~fivQSz zhHk!_Ze?Uw9W6dHZ!A;F0NBvK*2Z@Z@;nn>SEQit4I*XLpBCfwlY;d3rQ!9*qtuD# z=dx5H>YF@e^#-SM55^5!*GAf?hCLj$A!aO`e+($_NuRQzO8%(`2r1cqDrs5gzE}b( zedJ2qsY*AN-ssDzN!=TerALhq6o{X6>X>+WTc=myp5Hw`J=M@U*2 zyiO&F<67O$g&YBA(V$K6Qb81`8cJDYb&Vhy*opuOCKRcp%v|^1 zWV76atcMq!!+jO29^a2|tL6bbnO<(1kdI9AaIf$h@xOdpGNoP>MJBLkH@$l+dFqPc z9Oi5_Oh7|PEGY?Hj}23&#km9lZteItr&%Op6p-qxlDlxW6G6Uq(^Qqo9MVif)MfSe zN?mQ!RE2TW2Lgp)HV~H3Pe4fZsaV((UI@I7Tb#`tB+xtjnKI)iGvPC$?x!OgHHb_- z-jBa9%+yCjPzPUK2`Bt(GfxG~C_J-h1u;CFS;Z#ptWPVQ+J+@Yo%o~Qs-!F}x89d# zI@g-fAO;d7i>wubDQVeUdFbDw8Tv5~tG7q)vc38Qf4Cxrc6Cii!9djT6$b)Lz8ZB~ z7x*$P5VFrFjBFE3ij^pUrG<~qrRNucUDA%0yv~anYyPB!Q+vqcYL9COmoJ&F7e^H8 zW`#+WsY_qP(DPD(bP&%5chDvSc{l6R-M%v<5osPkrn(8G0`h(x4I=3NgI@xKr*|Kp zg_gF#?qZ(UBnTYGh0565-_zBpv+@?qF6c@{v0A<12Sh}lJQE)y23)XX1@vpUZ$3#J zHbz|h4{3HU`bDuWWYHd2w7c}59i4Vj=P4BE8MZ4wTU*oqwn5K+F&Z)PD}Hi*7MiZY zNXEn{%0Qhlo4#BQNGUx`{@1>bVewD^Dl}6rUMf)-&t)?I%Y13yJ>e`q;qxy|f<7WKgP6IP z289t@_XlUo6Mk#Q{}HU1QbHhg5|~VsSpt@`E*gIj{LpaW1KbL+kn-vHijoU&*A=_tIq>iB|en#Pm$kaV&bU-Q8wLJ3LQuiTal$yK z=|DSQ{^goXy1kMxdkT3?EImQ~mb{mn`B zV;m||dEY5+^Ude1o~U0U6q;uiCL0-=1JV;JR3P8IzZl=J#T4U}A6lM^+j@K=_}C*M z?d*IVSA0De+yW`(amB_}ISu@>)=g(wJHWf3nj^dUTO7^X+X@jl!rpY61-8DNZ|z;t zSWyo3vf$XHDJKjFZPk47I=wNj&f%qb`CGmYLdwLOe>`dO+nh=kN=SJdMDhgEvIQEf zqO8`UmAN6*2Kv)3{-&@fBrWPZ58x)2amxmg*m1hOtaDGdPcpbJqEA-2=oNtWDx6OA zI=`7a=9{{_bGz;Hi(kn61(IYlz?!t+*SqNi+mU38-?<+z$XoEJ-?!8%!R0Q|J@)eF z{)8^fOiH?+n<9CWa;h$aRDt>wM-=0|u8iVk}>x&Ekn>uxuE9&q5wbp&7n>dr2bT{FeE?lh%P;dHN z4Y>_E&2T4j)q7THIn56jSQXv>^`lbGR5xBtckQ4*C|`jG%P`e3ly^B*%f>!IFIAsX zymU;o|b@7{QbAAda*O0s?l_xQTJZ@J>m3 zgwvVpU-k3%@1z+m-%$%p4?PO_v@WF`@AL=}b|Z8X?Oe%!Q>^J+z$c!KsJsNpuq@gs zh!dhddX(jPM_x67R|Uj_eaEFwMl}OQKNF3PcE}G#=-G?U)UTi80jkyQ;{bOku!ASTj~o-4WM zkb|Wwf~y&pteG;Wo!DW@-$hOs>G@q>rS_wenf8F&;UW8`lUE?noj*T@QAyzz(rwlfsM zLw-PFSP8xPKKEY7=&imL{%7Q!DCgfT*YD+TSa5||e>}Xmtcw^OoyfI5>3a0%Da*$% zx+hIs@KX&;`|X^rCjbYD;nD`M@^QIKg)9muW8$ZlE|o`LKgy-jQ3pq_Sqj!4AO;xW zoc9!~0U}`xV3Jzy+EnnsF+{VSL8W2$R)-RK&IN8LERUVPh$^r+5@9{%KDjw@@8Q@H zl1wIny14vPf@I5}s6b#HjEV!DLHQA#l|}&;9UJTCdNZpp9-h&BD0g@76A77vMu>H> zRvHy3iz90Ypy-QuUYJE-Eo&8Ch5-g2=)O(k=n6mlx$}+tdlZ(ziVk3i)<7JR*X*zF z_9BtQ$sq4jUnp$8!eWei*^Y~e#`7wm0(quK6=qA>DuQ{5m{=+R78A-z$4ssy6?_f- zCwCs$T^=|OzN^TM%jMP+RPyk5@nf`%vUFX!7x106lMVg#z}p&b^ikA;?*4*bc?4hq ze7>svDFZBlYjPX^?2i18z_vix^OM8y9p2beTLH=?98+Glr$F+=xRmKx zslA+deg1&OcX281vmgte`7qaqmufQRz^R~Rf#6w0g&m!}SA6ZA&RNuMtl>E{=5sRa z7v9uP?S;B( zoOO(!?sM43hldH5!gy=TD0ids#1jCEuNAp(9VpT!1yTA7DGVy%H>=5w3rqI!#@}4_ z=Cg6^QVd4Rk}bo05pu2LNZJrYb6GJb`-&260QEz4r2fgYU)CeTE)^zlOMci&OvgJU zeFYQguoa(d6<&Kk*KCvm#GbXsu&Hn5;p84&oBxmgo^h@cpfv(2 z)x*24>h}&;lGN3XzZ5=D`@LEBOzqE34_)o=-lV!Z{p8oX2kQThzdbvB{6kj<7^G+* zwq_FS8Wzl6O@k^nlhKh_h^W*6!mK%ps}~EqP(8pL*c>hN7Yo;v8f49Arbt{9Mw(X- za<=*hUkF=yZM#T&!&%41-Tc8-J^;jFJ?>=pd4WS7qxtMKBavrDnB@huXL|FSf*z!h zrG-Yq*e`?6jotV!QTx=vw+hzf&%1ZZXSG5D;;G&^CL>b1qVkB7TJJc|8BuK++jOD; z4};JswN?nMdoN?f7>ZGVUYyt^HQALtGWe1wGM1PcPjNZpr9?V63v){Bg^M;+YBheq zF+5kyd4|r^*HfFtB5*oZifN#WU2AC!^mk?1u#hf2Ke6Q8eM3q0NlkgjyU(8@#Yitf9a*x~;aZnk^fGDS)xiDj%wygA%bJEyh zw1AhgAFKJf57J*RzwRDyxJ(3i^28Nc*sq)UX(<9)itN9X=4 zvAXqj4JFF!Z_t|iU+);dgW1czBX;Vj5|?&mLT0S3IdwI2Y8_}M6GMQ=mA_6pf=^8A zhxc!77p*yd>?S;$3nq%qyGZSEDnEeM$%|J=Yn-?cs09|KYsZt>`TAjCj zR&&eId>0%uAPLRN1K9mVNFo633I9MH5~hHdeLB>FQ?d1eQf(KwV%vVze2K7UdN-K2 zfXzzrk!3NQ9BOqtlQ_KLW7e}2c<~^yvmpb~OAwb>JjlPF@x>9b$@XQW!>QR#9)Q^0 za32Y26nNg?cQ-<-d$zrMXnXtSq4y^RzP0XFuSQ3aP0eLEk?BBbN|bKrn6RAP&7g5s zXH+_U`sJOf$kOjXJ>71_V4?FF+(e3eLGcBhpwijXpb#}|(AVZzj$|N3+tGEwhQ(C2 zQO-FaF)ikEvM@9+TTfPwn1)uNHpdllWBA&wrKwsXLfF`dCwlJZ9F9ezS093J)x8A) zAeqd~Ea!~gH3^308q=IH_+Yir8y_qLAfd(CYNN4w<)&>8)wu|S3tZ58oOo#< zLbZ2W$Q`vf@p7^JmOwC!=IFmC+tCl5elX1jcif$dos3@7_X z^7=7g)o26w^nL3XkMer)>|{ThZ_Dg@A8es7H}niUM6ensG4?L6{m~okM_L4p4_&$? zZ(ls~vhK5f^b!#>;H&lRJnh@CqsI7|-!+fsV+w~%4V*0m?$FRj37=L=jYg$kje-EH zwyd#VsR)a4XE7XM5%Gr^$9|Lz*hfJvaA2AVxCj7v_yDYJ;YB(YSc`j>JnO0icNVh% zh{Peqzc4VsRy9kMEfX`C#LP#raTq$^&&Z4>F$Wg%uxayNadqU?QBtF^IlJ7^ zTY((davc{|*bmuSJT|ynXbL51<8C-tzZAYtpVKLF=HnaTi+y~5J8qeFaUMGq z;H+_1IMPDES1#Qdv+5*VdaM@g{L|Gj1$o z6r+@pWKpK2mvYUEuYy@y)!f$*oX515VFPhQGipj^1mAk2$Jr&>q zNM$kIF{UEcUKU?;h!sDWNlwDlLj*}2MY}mKG8D6@4Ihaki3gwnn+Z{!{WVtWNj;$z z3r9+^SGkswt9ZVZPNS2_=}fSquSeK>*sQK0ObDY+0K88{mb1^G|2ZBJ6iXAAQ zzG&-I&-tM%2!ftx#5SUIKuuke;mS7yCq9!mA3un9v6`FLvG;^`F+L2aMir5qwRl+& zBz_d>s)V!IFQ|bW{c|WEB|f7%s=)K|@9FymTwxh;&bX>zvnmCLuWkkvhH#Rxg;xj~ z$O+_^w&erXsIQ4;U9uu&wrs}(c`@Ybc9pu^fH6?!^PXIJ$5UOqdv!ksNX}V0(QsOHZ;k7AZR~s7_8rJi{h{UpuG-m= zNkB zWlclst@!-)tgfWAM@|?NY-w8?*FKfibYZJgj&%+LF)5L0H8jJ6_d3;Q-@P0bh5<8! z`oMl|d$1e;VQN{Ogl}`)N&B{aQUA_%MX?uYRbKv~{x^W&-TqW8rZum_g%Z74hrdRT z=@Rj_L(0a=%Wo(*YK{56L)Nn)x03#4uZt}9*)lb4)_LyBMsw)Ua(sWDR92;JeT`~d zO>EpTpnNLGSu}vm%kVDzt{zi-oFim9@7SQ_xijJj`IPAPpP$R2coUHJ-F`^4Cq)9^ z_uY8EcE4XPNEq@U&y!QGoCVs{4rzQj2;K72+H>5A!2OtB{T|7+HZ!rXmMHsH=B5F3 z$^4*dPsUFT}p99@MuBtJ2cid{!f4P~uBnH3Va|yZ(K5blctg3zIQ^)wz1M zI4AxGFJ<&-GXmJMV3T)iHu!2_oNlomjmFv8cKqNWh z=p50jd2{fa&&GO%#gIm$ZLGmiN-XS|$jCOhKJNSuvqWtyW)F2{UZ-3k>xu-R;J~I& z0lR7q3pIN+oKFF0d5%kOcq#mLOaj*{7%$X$mWktQ((|t*e46tTyubyv2Dl(Ek=5rk z(p%b_{hfx+>Ac^ISPK9syV}Xk|3r4Q_kY-wyh4IW_H*{2H!Q4$Th2Z>k@))Rb@?I% zUA;;`-(;8GxHVnc;DA`MKKc^0-I|i_0zhODEP$*yhx3@Z>e+SDSnG0!vzUx5>JDR$ z^AGABEd>qfk{|v+x zbLwxq>^)ofPXArdv{W8jbfNP8PaUx*?PIOHhRlm>!!qVs$~{BUc1bcxa-Ez{@B%^R zXxb+kr32*rmBYQnrCTiF96V-9fL`o1L7in!8oM>XuF!hwCJlVM4(-{{xwcQz3NC=q z&N)#Oo{z#%I1w7OsiBCXGtf1JI;Q-D02e{Iihl(dVr_YlQ^Vjp4Y6*6o)}@+RBM`< z!d=^DCjn6ziQ#vSndgU>wci8B63(j6Yw)Nis38pRU?HA(kxyvE>e7Ec5Gkc+(4@08 z=`w3%b?zA}ni|y_j9EGTuTgHvgu8ZzG8!z(o)r{{)_%G$k%jbbeS~NTu}uwW4qQE- zUoKYXckMQln<2%G0dW8HxLD6@JccjWq`7ku}wJ*eq!zhCB)qQk7uG3ksQ>(2Vzh*VV7n>p&YSBBC+C3yT6_fbzx)cMcC8O1Rl!ZM^ z3$8*FCXk^JKg&xBX^ZwRPKMrwgq+niGZoM_lhZao8ir;GAbda!5GaF@Fr9ZO{wprw z(Gh@E0p?;f6eyZ*4j)@T!T&M{T!V00C!NkJ%5`AaBt(S?8)L?!9sk_<+B-&=TXw*qb*QT40*LT z@d9~n*rt4VtuM~|0^H|QWsNlFoBPY$2HIISw0VL=I*Ao&u3fz6RAR5FQ0$ns`?QRL zkF9ax(duCo!?uSExYUTccF(8fcft$0x)YvX{x7Tv*TBaFr!MS-Rl7FEj6)sjCEtU` zP4*$NjN*Q?ckiTKsWLp$=9$+}8qx$@EJ|ps6db&Z<1i*B*L6tj{aex_i~rJx0m-hv zz3{-JF-p%*ZI#gsukpo_HMZi3fmr&QBP1agli<)0W`Y$UNIt!9MZ$;S7a!S}J(s z@Ki)~bNuj+u>hVvvA1KRjMSuSpvvqd~ zl(G1uaFadVE!(7gnjP9mPN!bK|HoChP;3$Wy&|6$1t3)uhdK`soh)h#&B@t3%xt$) zhKW-)67#E{!Dfe3lUiz#G&=hA#=&@e%R0N>?8fNqu2IehNN;>_=!4*Cx5;n^)SBxI zWa4=Iq1v}Q#zrCkoOq1KB9kZ@sPB(>JQAh`RhaCrseSpBJgVo>X|G0Zs~pGVK1$A9 z>7l&(d+6#m_Zmfdfl)iS`Ru2EOY8s(_oeBjU5C2Cl;6SXcP>y5s-FG+^w8<){gcQC z43;LZ?)ZOp>pAXH*SY)h_YZZtck1gI790c)kcjwbMpg-nt~6)OI2K`@ES2=tK`4WQ z2+lm+RX3Fb8Y|G{&ybTUXvE=tap9$a^?fO`o7W$ylVO%`tJsPl z8tGhX`B`4(Ro6>(vae**Z&}veXz`eTn(cj~$!Q>#^J3 zAIGIy5bX83%CyR=uOQ@GJyqU^+RY)gQ<*LAb1iHWjI0u71*hgq4h+sHKFI&bZ+51}?Alv?J_#u;h2?6ay=B+_SMqz2zq9eMNSyU4 zDqH#s!G@zPuLq5%AWxAfwGJ+eu^w1-)Nc14Dnp?k?9jTau~i<9dHzEUbxtcz$;jX- zo4LlGYR-fme7Hn_hYm3OT4XR)D_-LdDCN1?drqBVhIMBw4MX|Uq8+oO5|JDPf-dY) zu)>g7ds3?gsz&V9L~83?;N)iI-`UB;jP2Gc_F;hw-Aa<+S5pOvMxK2K%0+3$@^zp6 z%Tz1}uRp6^C|4f@$^x-BoBZl>?unu0YcbY-^? z(-p|BfN~L>N%{osdFo|Qm-88RE(3A~A`hz|ya85ejTh#_eb!5`hhk&6d((EPE~&-~ zV|d?T%jqb4PMno3t3k-T6*o?42E?96vr%VW4JG5*UAS!Anc1*Q_T0ZOF1ok7w_64? zK=5(gBqBX`(GP?Po_1kgav`08P!&dvRPTK^UumAQ&{8_%!PCX|ODsfNM;vWw@ulN) zO;4;KjOv`Rv!?P{R(&nIJNr(1n=AM2xp_CGuM9R{^DPhdR~0Uuberbg{+Ra#98+oI zQE|6KWu2_^Fn_B2qR`Xz$Awl)c4g_mL64gTloP1G6314*oi|g_WBjX7i=`Mn^f)#L zRY)=TCkxn!3nH3VH=i1Cw7kV<=^V zEUa{E0F!pU&7n&b0IkNoCp%u>)b6cu zS%sbK+7;3NOW(OOdvEJgu2aO1fx~BiD)dSF-e>5jqt=tN{`bC5Iu0er_A$cJqHf3% zXQnQdR$V4Yoja{@*eU?3k-O2`wk*7QrDV><9Wd-Xo)M-1}IxwEn=C@T0W zfqapW2It&p(24x7@SClF6s8T#a9st$mOZ8=3EPf2U*ydE1OSVa5n|i{91~&{k4a3U zpmuWsD2)ViBY|$^X+W<5Bz4|z(T=Vkn&E6J2(f?!<46&Ft&}DocsUmO)|rL=fM-Y; zybJ|+KEw6LeubR zF=%%0E!j!dAwlt9#cULO&HcsC+{wS^8_0Ba;$M-dDbP|z^zS;V+`R zpS~+zUzd{lcT^PucG$o(v6)sVd6hs~ZbHFG(ml00J+N#%1V*KU@gIoAPZQ!HF76mZ zfS4}9p2ZK_O)c~?^8WhVcAO)xJ;TPbXytS5jVg(jv@br!ddMn0-3-k(HD7P*29Jr3 zT71X-?E3-3%l17>f)B^!%DrB^mj3ZuiaPMC(IH0MxhipSFhj=AzTNoZp8_d*%!T~3 zSKZyDueOZ2ST*Jw%Q-wTn6I^pxz1?wN(~it290rppIp}4Dj4cVRyYG!2}1oq^Q9<2 zDS&|h)dYWiM?ryrI~*K7>LE*WU}F0*2T3<&?Z&udEBL8cPYQ!E8=hif*#;*p(Mg zz>ac}=xrBdgwe=(m~6^Q!RpIal|jCRPnHIMYC+eqB@AHwaPsn5_VUd zwC;7I;>4y2H&CA@mf1aS0s{&_q%*>DVtuN&1Q9Sy)c5cH$p7vE0(dOevK!>|7fOQN zl69SsSR9tw`r^i2c#A!?BmC-&IK^pOk>x@ceQ^6K@%5GW#H^jLd{4{fYVQ}{HWSR7 zC3V^rEw6do$wowfqJ+@@EvLrcXV82fd=eq$tpb$iQ1;Sr?G|Sl_UKTC}+E~$j$%$i4 z{Bsk4eE)c4^`YM~*DtEM@X-b*f%>p~jJR^MkU$KRGPY+#$)V;XirR!h7zSiCBpyT6*wrX6e46Wz2-nU~p znrkl-@8Cu4yWHd_zmvZ@-C2B46(8YaP5)Pw!zu)3o+|#%N7Bra9ooCOV%2&3RgDlo z_=qBB`90(f0DLd;IB2$+WJnDP_A5-g`j6$-vks1^$@?Kr*Pp#DKKpOMeR3z&rheTb=*of9ai8EN`oOb)h<8EX zLhrslU;-?7?w1qN)GxhyWHEhu%rX{M`GMW8`?uc|0;c|0d$Fg0dr2{Alv#NR)50BW z+W@2<3TX9ld3Q6x==x-iDiR z|9RLn$Q83unR+-T?=7YW_x3}k>`J3Xm_5Zlwk7kxfa2yIcTdChYt7i&)Ampz_S!OC z0zI*H7GRFzk=w#z2q6C3goSC4D9g)6LxLF~dgMb;n4SdA3&Ty(hmE~38k$|>^o138 z6vK8y53-8kj0VA$z)(U1FKbJ~AnLs&*qv!uaWk@^Vav+rYgDQ!Zu_}BYB-b?Q8mq# z`-(ey7csND`S3h~o}KnPc=~sByo?>(EvJ$qYZb%rjE!@0N& z_yPf#Ww5L;s{XC(IFDrrkqA>W6zpp{-hIf}N8ow9!#I=XmO~iM*c%x!eTqc!ma@T{ zAT1NDo49ZKm4Ubce~4%1p(13c3_F2-|HyH2D;NtZ z%W2n7XZ4pH09~drUm>DkKiQyZO7EcO8@$i+|94*3#RM=}o)(7zSOvx)24!#eTh1vw zIH(2<{CoGhG6_n#zzCx;P%@$Q10g)j7dbP}&mcG@pMYilQ@rpWAbbn(%v4}-%a8#W z>hT!G8n)(1VaPBYMxEHz!yO36vQ^5Qk^QDL`8BWcUF-EH1%7JJO}}9$H{w~omM7%( zzP!Kt-&Z-qyrchM`RAG26ZnSB4kMZIxjV{VZ@Q+vz_IMBRvGi&+~fky$xF_u_HDY+ z)v`QQvLuq7kr*miVK4}DzDkW6+dl%XrgnERy4k-f?)QMG0at$Gw3Gg0USkFrUMaEc zY7gk>T*h6tHz#mm988q7Zv;Otj|Q3Gg0A2=$DlwnDF_J`eTcivyQ6*SCXlv|r2x9; zHFUK%^(`$7Q?!upldy?ZH>5Oh_a_+$Y&{U%x&&2qzEwxtV$-p_uuERO?xvRN+#F{9 zZRNPS>{veB0{16Viz$mNujCottXZWf$G`uU4W*HLR%5j0jTpxRm{JamGfIrpTrxzf z@T}PlPRqw^a(P5>EWkbJBT_~MNr6g3AA?9VLDw>?+ZS(q+d`^~vG>w!=v;=%*9#t0rhR{5+vyh~5NGyK7wHAL z2`!fyu&ZpSA{)Rw#hlD0!tO$>5wUW;bl_&HEE~r1etXc(JmfPPp-FM(UpzJdo>NDQq^Wwl~M%i~h)c0+N?}r256=lCKp?;eke)OFKzdhyKzm(7Q zYNG0wZ?}Vm{E7aIo#H5Ge{o^WR#yz1n{gH-PAKIr8xU4;7E%_LJuSLQ=8NwPuDBB}{W+LbB;>{=S=(H|6F{WlLcQLE*3DqU07N7$ zAZW@h25=`yZX|DU%BV&53$W}0P8m)qRZkQrvtciZS)X} zRJnK61!TX%O$iaETneA}6JN`{yO}FGwQ}#UGg|fN937$sc}d04aFAJZ0A7lLJHJG& zKDb~U$rOd5Eu%z^u(;*e^D>ts10zI%@)3qOGEW?fKP+sS4{%0vs6^f*aRPW0rb{?V zC0^T$TtTs)SpghZ5=6<|`(%CyF-p~+J&eo^cD7C&u7c~(hw_r`ZsO#R0M^7aqlB7|qEC)ecQk;KQnW>9S{w+qtBuN`rZv!5EbbuSgE8zQ>=tiO88qx) zQkrEhJW4nYL`}onglG<+v@NB>7UOg^?pX37t7BkT+?^&Y7qW~bOk(t*g){+(k}zQl zn>#jl{UD^o(M@*A{e8Carm&{Q5J&BKiQ<(vNlt!6$ewKc_hRNIOh_YO#!(7lZ+OZRMix%>O znB&#SPJC;9_w8c@P=0Kf$MTDW1Nhtql5Fy@MJvGl0bU~zd-V#piZxIM;zI-MPldUI zSAa-oF{2g04}Ujs1y~)xCjPF@46iBtT?7>?w!6jeM&@%I;PAj#_YGjz-f~6?b64W| z&_p4wGF~(>kWTMz+zFS#z_j|+(=W4Ebk+#rd$z~=-f!?k!( zZJ<_W8Vj-vqrm@!zch^>^!T-8BbXFtI1-^B5rLpV;V!TR8p)81UB?P~0uIPL;2(gn zrAHw+l$sT~j;L-g9Sh^ID zU~EHTEek>65%%1y(_c93-@s6K`UVH!QOF2`a@ikt3P%kY7XbtTVYe$zvL5_s95)zp zrDRE9SNr~D9!@ls*EUW74Lo3gv7-S&qzJ}sfOAB1JpZp=k-)@%n<;OSSkW}j677jk zrP#H6A(Ts%6JFS31yFH*_9gOVg$s-i#2-6=+5!YD-f+QPcq}?G*d-d{ZyQN#pVRG|BNvkI^?E*C8HYlzsH^}UpicVIblOW!_HT{?d>`L(m6l8?QlVrjS-yVl(YB5~*03fG=+ZT$VPqAI0D zL&+_n;2N1s1z3T%0LSkKyxkQ_Z*PD|t!Mbk|1ANr?D!=R+Fn2Xw6XGIP{2J*9krnTpoJ%8*@Qp2T?uDx(+~ zy+Gvd&s{w$^u~)ge7&>+g5@<^$#%Md0Ah0(ht?3d1!j>imTz}ipH&d9bluE$FY8~| zU0t6P{(AXnUGoOJ#e-jaS06c&?}4yO`Oema2fuuu{bE>)x=i0JmffoA-%8;Z4tw-1 z;n~p*jZAK59F3ZRh&p3&gCAK|daT-Fc?0#Y=R4=eWA=M9Ox-iAf7ySkZdy6wwf?;B zJVbUavqK?}FcOQvgI)1wYu7(w*KthS^nco$e_ucP4^cKcf2x`jSpsW1C|j|vQB>w3Id7*{XNdF4yAF^SzuQ%l_Hwa-Dsjrbzp&Ev@hD{%GfvD zlMLt=!Ret3)zhU~Nqnk_N;R_;Muk`IAura>)mYTo_9b4dTWGNF2|q#RY)LY}{#v7S z7L4$1u-F$snp-_t9IBmmkuc3}6Uq42_WWY}woG*B7#oOPiL@Gh%4#}ZQz9{eAtG5E zq$(Ks;+rUW?08&jbrgq`W-~lSv9LVvVi1fP_+?-g;=k)7*S3eUo#V<-y<8rEh$vvVVQ zt|{_n9(MZTA1m{KrvkW#2~s*{nXIyXfw%yGgc$*S@a)uA;z3~3ulIW%y63qHS*&Y= z6@mbnc}@-wc^O`OlH4Uu3-b&8AZ)B=?{1qN|Lwg|&&LndkY42(CI(&=IWNDCIy{QA*X4!FTtLAr^YZJw z)nxhB-k?g>AwdFKAKKD0)3f*T&pS|CUNk}?ou@5DZmxIsh1_O%5W%=n$^4~K@Jn_M znF|gR0i!|>P=RA2sYZe2DP!({a!h%QsjyYOi?(n~g^`R+B@&1_>vlFU?Tm-##1nkW z#4X{*j`f0u#DtcyZ}=Gl!~ABbutr?l!^kIWzEj9$AG7P4XG5~U)=3Q=CP*wy$=Sbd zU#=|}!K}K4cS~b650&0kNfxkR4W26sx`_|{TzvR3uwW2%(E%2Sxq=RPJ0izDKctuE z;4)}T=oIkx9510iK!IL)~ICz4CN3D ztxLMLPcRU&hdN~lb7;LQH}_oNRRPk|G|`uS7nHNe%(&g}`OXc^I60t2TrXp-R%rDc zVm#tvKKI~fF#7D(e3J(!2cJ?O{QI5R8-GTG0}>16#qpnUWp%%`+oB89-8H$)s1yv6 zUK==d{$v`G!U(YoO(<{$hobIVrDcX-{WPz_{Xdq zxz@d3Ho3>OmcWx2kc2@7#B0fwv8KYMWydDCZsN+=ivyLaEOrwt>dQEr;)mtF=kk1P)Ihv#JzWxl}pcqF&S;y6Q;EAqMm zQ?I?wpYqrWdh}Or?7~$VI~qj;Tj((`>49FHEgus>VkFIZ2xK1vfX%V{tEqqjfC{Gn zkma&Os(N!iN;T0gKas1^*FU~qvO(pXRM9&FTPDXSmY04vnt;I47?i^BV7F>1{g^1z zl>Q5H&+H9MZ*$K^I)15=^sO~NfBfoOae^>ntP)*)(L8R8;3XCBh3`-xNvQ|X9thLrCgt`yo1T;4y7BWQ?1O zxcYRZ?~??mY`{Ww(Jx1*bj7KUe9U*3mbM)wRn!K)bJe8yHU^0vFM@(`;&hpUdZ0{U z8bY*sV!$pBXiSoLweT>uWh-roU7);Llz-d3$;+_W)@9@+M39HZVS$U1Kw+7%Qe#X! zG!hpI#{$6ok$X?=m&0?DuO~R%4r*Us4ZSpg-T8PvQMyboGsI97E^umE821#-^pb zX04ESL`8^1C6Us<5^-G*+jFlz5sBh~4Je*@ZLW_@chLDmkDufA2rmkv^qjCz(0`(| zWZRpmPVWM-kF!qdxz_KjJKAAqDDFw+r6=Aw_qn%S*13DHbPhWt0O+-))1j~h-~;bM zQ_J;sN$t`|yf#nJj%$sGiN^R8Dk*HN!H+NcpOt(0^p2FVJJo*losP(XOVjd3@fLq$ z`K+gj>gkw(VWniBhruBvn92^Xyy68 z3^cko|HOq{2I&~1yr#>;cwps+_s3t>e9!T$&qHskiXDn#xFwH;c7G%YLAHA*9rcc< zdt1E7%SnF9xBm#c5OW|%B<;4H%a5UklV7XfTzXzQ_EBo>Cp_tr8Oi(Qhk-+$fLv6L z)k|t_-}WC#@^}+g^P7poeigdG6ec=+StKmv#TrRxgSCooWtv z2l(*#V69o`c**aHKR$*%VxItMa|E2JpKgj6?G$P+ywa?U5pYUSWehIp7p(p`yD#&} z-kkrs$6e?4M(nQ2;{z#I)e`k3Pr_OBTK$tTaIZa~K@VV{_k3u_GQ;F(s6KIlYr%TFDFRRi! zQi4T(oVJ`xBT<5Bk>UJ9+0NU#R|ZqAwkABsIASV2C595`LIR$mAQD8FSQ>_0;l~vZ z(ohE!I6=?J)C$kA|B*ydt`PQNKJIC2pF}?6Lzs$exx75Fyjb6;eLIqes+>*g_z;^q||n; z3K9y2a7Rnd2A>rzwCl+~Z|!#5xZobQ(7O!?SSSpj3eFhC25uDw0MIUFR+(O52cke; zKYhHja8kXPR+l|ZiGIo|o@bFpxy2e&#s4ShT(U$dc^6f($|_msmTU}_d{`^_ggEnA z{mfU&neS0&ezMN|;-2|4bms5cnOy|?_GM6DhMi7`#r#5)mB1A#stiJs@m8@9D zsI&JU6%7wzl88X!1ZKZIpqrm>7+q!;t)Z9z%K>1!ePY>Egpw$LBkrCz%#t)sN8fTc zE5gfo%m+E?`sz~+8&DX3qIoXolt(iWN<{|#I-hhGFyCYG@1bn+%Tn_zzI{ekgEjk5 zw%P5_)L_0UJxMQ(sElABqSX|(2+xcL$S7pc@IJD;0Y%sM+$4Wf655gm8DK)L&`>=(b8ehGsicNL3Liiw5c@ zvd(&%i&$x8Q#@|O&}f(i=l~t5dkt=$9Dk)8X$uF zaAhni>KO`zo=}1&z{R9NExstrEiD!u+JX}}-CFb7zFtLI{6U>8X&T4+Wjg;>;iFV( zONih%e&Ez+4Hy9%p$an%1!`#(@%G<5sx?0}4&x z%S}*oAW9{%l}GIXb6l#6Kw`+2mj70R&sA<=21;>DpG?AK+9OtMDx;oj-b_MeR)OJl z_-mwqcP7ZE=eSmFf>0iu0ohfWwFmaiHxl?0k8NpP>fzpUxF*S{B-2Gs(cllIn!^%d zny$@WCdil!^o5b;u*GKa9*N^PFnrbUqU&XNu=eaPrR%0;H-Bqg@V)k8gqwK}ApwGE zLx3Hk#B&<@KmLYPJdETHf9Z}|J_5uZIltbgd5MTX;$tYE&+7M!(KWeN!Pm*@s9Xmr z*2r~u;pL=Y31p81v{xbyB$*W4?44hk8H_UWL$#c300{bdco{H`1MA^~QX$7s7#2|~ zlPYSYm}*RvYU7EC7a#(DnIVqey78+XP~1BPH^lc8A4TH203M73iz=G^$jAR0#>>n)q24ad5bMweZ0gk6M*vNp*t%HXf*B<_P zv8(RCY(wjR2-4<3oOpaOJa`e0zlA3_#uM7)i6DE>+C6&?Wbv3i#AuIHOOMQ0kK7pL zo=1+PuH)@w$9o-)zd*$*3_c_ZeB&Ef9@+Qgr_-c?^K7#7odM_9P?wvPn0Lu856XJ6 zrN9jz&>jHgNGoR3!(Df*|Im4sB%TTlry@K-0=G{(7GY2-t{6kNYIQ)XHF^COrub=p zc&6K-OqABF8|<@NV0eyZ?tpEgyUA^Li`fDE2`LT%u-?Li#SEVAI>hE{m2mZhBzVS; zv4)SM0>V)=6)z|B!w65Wf-&sB8R{Pb=IE?fD%d;8#``$mP+gY;712HKc=y}f2 z%hfzKDDbUKU~F#S``N&cm;Ig;`A7paPXfT9(mH9VZ{b1PmxFfR1p%rws28owXYA9C z{iEt5=R8ByQU+RHI_gNc>KcU_ri9Wo0Q!}2)@4!f518H0P%D@YDFuBB`9wtS$*fuc z=fIQ5@`$6ko^25f7|Z;aS7d5=>CqYVPB4`4BO%wyFp0DKyHPZb!s69bvpjUm*y>O0RG1WaFE zjoWHU)9jf>KMVg^9{=ZQ{O%wI;+JI>o2Yi24XZ*OE zas6jTTOQ`t&yE_3Vp8vOSmKFAHDAfe6Sst36_B5?gHO&qx_@}_z4D3LJ)J5kBQwWP7@D)u zWvZqzA;mB4PbO;(F?0}FdOo5?tSnQ+8!?>-R%McF<>=Pni|rzV!*e-7m6#C9XgK#( zMCe3bUhbXSxhjjf39Q2y;ib>TgUq`u^XhyLbf&p4hOM6eQFiH|CFOEjLG#e@YjXug zF2z>JWk+F$?(M>!s0El+(ZjT&Ek>bJ$-4%RV&BK_rdW&s;gw*Wl~9+J@VJ%8l9lKi zD@Px%#C}|f7hX-&Sv}^mdOU75H876pkvN%>sb+F7bN zcS112+BAgDPh_l~`@_aal!{g5Ip~OAJ(?})jmdMA+PScck(n=bt~2z|g#;5(UxT63 zJox~$$PDqo`NwyZ(}PX!9W6_F=hV}+FMa9M_b`3-)xD_rS^Ap&Vk0+B+M|viP80YB zlD)Yg-Zv?D=k=Wf>EZWvX70R{x2)=PWSu<(yEgjvHK}dWsr0>D8*pPwaP_tL^grv-4=T*=Z$E2&G;rEb7L-memXFI4ZVin3ii!J;LptoB`gE=R;X2=xv4`r}mViFwUaCasKh z&7O?A-ckUoxzb{(lC4qIXJ5tr?;QLzs`6L4Umv6<{|bdFSG``v`6Y+O{T%IuxBH>4 zaIQAG+&K{hxg>Sr>hsPZ<^^8+1sLdO(rG^4157tnO$9I1ff5OrLUOl^+KD3YQo(YF zNj1%?B1u(tmqBxqfF}^Hwyf z_mD*A`n@&NAF$6CuZvdCGk;tud_<1w9N;ze*#c5jUXI?^K5_myZ7Cp zDY!r@U^49XXWN^#2O_2g>M!gS5i=s>%#yUQLeD`?uaeeH7X%f1i16NT^*O^Yt`Y79 zf}>J!&s{iHIl?M_Gi$Dm_UCoNpUxyi!5-b~` z1w%rWqU^3SY-r})0oK(1!$9H81$%HQ3Vl25Hpplpk3+Z47dw#gLY+Phl;+stXrVB& z0My{oI{s>IL>lyVW-hgeS#EIwjjsM$1qgZR;G%xGCfH^pk_>`+}inm{wE&{jxTsl%q~5a$)&g1`Th>VZnFNxs*|#kc z>Wm)%fE=I;$lLG1G#!XJUY+jg)^SbucFek9J#D7F9yf^exy%uD#PmtrHb>($%sE7I zNjwuuXPVG|XVH@bdrJU$hin^tNyL59Eh_=h&^v}k09|A}fiRgfp7PdO-!$d-SvrAV z`W#&k?@&yCo?=}>H^YJPXEtj82+{ZPuemkHPKbR1w$l<>IHw_*t8N|w_um1ay!W3T z)=)v~DoMg?1AF{4VRbgwS9n30>=SzaxR>A2+uyzXkImk`CMDeyfz^KxT(M>5x?V$x z@}=3@0v|IRuj{82Oaf*CNl)pc!eTT=id*&}GOc!c3@xch2Q%eUteJEzWSiS9X`*_f zixI-jTHj=ALQ+J{;LkpPu&u7HNZLT!x-nOnvFgI|~XPb!v z%69j%KlC#y3l~;Yf1G_1y>gf+<-d;QVv=QPvMtA6U8AX)Rdz6>FAPZm@-t>EcHged zeU8o5`#lP~K)8G51Q}h-%}0nAN0Ae4QMZ1Q)ooo1+#5s0^^@<|R3eZk@Q8ym^+IAf z)-myDNWtc_TAizxPmX6e-T@{W4x!#sR5G00stw9!pbiNQhZoin;5HJ7j|Mgq?Lkl> z`c}|jfh+{Bu-Bx(*GXMPnYB*MD~pn)OKC%i!~WR+=4Z!p_^RNan4Ww zvH#HMx~}1%UHrBXf;v;76&~#v@Y}62Bizr?hYs-QPM`l?wyniJ#a3tlXq*_5Z?YLQ zG==Eh^MKjoio`d!X0C{aWZNu89AG55$g<+9!9*@dgkMIdABIh&jY}Iqa^{q89OLs{ zcIoniv=*FiK}BB?np=PjL^s7&3lUcEyot|)r0HmqG!R2!H{sV%7lTB!qmRecIC7VEL@4o7g-lmAgR!le0kr=Xs2W0ph%#v zxS+m50+e%+gok1uFU+@MLyVqP3h)7w5cy6)b$?2(gwH6(yU*{b69^=kK`jV4dO5Nx z$-#gc{G1bGt?H5jon8?E~fT)j-5{qy&3W~Itg^};eU9&NXI=cA$M!l-`g!Ba_PSNz{;MW&Ai{7b5QDrU&)xge(HEj zWWdJZ)r@D||Bkoj1#C#-{_x2HWr_wg#DO{cuw?2F!AzR>S*rq!P6F%dvW&KM(+KzG zYHAxia7!wP2WS#udOVOK|5_FtwzUoF=SZ&z18~%(|6lY#J{IT6g#WL{?9KNF;}Z~* z?}vQGgqH0&e1d;ds}x!Z?4JYR%7`_=vr4{zhZt{t`rwaSR&m#?T)!T~D-j!f zEQYbSpNe&I0HR!s*~T>`rT!kim_4!U@=z4fl!?G1MFp{dFo*ba)O_=zC6h;2Lx|$B zbQyY2BO*_fLNatBC3X^dT4<}zUeFrgIm8rTn@K8n)eWOd zvA|Mn`VTQWe;Uw8&5Pj<_>ucWqx$4JtU%jL5Cv*Q&5|<)J?bL?X;z>)x;B>Xz*Ds= z>bFz2jw-U{U9_Eb*EyPLYdvN~N+utHTC0wc6J;N*&-V+jkz<>C_Y&?@E@$yYFF&@Q z3+F7t8_K-%FO|2q=X&+gESLE6PZ$zs|4XAOu+G4>T<7ar|m51L+8(udOVTtFlZ zNX@iyce4L`%u;LuFyw*vS2D$n!5Z7<9Io{Vbx_JsQ$QxaA(pOGDWghxkeh9(jmrXU zgY`XzZJ>`XZT8~LZDP;bI(GHQX_N0LQ*L)zp6TzI`Py?g)Be9M#{gZs2YvTC+9B zD19wX%Ken77N>Hu<2nBuoiUELW`^vNo!{RYoN09K8gqVCCLVXT_g~#GE}cG}OgGE0 z1EoEj#@G*UfgOz<@IJtPW2Pnobmvdc-u##8lXq%&Na4~;en%|*G*1=88hUKdC1%VJ z*&dlwwr`smY%Q{A4YR*Xww{w6ja?qP-`MXE<6QRAd3WcK(7Llr^>DHiFyYU*VDPwB zd#o5r$3^jls+S(%(lzH8YHRfOdmmSVQq>u;Tzgm!OAZSdqn@A_#w4Y>#Zb&pEM1dk zC5Csr7jvk@-+Eit{+D*|Gjn_Sn*Mv{7V@6sf5#^8K&eU=Q{DQH!s`ALou{+HKo4fD zK?Iw3=8mg^q83;NdN^Ax3UnDU#ONQd@fk8eJqdA|1Z{(u#!OH`7OJM78s zo?KQR{q4~!Wk{4M9x=J?qG;o0CFfzYiv+56#``K6sucGJFNXz+9%;r-BxC5pQ8~Mf7#s|8xpqTrhT=Mivm2L^YqS{{kJ(2H12)U#)2eACG!Eo z$*xjZA7)LLZ05{%b-!lyh!PF3;L;Be3xvbr!Carh+fRK?^6!}_md%(7I0%%>jJL40 zK#F3pfCWM>zQ{c}XS!&&%#|GT%$q&AlE}Oq;H1njJ*PraV zW#$te@MPi-`6vq{h=XKV6bJ{93}*RFUJVSMe=sEOK3L=5bJ9QH)#341&w6js<>o*dL!QQ-*-va>y~xt8lXL+#eQxAM zQ{t=f;(-7B={nq3I$S>dfaU(yS2_Urb&UUhAJBF%*eC!r&wSO@;XfY`Xf-h3T*`d( z72u~lK+ys>x?f-2ZFsRh4E0>glAr<@4s=s4=*zyKuNFbyoP)jx1pSB&`gt;FyEy1q zP0;V_L4Ue~cE*GLz6$#HA!zq+5Fktg$Palu>-H+b~hLn@t=fI1PH0797Z*<=l%> zs)U_?Tad=doo@@)OR?y1es;70jZ5XzkV(n7>}SF##R9kMeq6;LPS@YlKo>Tkd%k4gT@uZ3C}N6dzxjui%C%ohmVV zfTD=1P4S0~W0w#60^Zwvmv;(mUJEQpEm3OUwV)XK>QDmW00)hqQfV8=9W_O#2$Csb?geNhug6?Mc3RiH<7`KbD>>~&7#)=`zg z_Kv`frfo#X3I5V_6q}eMe>SHI&+_lQ;7rz3Md@fg#cSU7bKUAKnX`0 zGW=&SWv9?N727fc4EimjPpb*lt+k=kiOeI9b;jl)tf-BA5>*MDv23<08aFUbejr{$uCw++~}^0Z=&Zm z@K?b%a&x1yQq$lJENV}S%tdJYtYj5*vWn(dCEF}EivNrre;Jj(JRyI&p8p~*-$jE} z%UWCx{L+XmY&R~v8!QM!>2|UO@1r89W=HB3kv){Febl0XD5S!JXEhw;D974|&I}`D zGu~b~p@=X~E3u;SozT?#rxSwCjen9TG{-I$0Rzgrh;PJ5F&zz-LC{wtyDMhTkigK_ zU7Z4BxR~kb5*!SW=M{Sl#jpq^h;6ZVJRyVsL_aJDPvBUHO9=pXOXY;H8f#Cf-fVFw za6ChI`nko75>j!wcF;~>i*AtDUiKB&{Qnf+glM4ijGrdrC5-N!%K{h(u&W|88U@=k zR=26EzDa4oqSbVj#Dme2i+8G+ZSrlU72Hd2-9JvC;$HR1Fwp5;1GWJrnPY;Q9u+j~d+GPaq66=AZ=@&LNSb$I9%^OR)r&NKLluF#0jJmb+LHy;l?KvSP)TRU9d4ivEQ& zuld(XGuGblUrRjldDledCP?N+p6V@E!EHR^SM~gJspz-Ozr@fbZ znVAaCBYsg$)wD$WoSKAcp@%qD>&8Lij(gN;Iu6ICivfU(kZk1$t}jm?doJym@eH7c8uuMp*346;X0&Nz+{#{J&^ay>}xb7E%Nv^pb+v6TOSNK5Ad3 zKuv$cb^}AGZ8F zCnPfX8SyhCub9UK=wB8-^wnEsgLnJUEO>o?E}0)2P9brM-G#3^K6%i6;um9WRuCpn zS{lzTwKYj60~C>bGGGs@A_EQpmkc<GG`kD^*jeGAMyU3ZLU z>}0|Rc({Rx=RFx6R>i8T1dND}aOqO9PDj-2IO*u^fyu*_QB#fQE|ig;fr7uiLmn;< zuDV=)IBEWJMG#Y}sWSBJFKldKB@DoFr1}pY&ua#A)_L*pTgRWQ0Cp zh7xfJrO1l|BjMQi)bwPy9Z{&4DzXCtiiq`CWn#8Ll^q>#K9MR*DiQ#dgQ7V zSCn&vHYv+P7X7bL$`e?&Q6hca8FE$jxRnZJUftj0;L(3W|HydsQ|IBW5CPJfGY;+S>kyZdnen#I$s7y=G#%Dg@;J zeA-|3bD{9&L9j0C4;1|Hnot<&v%bXdnMjn*Hjc@kv`dDbq$_eK^Muf3*DQG`9pOBL zg52vf95T9fPXi=^1_XXe>*YZ$p-j;Z3ZI&_C1dR7DV}JNjxbTUMBBx7@#&TYSX7p^~c4 zot)EgXC5gAwd!6exV=KXG#T)Ag<=Ou8^fjk4n1mJs`r4lzjW>>g0Eb)K5tA2jGnJb z1#q1VrvzhnEx%{jq~UBp$CTe5fhjjUYd=+RvV5~qFnEo9NR-BeMbD~>Ddy!y1xMcr zqrj()@PM%*{^(jizjyns4Sy7{KU12t8|CZBc$swmHq@VX_N@?ZFv|Aree}Ekx3L@N zzBE6DKjS|UDsjV@u5a916gQkDR?U0q{yYIV=G2FIJdvZlGQiIG%qI>vR+JGuGLfZd zP$ys*s-*1o$hvi%n$y~=*+ONN&Q2cc(HBC*lvddo^ovA9jjIty*jA!bKpjw|C_c~r zMgM@;FhZXGUm5+PhyACDWm(LMlIT zrt97m-sDyEp~zoj4Dvbrv$-sx5y_{4A01+0RS;dd0_Pyy@-yx@|fhzBuraq~)@Fpk!%zJ5XR+lHunAidZ0BYX>SM;dK1)`S zC?|0F3~*mFDrY~Eg^V}mH19b}zZ@!iE9_&H3frpbKfrORQHX)EdRkXscg<*RSaGnLJLa)vwvuxj%p8f4fBTXHmbEyfF@DfZd1l2Uv~r z1`}C2-|9YWuGx`Hr_Rb>jnLfM!+VJLy4;w)cv$O$WhWMZ=axw=RCzoC&}^ zmrMZc3MT0ImkW5UX-3EXEyiq>l8C5(Wi4NOOp(76- z3=1g}PUMQ5T#9?M@8z&T>d?$9Li$b9H-9V%Wmoc*3LOC6aT@!4PQaq6)B%A9aol}K zoWRIm$1{<%U!&)|UwjJWZ4!A5*j%m>ZlXt!-U@nGa`+>9zy5T9K$!j~IiPFT`Dcm9 zliwtPdoMdKC43AGI+6EMZrdetUeWvD=VNay)g%vLzFhwJbCqJZ<7{?dHi#G_E|zjm9Ujus29U1`or32Yt(5 zK!C@-2@&B4yAl6O(PYr53h+~EWZaqe9~$>dmxm-XkQCy0)gaWI7sMqQ?FBfSg7`ZX zUgaF#!2=qyVA-M`z@Im~mpk#G^XdAN!Fdf+& z2o2$N3lU+Jbb!_)&`;m{;RU}W@n`q_QCS4mdNvV6RddE1A8)4_h<{1v^8lnVIN1k* z^5uBY4|%DlA+oQ7swY)Wa{!z?jS0wQwxT05cq1)RMe2 z?%zb<0ZvS-7Jo_Z0tQLkw}yYQh!^b*G|>y%m3OE#dA#^V=nd9LnH;xZ9Q>j)@^(fOQ+3;5dTA)0={a&|xn5(fx! ztQPo|zBl)oZj+QfF1f5M0Z^5Ac8&c1Xq`j^r4Hcr08R{fO%>aW1?{VgGOz|4y)cSs z!-nfJcu>*1z0B5nnNr@k!dSNb5;7zuhY$#GXb%f~9}c^}Z1iOiGIj~Vkrxplx|FE+ zWiV7a8&KMGNm(oLY~mfE%h4>7Wee#b;?d#vK07t?@tHh;Lbv+1B;s-Te+0~^cfn2J z1{oY*X1MOhWv`JH``X1LwJN)Q5zF#ZI34Mw{e$6HW_ZAJ{M6#RK;`b)by%>fto29LQK*#`HY>WziqE4**xU+EQFZvCaG;aK9|JiswGtsrjJz-ynX3vE zMR;1vANg1xXZiNzb2VvjsLx>2k>6@@Pb28CHA&&zkDgZ!mp9n`TS*vGAxQ_tKfnC7 zYB|v@DyMvD79G-r;K9~TeX(pIi~5&cDFh#=Hf?NrE=P|!|KNE4N* zZu`!|>z!vr_{q0wM@Q<9xGh6_xjs#irO#FM3RL73*J1>?IuZ>`%h1pBYQ9HSvW264 z{G!UeqLLy)b3YCu4SIHg9e|Y^^|MsHG%yI>0VZ`?NdYj6=S%GJ@SSF6{*O>$U>Vr+ z30K)7kUYso6^8se-;dQ;)3rL&W^(yE+rY-7iW;Yq8X2PNB%Sw6%cUc48_uh8(-fl; zkE~yDldBMZ>nPn1_U8ecbbLW5(k1e+>6}1`m00B<*uzQ;sB^UiU(pQOxx5w^2G--e z-H`*wt24E1tvH(N-p}9e`xjz!r?&C^Dj`FqL2;uU99r*itz$*?mG66ogOY)CGyQpO zlbZ(j!ZnA2BYT0rWuZL+0q?(FtsYlS)%_#)uXCi4JT!qW@4=JVu}N>wA|N(-E1Goh zCDHdi2W3gS;>0?PTQDDuZirw?BrS5DZVXty|EaNFXUc65j^tBawlcjY6>@a{gOzi= z;bo#hIxZZTE%$K7`+FlTUHtX;!E{Zi|6{Q1?QyMZj~5sZF5>-2NFP9I=vq*j+Mnxh z&}WtH`W4_~3cMWNx?wgZnep%Q8^t^CIznQe`Dq^)z52*>SqB`|4vQYP)Eb2aO`p;_ zTM%>9nyYh4d(2^N?0M`PKHltSH9Ks?y(IgAfj3|}ou6vG790Rc;31uAWpy;pT{t{; zRc7M)2fwHLMr`96U2dEiS$vgrL*e;FzD=GmrKf4IPBB}jRkQYCk^e&A`WXq2K?mt& z(W1?iz5GA;1vuI2;~pg}>BE2NjE^ZGR2l76yN-Hoi`3`3n#qq_MmIi~#&b(PNQ>|H zHEovuu=+J5{)gU+&-Jd--#}NqZhlX?`QvQ-uM3}k)yMz7`ssIj{Ga=u{`AK0jC|Ue zivRok)8Du8|K5N4_a%P!_orQO0wB1xhlB^oY=M*r6$934$-SN`TM$xfq35T2`3!L% zLhudY)$kEg5m~0Nd+!DC86}s1ccXz9T zW4*ugSwKRsc}#CPfoXthGpOtfV}Z_*6Ly((Ft7+hTj!n8rx0G5O9C9^GaiIvsI#m) zWCwP~i`a~BWRf;>R>kdh#CI~V^%i9a?>ZHmhn@5ByBn8M_j?92?+0tN`%d(n*guA}*DD zXxBhWvV(FrnKbjw`ON^iV#EakctXBIRKEMj^gEi7y#$YY9RrD`C0ZRu`)!czBIPNe zx2;5M3zh9%$l(2Jq}s7tq!{r2Eo)rnx6A+gU+gRx7#mJF^3 z@eY)Im2T{_eFUW%BNUW{o6X&Qjyvr09hWO|%Qw#UH_H}5r3x+3PqKA|y7I17I=ieH z)qlqX+#3ndC3}7cFl$rN$|O?D1d&Kj6hj$U6pDQ#=6+^qjL$yy2c;{e?#uDK6_sl3 zZq2w8L~1N9XTCu)`&qPJFKWCa(fLgK}Ea3&~R_35wJO_5Zt%OPmjIkv7~yF z`hv`grMt>G&!$c3f9T<|jY--+)eV0hTkX$->~#;E74omNGETj^CaMzTdhymzhnTy` z{!~vDN9!0NZGLji-6zM9*`?Qe5{I%y4Sq{+KdI3t*F}!jtwIs%zZr*zt~4MnKN7Xe z+|Cv295rTf$-jv}PF||MUFZGF-UVDZ%wULlPA2>O4pYAptV$($VUi4z-485Vi~ItU zS_aPRlHC%7#Vk&ADDXNCW``c=HyQ#Pb}==^tiAljNOR}3wykxXvJ7N-=F9!Y-&@Nb zeiBtagQe3E6O|xnmKCiGqz%S~jrGeK?8Y(DNwQ}g7z`uAp(c!Vzg?GtVK3&~M*RyQ zebP+`36_sBmbiIdXA<~3cgD(}1SJzQXu2bIM309;BazR@8NA;&mZqkN zL|rOfLU|~qd;AuWsL|qSN<1)l?%B&^ra&8&z;}p? zOo+M=x~B!nf;E{V-a@1Q?I2OzlUia^t7Mz7oq8F;c`>43aJOw#HNL1kzBwRVA;XiMx2`n~4_$u`HXSc~gavh`}2S5ghxYme1o;!3e`C@1Ulr zG@ipU@SuH=&xGt&pk8zjLrt#MWs8txQ2~S^2u_4#1fbBJV7eg593beuL~xWCXV5Q=P747f~4*Q17ZuSH=S@&ya(yVg_zQXLvX$~aHhGku6p75 z`F(`&Wco4k=qKDA6XO2*TacTTk4<^&@o}&IOaJ-fuS{CPVqd=Gfm5>SN$*Ch4y68* zz5h|FxK&8s9bOHB+<^&C2O{VI=t;+ZDRt`;8IVZ!jj1@eV#WtGctOy_4RgdBL3()R zh9Y>+V+PVtj>%B3Z$r@d6mNgTau0%S8S1LwBkK118@$xXg1%cc(4u~IFrMD#j#lIisXG!>EwXm_G12++BvfN%ltz;10Od3oR&Q;u9 z$gh(Rf}W+f>n#^*V8a_H2f-p;TnB|V?NN$=)O~_Z2fLnuXBc-_9R#|V@cQJ}M{f1A zrpQU-grDz^cE+iGEj$N_C>=UK0Q<6Xhw`}UTeY*WdMt;xw-vnb0>>;9v)8zdaqrg& z*Q|gLO1aaX@TAyttTYpzWRq#P%6FBAX$7L!*Yc`Akc?^ zgCl19eIYHxtG*C777Ov=EaFfX&@vH+jqBfth1JQX_rrFvA=LT+!~&$bNS#g*&XtF9 z0-AApEc%JN%4HhD7CVAuFgeCSrx8dwprniw9e5?JJe;MGzOHf(=)~=Ylme3DM=G07 zot8$>1j=K+46EPU9A07&CDJ)of9vNC7V6qMgf`Mjq9RV6EKm=(6pY}C0iv&cqE0t& z&P6pksb0V{jy`2~dK@^vRt^~{#0z+k19me zKn9~f0C9?XZ#^30_LXn-3LTXF+%Fzf{dv)RvgChe&@6LEIUnwYKIi;X;48p>LJxka z4?JMCzmlkr6WZQORdrk=L8BlGu`p=|Q5;=fxh}LgK)IY-mX%U66v+CbLVMG^d;NlX z%U`|iK9rrZNxd}gN4y&Ato^%Sa2cRczwiuu>XF64IM*S*zq@Yo@2+~MOu^I*cYf`# zFRo7A-0OytPg^``6cn)*ssI!iq2JppTbmmfmS3>dR{#=l%9`^N<&v#`(Avi7FJ#>B z|G3TS_z-(_svlv`vDvWs8+2c3v1o@#dYO-7jdKLv^;Y%DFN-7FnH5NymYf zZ2;PKKAtR%z~B&ok6zCCv@Tj=eIg*Kr{Y>zKxudh(|EdOtCv?=tgrZX?Dd3@Mst!l z*>B*kk5!o0rBar;FehKRR;*^-W7Txtr2kOVBazjlns+e0C&AUq{GT>uZ+D2*K9T|y z&{eCqVb->g7O-LpT^2iqtAw44=S?X|0j_JBwsZI6V% zCk9jI3uW2$5=~aiVE~{&ZmAz-P-p6QNeY0i)p^SA%MA)b8mddH?G1a64-4@TClJ96 zT-Mf+zs{E#1VL`&goOs6^aKQXah~hD4=bPq7B&+HxO@ zK@7Hi~}Dd(zxzR?+5BVIL+~%O4;h{RUt$TMUtq40lV1 zY{8}PJ%O@yuPfz6z**Q&pO}$&=~kxTOFr8`V1nNy3Z#rl5CpYXlwaFc(R5)EburLa zwm2xFyd5S*EWmR;cKkui5aI_lo@;$`UEvAe)ieHT0``Shz z^W6r-t$j?%lqp(n%0Td0?NcMel+s&X=zB@!cVC7#5|#k&-e1hINs`}CecO#_*mnPfdSG^rL@cTy`q#_IgS%1_ zJ#VW)mXj?{pFZNO_rPMOAvZ?mLz?ovM65uZfg_*2?%fOi*iFLo9 zq|62!D`rWwtSWR`Lo+7318oCq;O!C1XoDKV)A6s~=gzH7{|I$BRF<%j)&H&MwAJm? zD;dEJme=S0`RBWH!VUB9p<9kkCS6Q-0-){hD((~-O8PT9}bN# z|Ct;J7$`0~@}Hk^^OxM9*NOC?v3i+G&fxxj7+~8uC_7Ea(ND$~M*c`>4J3{92sI?+ znpJD$)a95E82J=pm`pooQ0u;~AoJ73_#08SCQXc$bi#n{3*@)4=)hwa-|Xx!p11;P zb!DkNwFCaIaDd49Qhf;qNFrkDYHY~;B14)>)A*2e$Go=({y(1X!mG*u{~!OgWc29K zqg#h`$>@gBDUOg(^hKAo!GHk*qmj^25+aR+2%`}}N&!)E3L-Wr3L?7SKJV{2zyDy@ z+4G$1T+heje!Ew0$C}fhdemJRQ_-S8M7R57T&8**dH-*}mr(CnaZuNJ>!A^o*9sKX18V3}+%2+D2+Q*v2lHW};o_Zd3ao0FLS&;>C-9DT!3;uGEMI{UL zT786X=tXhq;yan$!|v6;UpXFK242<0i;YVOSYr%b`tS*ZXUF&L9}T`plYxgF$fZEo zDfxE%kTXQW7U6QnIT9u4cX6 zu6qLzK)r#UfymYng+%P6pAZGdmHtgqI36!>WLtbQxqh@GgkG-n#Z{O|&! z{4vKTj7~^i;u(FZr}r7^`bEy-FBZjLJM+DF5)};K5s~Tzb8?&6VfDM6@{G`1bJg-7}UNJnmoiZRj1AnB95G8!&2It4NYOESj1vSu!_Rt2(l zOR`S9a;`3No&|EgOLAv<<%3-0Lkr|DEXn`Js}SR&kWip-c}d|quVSi;Vn%^t_L5>A zuTr6lQfYxw#gfu(UgcUB<%R-f_2}hhUX?BvmEHo~6Eu~RG*DR$LIjVv1Sm<{vJ8C( zpGH@Gcb0Bl(!ss~TSxWZ|EkvG{OM)1=Y9dl?*iTLrVkCSoBI^<;yh=ym_vfhm@^$I=($u3A)3WVuo zG@?1Zn6aA}b`N#ni3P~gRTo7CpK=AGrF7y7brLqUf?_~_O?CSCbPYF?QSDnc7~#{E#{jn9rCK21bhzbDozZIOB>~U>+{HA1Rx6umTzB`7F=g|2)i5HUJodD* z(d?Qr94-VK<06L_{Eqpqr^VwOUlnOHiX5Y2e2A{T9nbjhx#L7X`gZU;2{DS@zq$EU z7kgfG_0=i1e4%wlkLS!D#aK-Xx2lCTC_a1kyDJM765LR2>26p<(B}i(L0EUbIIf^# zPzahW7z-Y7HI%1=u9%5;ngnUBc-Y}Rr`)+Rr~;Pp!OnQYT0q*K3U)+ux|s-jF~ust zn}xt(Z36M2a=_`}TRpxX+^JiniXX!|XZ@e?vEaDe}oR?UrAoUgzs z7Bs{j3$){5fi#E+LHBDlbd>1%uKgl&c6EfkBpC~1HX)XnTsq6>V#Q(&PmF+-fq^kDP!gW6N2}UF& z_zGw_9~8&sY4{r)#DUzc<^_`!qT_jEFA^_-GN@ofI%umT5QYy}E%NhTglb|r+iC1~ z=+Im&n+u<{)iViOg1DG1?zM}yFdmTiykrspaDk-5;?Vvvk}HY``?&K`?h$gu386Zc zsiooUYlI7hi3ghD^(!ad@rRjo`@_75T|&+vRP0sH_~K8*s*=<*nz5IKQdjvClRQaw zYoyeJga+*-&qUc}4}4Xrjg%Bb6%Q7Syfk6v{wE=hg^}`K5CHN5IIne|uyPk)8IhEh za_cC)IuA>}4X{UeLEr%BDS?$Hmw7fOSz(_uwlC6mHAXZsw!bXZ_#jnDms7#(JhyI6 z$0|-HG4555^Y2qG*}bW&eeur{386ny?NA9eWwAjCSJO%fLVQ-f`6pnD>eOAcIF|CchnOhNMp~XvY8U>6M_mRq$F3WC4;TfN}1j#n#U2#BAW!y z#cJHfvz0M2R(TvLS-sziCSLqUEY=4H!F)7t7#RhS$s^$nHnY6pWK#kv+WeZX9P9A z$*D|bi>I^dql-cdZTd&VZSkU?6K-B`HPpse$#@q`jIn!BS#9G0H+l&OYpzgK%C29o zag_I7%U2CmZlF`k!k42bQcLu%{c?DdeE?^bP;OUV_vz61z>5+kbn}x(*<_?&G0YX}()j7{M%()idwF$gz9h10hsaIGu%}-!z}>esf*hst4i& zl730$xVCv^dG%h;5&K4I^q1abDKOL#5BNQ55fHq0-Mcqn-SHi!jh9`U%2+YFWC&-UxI`y~yhoZIBZkIaK9yuiASR4ZiFBV-*ux z`JHF`Y&5#qf(ers1~t43FF_c(>Z~4|a5@5o*5}6?pXVjMEc<_1z4hhA#+TO;UpM`~zQ6VL)5h0tLtow9N2l*+BP1fR zyRczB4wK#0i=Oa+-6*=!4F*IYd1N*^m2Z25Jt>W+4)miQ)Lvu85s3I^EcxZ)8Bvq> zJ$4TVl7@7<10Bj!!GOjZdpLZp->Ub1 zP3(oj)4JU$mX|p6e9kH+rm;})CBbKPHBHhIH-DwUDxxjg?}r?YUH>F3k(hUueEaH$ zo2Dvv#`UO@;484Bdy=|>G=XcxD}#o+pEVi zkTSNF)*XQ+JfUnv9wG%NWeR`^C?y<;SO`EH-K-I_H(^i+01;T)kdL+3;*7^QrjH_H}GdQDp3H+4pz8dt9b*VPm$x zYa}$zF-roTPA!wGxp%17UstzN1Tw7BEF@8HFDPU}eU)9izZF)azlurFs7_Rt>&j=j z&e6dl$da>}6Hk@6MUC6g`F(?zf24T#`h1Q91V+8Pxx~VPK1Qq)EuS=(re!wMqFC+= z+%V@{=SbOWN&v3@;vtp#BdRyE2p4BvaH1?2-gLsl<8wIK&f~Yw)5YR<-ejQD72lF& zOTyk}GNkVR@V$g)t*iO3uLn-BQDjBVMD%d(&t}2#GPwT?MUb{pTs*ynQO2-yxP)2G z*og~S!N4y8Z73iZyTuT z${!o+O3r_5YP`cn`xPcCJ0WxE`TtrLXB`LzA@bL(747%}E#U&qT3rI5FNj z2b=q|SeRz3ego}hsa|3mp9S?J&HatQQOj`6;PprBCJ-URg^`T6mlsH{XuT%`z$R<< zelJxIcTM)haJkKj4K3eiRC_;ve~j^k7TPlFgC<*nosW<5?$YgRK~F^RcDWE(Oo0Fd z_HYKP$&OA}Q%G|8VU~y`lEq#xZ~(9v{@BU_R^gg)Co)IujFUDh1?K_XMI%*>9~tDY z1qWHQS-cRVJ~l}%527Z2tB%HM!180TCm{jRfIb8!ovi|8b<{OUm-(lY0#lC$wxCM? zo?wwnuG;}DbJ2i;dPD2c$Clo&N1xhtG|gnzID#z2>6O9R*s)4CYg-2Ra~R=A=uzmz{Ejw8q(%?i~B2tpg7czrUvn{L#^G$v90#KAy0v8dg27SHAcB(<)qeHo%-B4D)_(@JiSTX&V`v zCx*~-_Ih+3%wL3XXfzd?SxAqD>12DcqC#Yl*DB3LRr(i^p|T?CFF8tsI~%{lmj>&q zw)n76|8B7wt+XqgQd9k4A$~AeVi#0C$*9}LwmzRE&YG}eIhA{Yn~@lISrHamg9%$A zjVOylvmd`S<#?~7p;wD`K1T*j*A(=M7w#&$NdaEEda2W!KzU@N&+5#|{Q>v%+q#*O z9?^Dg8__6+jj5l`QCHCpnoB(-QIl9P1E4O}_Q zRNQ!9RMn|2T_6XX6AE<8`agJ}PZc<_q&NVdjhNT$W~1or7`$x@-&0?+z9=9}%si&j z?j@*>4M0dmphF5+OrO-`_39t=FXXhw+7%7TsbT^Anu>C2y@AtKYq1vZh`*f-@+%uF zM-E1?lNnM9@*d&ZO*_eu@))4Vs6ji=ri3W(($4-nAAqi+qzd9qiMq#7?#iBm(2n0o zww>PLe_GbzN`VT|ehAaQ<)Jhzp(7W@2*HzocYPGN76k(|4k3t>9mCVZUQv8bzX4WE}DnsyR!u62Pw;P zL6cnric91N1%KPuPAl&m{_MEr+`dXK9sVq*A3foee`?y`iDvetmL`Y4fl$({I;X3y znNTOX6?+3{Hxe1f-dYtyqcOTePQ!5G>Y0G8BGl6{pJ9O@`d`ndYA^ z@86O$UjSWxjonPSyiPf%(KN@}x@kTR4=VS>Knb-N6;V;!`SzVLGd9-HAyBV z{AMA_4+~<$k-&yKCQ46sgw1gHx%FGq;JLz+(Ueqr#uAHi4Jd{THQm;1L!3o*Y}$;< ziVV`!OrDrzcb+)jv343*a<;5YQ61$L0|BU^yE$bXEN<)4SWdT}dQ5@X%McI@h`}Gg;kyeD zQ6P8<@gOkF&JpBq9bu3n4`lk7FQYuR|+1O7E~$?90~b@ z2g9Od32R92I~hG;5m$G-7%XWd>&%A3?4rgDkArN6##$P=k37?NL$#1Er;%6XnWknC z2torD?WBvArA#rCGrLet87L$Y;sD`!g9C3T=58x;ooLJ`#t^@vav{zs78DqtF5E`* zh9xigh1ZR7^0`r6@^5QW^6K?<6lJ0>d#Eq3>o9M2jl$J*>WMBOzF?j$m*Y%JbuHst z(*+48WP?Gu92kf*8p6vw@E8#HF7hLVQ}t27J1_9ZKFX*r^d7EID-&#og6-)7!B{qt zcJMh2AcUr{g=b4B75?>-9Zk$$jAqU@3y)E$V4E~JE5-A$i2G)-Pm?l_UjBl$>{27I z9@FK+Xo-ZAp7*)f+sL9Q1PBGhkVgYv?O=5}h!e+ifCIll-bhB3s9}Js_!7A_s9hAR zAPyw_sL0E!$RnHwQg)rvpSJ8mIj?k+w3gx{cyo$;lcT@**6*7#E@Hul#q$~#W;l?< zE)Wu4@SpYBa$z-jD(E}`=8u6XL_%GVDF~^YUpVk*K-9V)38n!MY*~_L${&mtfP_9H z=b0B|TmCM4w39M2oi~OkUcFhh-e2XFS>@VaRe7_Bs&{Max$qgA{CaN<3I!yH0lCJO zfFm2XcO7BEga6P6XJDFd)}ht{Fr64|_XDxR}wG zvLIabEQ#U~PGQ^(zv=j>>Scd*vCWNT?_07yHU5dW>R1hx_W)iDz_sAAt8{zCrU;V;EYZoDT$H02NGbDxzLYkD4P4y@%&e z-h&I^Ue(Lg zL0Rv-R=V@b=8oIVJB{Vd*&TOyn_MmpfRZtQDz)Zrc!St_(Qhk_WDFRS&+4=Q=E*O; zoSDf`Qv{?i05J(!AadI|D^F9o`lMp?ZABbZd0y;;)}pZ0%; zY2~&plZkg<4&<(!uYM|g=T36dRQ5;^q#Y9QytSmPWN#p6Nf+)wgg z9H<2hoA6_wC{7%RMWn>wCZNT9Rx}`)NrZnyl4rO^DfiER>b!9z!;rxM z-V{i*L9aco%fYN&zv9LP@9tyIdw&$0k;zR<<<;J6)#4&|94h)Yvud30vVGgh-EQcS z`qSEbJ}MxbQymWqru2kl=kA~iFN*R8@AmOpH$KklwYgiAaku-(y7))$fagpZiTz%R z=&h{F53=pj7n?Fp&6NJ9)7PAR?^ItG+ou6Gl|e-RJ%mk_yKYV2pF!_T!vEu$*OZF0 zun(sRq}$QO)o&j*KhRIv8C>ukdfW$`p$su;=AH{t{?s8R&HSBZuogV@rb7Rk_0aZ% zVc-4%hr7eaqO{QUuHNiH@D&=OlEyYj<9JEqI;J7TMtBWJ`29u%uZ%EIl_Mg9BVsQ{ zB#uYWVx!WAqq2UZf*gYcMYu=%s64CkE;BX2F~-A$mQ`7cOvX;l3Zx>(bSYe!M7D?2 zK-Lk~AL!Vk5yTQ@e2K18CC8-1vps!*c%Roro7pDr-)-8aFWsr*TJ#eGancT=6ahO+pDM zCcb#2e#N>PW4By%7M#Nd-9zwyGlIs{ezk3q@D^ ze7Yh8KZi8%jQOgHvQ$N;J3r}pInTx-GHfDphbUqtV?O>vWVlYHJ3zFL==ESv28@ju ziE4+o%mTaTpu6HvW5u6KO@nzrUcqu#s6Oa>Vo1zVi0cgajRlkrr5}qe6p25T3bfe=T zYzNZACQvmn;B%E%-PByE+L`^HjA6`#uICY!P*D(UB-O69qdEV)yH0fd#DE zr>ugj=T`Rl9O+SDbz`626Dc|;-$w8Ry2ON}$e$mT?^0D{PVm%1GPDQhMC$;kwDBaw}NH$y^19^m-2M2I8dJ<9{@RwH|9s^9BYh+)>gy|r^8>#P~QIFyP#I?gdNO?#= zPU(ao<(8dV9@34pHB|PTPt|A`js=@&Xfj|@Uh?MvyTV&ed|D1ONcR{m?=D`y7<+aT z9Vkwlbw&F>J{@qr_lK)uQ5Yn~|KzESSH{(=Rmcqhm<%67Hi+?bOz33((gDfnrDi+tb{p|UlS>`|E}>L78#7Q z=LBT--RnL4l+2N;=7D9g&lv#{pXck%47bb_)XyphESMLGz@_XU9p=g(%@ueoss@eS zV=e4!EUw>*_$6b-(3rVChxgh)3jsN#7=48Xd^LI^+k{63b&H)dk0zg)a#UW9S4P>KULX`{@cAMXImF++kVHkW!$qhmbYCK z`Q!w0!BL~P$j)*Asj*^|*yJm?`fK_z3)~Vw zcp#tfFKeM4G^;lFs&~nC^rI6Bf1WzBop$;e>qH)RbZDdZeC6n*&0BLz!QyuPxc2b# zIHt4QF7JYJ*ARKP&5(etNY(GfT;nwm)KrY?x&h-E8T@XPFRtX#>2`TLn z9ES`o_6Qh0V(amYao32GLnah^UVgWIEsmGqu4z^HM)dTHeh_@d`{3Y{%hVZUwU&UIX`zyf7XaE>w%GX=(zdf$+!5r(%h z<>3J_O9d7fKpBZmSOfvPvuI_^T6m>9(5l|n6s1-&xP;$f;^O16CLQX2MC@aIa`+5>k$NFFe9=Bx%cza$~^~ezBA{x zFrXEO%-l@B3EA#oErwu{TJ25_LpAKxr)0bAHRjDV9JE%u@A2et(C#2pTlugA(-yCZ zEYr_xxzgDmp(BE+f=Q3KHR@!Fj1HvP-f180bU8JY?aQDd9J5`XCP<@JPYLlGbltV|nG6_b$cJ-L zx5X-MCO2iqB-w`DNT255ECU$gRv=E=Vk|Y6CzJ!NNwkUC6X28xGOlS2`-$M zgH$ytq@^+{V?MB%OS;wQCG{40UeeQ%!3D?$Dn83fFI|Yx&nOA`4AT#*&X6AntIf02 zpR)?^8RzEV1w*7E-AUme5_oQ5!Yd@6e+$}pLbMdRcTr>x@Bd8P;9}2e$b*Z$uhT1Z z?izHCqNPut0xCJ1)A!FvRsv$X_jy=fW*QJwm~-^i6TaH&W&LuO9w{^oGNK=!oO)@m zvU_Rg#;kG1gQx{7g@>`rPF6;juJm{Z=UeL98pT&Xd}AK};=d`QgjWggA11uM&T=~O zO@_iy;%1)J>7;k1p+iaUZ)coN{?O1cl>Dh}>h$F=z3+!Ee;Z~ozOpx^Fns05yp{3Q zpR1w6R}Wri7+?GSzG3*1gQ*D5ie{O?6#6q#S%6xhbG?J#qx7W)b?4O{>3Bj+MUVe({ZD8 zKLC(83`9+l&0gC7|4yLRM;?61eva5?*p!|RZ=v`&UQX|Wl}kxMo-0SK!$(FcY@}#hB*>rSq95_f7RG%uONr%_kPcxh12>eX5 z`m!CB)%dEUyiv)g*ZtmCqQ3l$x14NC9y=Ksz?i>I$VQuhoe zf+B%iUCbjODPYTC7*K4AqH*RXRYVris=4DDbs0-aj!+IXXi6*yQlylYHM9U3Cp?0{ z(L_!XJx!cyF5as*KE$bc>sz-2-opyc$>yY1$vBExpFp7kI7R8u)t@Em^3}m&&PN z1?yDhqLCC-7@@d>zX|FSnS$)Dp=RtV*+K3vRo>DnJXxjeB(>&XAir{FteYAXr|&l7 zvBFf)luvEex`DRv0JZO~`b45x2zrSR4e;Le!?N)kFmMymuI>C0?-eq_Uu=Kh?|7o7re2@yc=LS1gX;Y| zv1$hX-#yyo2~Q(T1=$EvZZrrtvh|Y9g|&}h8dL-a5gf#%@rjwR8QsV^{lys^Prw4T z`|_72WC*XK`S>Ba<7ZY4`0}~10_;O7@uJM^`uW5LWjX1<@R zcf_W?5f%)Iq~%npoV8@wdXE9SDRM_DBv|4bggXKRULLfK+6of?i&ehbQ0ej8Ckbwq z_=fKeE$B@aKS=!MZo;ESFT4JA4-G`^l{<(AS3XIeSSgOF_;4lE|KKPwN&9@xGv5a2 zjR0UspgXU&`GXltwZLTKvZyjHP28{=QV^n`5=zhIjR<;}{uNPdaL*o;NQ61i-ve&A zkNNSk&*Yi;fA^2)HA68^u;+dRyQ}@@*MMsL8xo~|)hIFr!oB8Z-cDiAE&mu zy1lsawr<6STLxz*e`^8!a`yiHjy?HPx^uS5EyXVr90;L2v`efU2G4t1^X~cHdy?Gc zT6qJOsP;-P^z!RU#skCoqy_fVu{F29(%-Vy10f3}&@nK!m!=%9aN04UtrK!@hb%f1 zSpn**egC#)6v(~2D(K_AkgCT_=-RxAH$Gl?##w{C`S;_?GQJJd4AljbYyT0hC#+hq zT%j8$Ls6g}pY;<}$7wW}~&@PtCx*Z1ZrhtSczFJQh ze%t=DKNru)Yp69>{qN?B>)VI_4c#tixegfuYhrtdeP=qV z9XN#>TBmE1lNGzZpT>Ml)zGhlhqVKZX}QtW=7)nE5W--&@llKsLlir3_rY;ti|~~P zj2FhNB%^CGGzfGQEn5x%b(+}?7V8g=FXu`Qkl+9qup{&Drby9XinAskQ+jrzdqiF; zX}%aOYu2lB?fROmE~Po95i7*o`9B1ZqQ&U~)#mRvy&$B0O2k0Zw0E&~&1~%S{@6)x z!U^O!69E*5Dx5@(p8!%=j!f%D#tef+4d0F#Gwn(aKC$lc&9ZU(t#Lfe(;rDdn%+`ee{=`}6B%XgVKz1@v zb27+$GFWv$?WwGKdrIg_WkF58aF@yR-IiaxTeu+H5KOzQMvX%yy9gSv>YI$#v@(1# za&dhU_IMQ2!fCe4Dyut{RA;r7*>l}@stYn^Im@YsCg?U!5%{g?JpW_#5=AQhAEO5* zX6zU4E=-l7%2JxjIWA8-KjOSvPV^E^n+8BXrma`##0vmPZ^7DKm;-Z)B!N$3eMMG@5td;gm6C2x z9(c-Cxu1K516Fs1^?M|D1WvvQn(5r4kNwT>Y~6WJ7LePS`LjbdILs39dTc-#?s^IP zcR2kg^>IIRZlN+q4#BDpfOr~3A&7Jmz0d@dTKhS-8cMjPN3OFcrv|XdBNHPGmzUrroh-5t*KC+ktAMV9tr8C;OOK-nm_V zC#ArtUr1YkFn9gU9e48FH!@!CCcPZs0O|GC68$uWo^@K3g~p8i9gqG(ws>(nu(Hsv>j`IXe`~Jx^r) zr3o19kT2dq%`88bvwrjf3kLUr&Cs~k2**d7hOE^P5iD3;_W_`5=ZrLa+r1#`;KHL@ zWYN!6DNDM?X3OW0_mjX{>DI~=@UEIPKNW*t+O>SKW`Fu{9{g&t4a&Ue&l91L4Er3x zed(DTx^nf)`Z=s?vfwMb5Ci0_f)-iBt6oWbCIIIwc$HQ4YNpy5%#kKRA4#--!1>n; zl9S1*0R!I0_6A$SI$A(-n6j>5M%sU41_pBOY!iAxNKnx z@)$EHyO~;vaS4}W@4dTn!NP0NZBY)1Nbz#d3nOPR|AL3)8yIrcxC7G%+<+1aae2k~ zOkqxpd0%lqhSb)VdVxl4+gT02mQ9Lh`!5+Uc(NnNR!d)_8)sgp_8OY`etJPOl+_rNMG7%4*&tUfCX3}20dUvK`t&(|k`M^vSqJ}tO zL3|?eT%zf3K$L(oYastFfnyrbLKKQF0Q$025DKI<@+KFVg2H22t?4I{UKhO3e~k&0 z&CQg?1#TqA~R#LcQBcpxJ}^+yyy*rq;nGk6$v1 z^Qq@=2cW2}a!Nbok5fpr`~cMwXuNZwoITbfw1N;C!LDPNi|3R~SJx zCo}YGaC-bs-n9>9|90|oIjeJ7D>qmOCEGu2ut{_CS3fFfmgq~!DyBB`kz5q@ayUER z(mHDfj+PY6nqh+cy<}e%gSU$CVt ziPz$rbHgw|qvB+I#Iz$qNf82&isl zZ|hx;5<1ue0nt(l(Q1-WClZ3;ctSe_rWeXYj=q$xeUaq;E|n2nMo8sd2MM&p`K?L5 zj$|Rq4?*ky3_^i_4j?_NOQ7qlOzWKe5X6EfaG)3jTk9WM2S22*vx@(>C()a!c0E%H zqx`%*)_yhC@nAofLfml$DV_$|v=Y=Kzp2WknGqmCd_PMYzlk+Ot4w__#l^z$u||=x z)}{L=ax*>V_Z`0NJAM11?YX-b5P8}_ejcpW6>rGKjbg$>&jQs}Q`BBH^5qqFqL&ol zVY>g#Uf|Em+epcD5&Q*GY}M8t{FI)Mk;;1cI_s79UqF3>q&_HnBjM%gkW?Fj;P>WS z^odQEV%4;_FIK*QaPW%5gmwJ>X~nvr2M3zQiGcNC+WW)wY);GGp)&fWkR}oEcRxMQ_8Ylb=fho{qk`MNBZO}M@cBvd zZTppcvhhy`q1=ddpzV0Q?cY(`DCw7sAPHgDJO|0gGLWf!+2N){y{OodCh^$nR$E(+$nrUW)?$|- zyc~3zgEb8K6lWp)lj7m;6+Oyhs!E^WaVHV{t=?{RIU36=Pq=%6Rd>x{&LnH9cMynB zVyYpg4iq}so4A=rN#PgsOl<393n99!a`_!bnj{wcTMH&Ef>)+dzI;s?EDM9ppKfMla4M55=zl8G>6dc84-O0-N(&pZs9~sTNEj=YP#% zBW!2DsW27QT1pZZ_2yag5)NbvTqT7n4`#m9ER8PiXMR!U24?%Cz+IQ%7E?zBc0zN@02|QK38wnrgS}$d zMw@)M2|hKW((p36-O8ybw!_YB>*s{2XoMP_$bMS)O`7Nlwfo}xefI#-9d&@+=m`4M z-ZbC0m2B`mu~0%r6~M|nb<-A&hDx@{)BpU zE97-HxLq)b`%L5=)2J`4I1$JdqVqR_G|YXA;rCoxlh>_=edf6*h9XS5B}KY-Icx&D z>ljA-^ms_%Hyw)=tM0#MtZo=u6<nDGG3{7M;Naz2rnzJC2sOsf3Om$>G!%y&gK`g2MXD&k?VX?_No=W-E2 z9F2XIS&*U!LT-k?QML|5zbVB0{UU|d1>KAF%$K%hefP8wd|~2-q58$GyW+r5B9DoUESXy>aJNnuz~RTkFIk^8_lbL$V&6stLnM!t zQ^vdN_riI-m(Ix7SdsS^uLrWDpTiUHgBnxxA=5-WoPx-VRF{b#moXRoO|i7>Ad4Hy zDZ4h!xOehq2rYT^3q}r#0};_OB6e)vjbkyO2o8s`N8o0R7O5#&nsf%)MwaU+$T%LJnrk*pY)FvoTQ}6oUOYe)+E4nHbli}|? z2ISHJBR4!wuwTf4B(>Tf2s?Amot(IjdrV*rU~Z;?#9l6d{uBQQmY4>y-lq{T>i7!& zM;9zOvb`ow{kl!ym*9KK2WAmVVG~4w1VL28tVjmd$VxX|1hqh7JLKsU09_P}M!$Ie z6$TVId=6w;@QQvbKtu%unI9dk(zraTfw>K{e^NqrVy3XG(^x|R-qd@JV3=a#Gq@M^ zj8_u&foglYDT(UB;bn#tMq%YtD>RsArMLKt+7;zauzXW7h^-yqV3*!tqpS|@T(w?1 zuYbRDjt!K2IHk@T1IpY@w~#`B4s9zuo;H{C@ZP*6(0ut-N^ru1=ldrTe;RCjzoqkV z@Sbv(Ys*`KE|koPq;u(PHEd_kg@+XJt-o_4&t^Pb5>amlglWzBmy4;>mM4h1vvI2_ zVoq#5Bx}j9rE_pZn;^?07wKc&Q(2n*(hQFf*OII8-kRWQXZw$%?D!tX#q-Y6lIVaE zRV*w6lLWlKix3XGB9V4Q__5EwpeF;zFH)3cXY9WN#W@Ds!>j=V-Xg^3=)fCFXza|< zc*?Ei1yZDubC8%RpBCS6&z zMf-fJM&Xt{Q?^}Sf{k?F%4`4Nc-`kA=%RXet=gCHm|Z#bM~LC_O;_=Nud>fqRzK<| zKlQbRNtcEJ$P*&@{D}dGK3uOQf0Wye_7|^qw-F~^8u7~8(_WE^5;*K#z9l3;>GFCB z16I6gaGW%Zb;$&xi%F$$h;6{<8PlUmpd~Wa@2#Zs{CoR_UCQo@*W7uB<4yOz7k3T5 z6C!28;@eXVUTDQAyOCxu>sLo!hVpZymdw|_7@ybSUaRqt`J?rp3N55H zB@ofJ8y%*D*qAmJp?xvG05K8oPuL5~{I=R4NtnuCZjRBwLcq?en?6_jP^$f%C(;&UMbY zp0DTg@z@$*@GOWp7#({2XM#B)*9~epK;du<`&Uu+h(z|2QVU?niKg)!0OR7!=VCt~pch=Cbkrx=MIFPQAo zIaaDnI*DdTF$`sRgWvPukB9jF81euMIs*M!_;PX;Vc+3XM|b(`j8wi4D)!J+9IM14 zpyCF@xM@HD4RBX@{`Vd$aE_vInIMonERDwFtcP*8tL0BD>FhN>-*`N#dnF4ngBRw+$q3H$h@a z)dY$q4G1)TO2ru&eV!7C9YIckK$&18qh;f35_cF|G!0--I2Tg^kW2*)INB)u_+hKW zWwXm^<{c8ug3J=H06E~~cuHLR_Mk=^7{)yUHd;;{ld$52@$KSe_y>*XQ0r_1T4b%0 zxrEUq&APjmO|TjP`)Xq{Y?Ur?E-ZC3ShJC>H}L_t6&~Kalk#S?UbbQ`Xlh zpDqIo4yO@R!^oUG_56T=OzMBh0PQTArcp@D0q_pik`+eF?r1zQ;wuqdZzSx?A+h2) z2eo05WM`w>_IMFA8#+UMS}1E*du+VnQ;I2iTm&d`H3QxB^6ywxFP`tgo4(1j|mAONhg(QiYzWcwt$0#15E?$6_gWW zc;db{q2H5prAE)nkJD+*&>NR}8HAppUYKk&sGwvWf8hk<Dyng|hRuBnzn&*0)44y^S$3bJ`dfCr6;MmbI$XWI|E(U3@99`58Kq=x5+3u54SV{|C4TE+ zz=H-{_aq;o9Fw|4LO)5TNVP^zLIC;JAYg3* z-*32G4h+i+P~l=b^z|Ic^UUzz;aA4R??|L9w2)#kNzm@v*Uk>d0}$a&`r8j+M;R*pxs*H>Bo5tLidm;g9!#SFtq^R@$-XI-_ipQ57-;Cau6H zkw$pv^fw;AQ0NvAzac$ze0M}wUVWd0t7tViz;lX$(QOpm5qact!u}{IKlZ_GFu>ub zG~!Ejm?Tr)0&+bh$z)HCJE4cxp#=G#i@eY^JO33liEeJpapcZ6?SBCW1s*N{e9FM| z_f!1f;ceh18aUW)?ui1QN|j~z_Nom@Oep=l!Y2L|6mp}RjD z;FE9&ktxA*`q*8V`ry!){r!iEmp(1ra-UZd#{?P`fZ7&m%!n*8Ty?tzG(&kHYowe? z<-tMuA5ap~$qK1d>3K<$BQIS)uLX0tKfKVvITDsJwenq-VD;I1Zz9}i`PV6nVbBiE zk~YYYe6Vc}<2VvUnzY6r|FW!gYfyA2q>@Ej33F44n2$sPzd@Q9B@d-4TCQ}!LK5Qw z#8bwk%SHJ*eNGvCvr_+#mEIPU8)kRE@3t72gIF$kWyEa)a)&_TW@pB2#^ONkvOhNut#h=o-JAAhN-Rt5nr8h?py*(0n<*`vpzQV^1q z5)RAk-2ujP-zI8`KSWEnGcT#i>8a?ls1we&6aM~(R0nG!69lF~+No3p?qTIrB6b(i zCJ3}j)kNMQ7)7>&X2>Gu4KpD77KS1Su7u^|Rb5Dbuz)6wDAJ1Fg4i%*FWxnVzo#-Q zfUb>fJmLI&j6}O{Sw?PXUFl%`PDX2!+2;K_;rO)0PKUxqVLHfh3G}e64Yj$;W8=e? zKGi#DP{s?jeDw9asSyWD7l68^8K7}ts6(EES>bh}f@|3MrY?Oxk7Kx+vc-rMQq3q# z#wpwQ}gRe6JEM^30%3+4yUWwh?Alnb&L+N0F47vA|;cFHvN#@{Pb{|?rbY1-K9Rr$GXSA(_ z_4U9d%VAZ})PVfAD+*u2(L&mB;`_dQ3&!gj=+#d5v(VIl`aEY(yVgf1LJKQI5A2o} zl$91=OoU|wp19&J7I>s|cPBiJqD>#9GThT% z)5%^3!CtR6lvhLC|GcSF;G`#r&I}ksv;gX=z`RlTmEFi#b+fa>5oZ&xT38DR;YCtO z-C;&D^0*ke#3+V+3_-$B7U9Q+8!*<{W3&&($Qe~WAe^dDz57>(dO_Qos;#{$&wT)# zY8zm@jE>>b6_Z`dJJVz(d{}8=&0@YKGqqBEA)rR@FsVPQ5Rodn&DxgVK~9-asOG7SVgckX&{CddN!4+ zNryfVjBYh=;CEB0xH@F`{jX_CCn8;h{}vdVY3v_5EPYwdNZwx>H{5&sffWhh*dj|> zS5vu2^^Bcg!(1(>i2mmcckxy&0I!?s*#Qh|*QXqfStLEWBA#P)BkYw7-^zoF)kn`i z^(H;iPkyM$QLf*7HYV|-w6%Bt)KaW%2I%tAQS$d|8Mk^2hP#Qb%9lFhI+mbQ_xn*B zN2;IKw>eurL_h2aq4_j)K?D2tF6*uy-}PI97TbmTf4NartcU)h_Q4{Gc>g9_ZQV@qA>wcY*XMdC}-O$=+Xx{?n7KaS`uSY=ef^tT)f&eE8RCL^O zCH;P%$*}nShufF^|J2_*&wcgE+y3PlqWniv-`o1{Ld-w(VhMQN?{Y>euWzJ%xIs%) z1C6yVGk{>i^6|zF|EZou!RhEm**B|)JNM(Oq)#Vuocm@-Tb-nB-Pi57%3%Kz zcA=*gHK+(eHKs7>8F62gr5jDkUR`LoW&1ak&G#%GK+%%$Svmle1w}%g{DwkX{RlW> zHZJkTsd^U#=EIOSu&p17rL%*CfEE2+5N6O2tdGi$MR*JhC&itbXcqv0>XaM&Qic57 z&xf1|!HUAWxo|sxpV`lCCXZ$caQn(~({ll#L=a63_F^Z{IoYeS-m&j?uIp)z>LI-+yB7PX4K^U(ZMhk0Y}LJ+vC zSp1*Jk!(14^nq{i!IT_8Wew&6WD0ZAQ_eD~ zfO@W1y5Bp*0ZLZShBftXbzlfJWzBD^J0;>%7U?r;a01_g_8wy@4x`mD@fFgPv5i5* zAtuq}MNebVFfm#lUrL!*Rth!u{Ien!eVZzFPL{Ub#WJt90pwl+9(^Xv8N!knG;C{H zgh!`I6xdXENbZQ?lCx8&76?GcSJ2y7BF6Ip_4i`=gQpp%%)>``8Sa_kqdHanc_iUW zGb%&P@yna?4*~v+W&>v9-Khco;ORG}*er*)=VV%@-&*|I9_l#1p-feK4hv?2)?&V%^8A z*14jTD|x#6Ro+%E-KNQ;`L}o>jB3usui4x{6Y;dC*~j8(JFZK@S;ikEg*t!a84}bA zZ@Vxti(w4hIl&+5JTm@W9m4nNz8EB0Ihe5qT{Rd>icWaXjBT2-N|I;0InUw_G%NUh zj{TT)?#YVD8?_TB_n`KS1BxY$lxN;S7E=(l6Z7_9cq!&oGMHl$o3FmP$wf+e(-q^H zE*?_qnZ>rrZ)VJ9#oa;(A948B@_2LZ+k*ji*YEv;>ytnbi~nT(|5wk&@Hh^k!2`TQ zyv!3EYML+OKDa2b8Y>EV-?*)lyn^|F7d<7@)1Z`aZCR)`H!#W_KtwM`B%{dllH>0y z(>~=~Lj2*38UEK45dpe`1CLxf9D*gQrtr!{fARSf9!cQ%N6g_eY23e@XV>`U7KiD% za0GvJ#Zp{?sUJv3Uz*6LD9lYSI~_D-?_XbTa#8_yJE;JpG-FSB!1PvcM$GvjoAwf8 zW+Z3iVz~W|wqNJWPLze3kcxuVIZu;>Md;XPS&T3clcw42DL1CRl(APbpT1pwcY9Pl zBQ58KkAeF%wE@#~i7k+TU6`>cG2m&Y(R5zC3g8W*DLDL0?hd8(@akq```M^zT@!K0>01Hsfq>mRf ztk*VrzW{~Cw*TJwuqBEQOc2v{^Y zuwBU5NSCJ}QdlFh=l9XGG0RxK zn)B|TwR5&*c2E7t95--qO-Did(pQD`8eQvF;br!fn}rRh_twvo1s$r`iyDnJHf;0C z9O@K{?pa;iu&)wyyk~vVzVF&_Y%ga4gfS^-*c2TpB#Bdaz>!IB>$HOoiRPnF@ zXPIkxkgSr$tnhI}P-Iv0868#`7vCtQJ5Rp(+X}saA*o<*3`CfcPdXDr1iD1<$fgAg z_8!fXr6}oAW_yy>Q~~wsI1QLyzb%F&Lc{Jg^PY>lxB6>U(HGa-GeIj@MZ#VgWs>v)LLOg6HZAqcuP8{abPT<_N7g6sb=9jxAVYM>@ zt^o4CEnltPh;v)I;jqi_E4u@E`EoIQM|{j*eEN9K{7fNa-rKD=W@>RZu{l%*IHseq zzyJMklTs!LQwLblm?6e3Az^M%p!Rd0^s8|M?-#_I}w?{MuW?widVasgI@M zcb|_)cv^AY2Qa2^p?d0aka*JzuGB}-881mE{scH0L2{DXBK0(i3n_#??y%VUZYX`! zgP4LaA7c|h-dLOr5rD+gf?HzZ0B=kZ+{q>xb~dv7a3`Bb3^>7Bl`Cx|3tmHg$sXm``a&vB@D$bUQ3Z{VVWXW6~I2~@B=ta z@a^m?mp=0oe*mgPFo@^@Q`y2p263dgLX0rv?)9o{i)5!@>YRZMJ;HPyDP(CdCjBMi<8wCPEqGJbC{l-2i!6tA}?9x3I7s_pnf`{2?GUZC=UNG#m+f5 zFI z+>8H@T}R|vq6p1bLA$Hi75up^esPOHckRLfr#By6-terWc>7*4_^U!X^jrQ+SR?;! z@w(=+iJ;JV?O?Uw>5lPtYg6>iHYlGe)cq&le^YO2^90YSwlv#52~fsr{x7QTcFo_8 zt&f%p90dj(CR8ca1!fnbqSS-!@3!1b085v_CvSkKWlEG|^(nYR?ETiZi5>5V1=Qd6 zNVkK-_$5{aCB7Oa@FZ7U4gH-e$EOv>uVwe+lnqB|JNx?%xtIB37TXH1Hzc?gQCI#K zO?MeBb@SztZ@z4B8^nc-JwekgFaBG64P4*=vMt!k#2M^CqJMwlE^uNC-!kOS^WR06 zYG%pV+sIE%DZR^AW7r6)aVc1FsfpwZe|q_O#!li>2LmbdL)Q4Ey0MyED5qk$TC;V; z&)QWmoX8Z`@(}=zPPNhR_#n%u*-g}4x)^h@GM~_9Pr4mOI~2G~!{r(9RMn|gv7u^$ z)hkst1+(|&LZIh%mN0gjBkbx!s2>qIf9Bt6yy4OXsk}9}Iy2t(+xN}sg@Ut7YFePq z`%!9=<3T_Z9*$BcT+LY8xBDHxesTK5C{6iSuc1M!ik8TNmY z)%UrJ_?~k?#owQOp(=1IM+WwOp}JEkFH){$*SJ>27^g-m=Zae&A9cfZ%Tqq-nHf zce#GsbN#8|wp!%&r^~$Rfjh*(4HU&7p1r2e{J|WyPvnX65a{+0+4sO|dP+ul%5-}w z?0c$cdTB&?>2!OY-akpry^W*1&vkoS?R(p5`Zz}UT`J?4;Kgy? z=W1$5$j#t6yrv}Mhu4a}#+PJ7N3wvBVKNFQ zMm9UVT!IP7{DT~dGe9ba zUu=CDFjYTuPEM+x>lg_D*em?i;fje^UJ`tF3EN7?mDDj&F&95z1cGdUfEY4o^{w|} zV49EA0dNOTWT2wp{B2Cw8DhGZX<8*X{ZnrREtd=4z`*Qanc)}(lUcC|?JH5f zY{%jSrGqlsCX`kp?R!tjwPoS56l@MMe@li3HAEn&Tr)&&qXkZbiwwE9 z*DG_{ZgWas{9JRs5sE#tj75Q%oeA8>G$SI2C4T^gCxN3NIKR@HA3doFgRT`A@C_hh zFp)_N19q7WAkRuJQkjgf7tv!S{(_N#gBScH6YmM6u+%9V%!Im+@OBDdDOe}|MMo!W z92Ae-90l|j5DVa_cc9FY`J8AHbkV>3^?DAWqd^pALZ8#vR)LtGEBmT+F9>Uw6^&?{8VHV^(uDtpv8FUpf2 zS%X3k=7MHJ6~wD^2OEBnut&T_8;v=|w6p~wWjAk zr(ll+Wz=ioV*Xjijco&ZzQ&|bfXP9z1l0*nlN0o+`knSo5L+MPzvp$!ei1wOlUsM~Qe)p^Az>MA z;Rj!Jak^vPZGVfqTqC>1V+Zv{F5NCm14NH#?8w=Ewk71-zB0(Hax&rJf1i};LcnsI zPWl|MfrloCD9(7XZ4_e<|2~rz6R^Xk%FPxyF%7`zjIq0Z&DZ`8B!~?@T*eypNuL@# zcLU&#pV~>+GEQZ9f>y^#vIZrnZ=a&h|O{3IW(ccEhV>pb3sY2@dP zS&MG9Ba#k9*nx6`e^{JZ*XzmpNsU@Slp;3vNeIX-!&a9fXmlHSYemE$W?HP3tyapH z=3)tb%@39hyFOh28F+W|_H$hmO~21-6b81@phcvN{F~2Pm`PT(0(&5m%i?+a^bs~0 z%;8)8AnU)Zf`5Ibr{zxc|lHqqn6(iHE8TKZ0#ozpm=%dmL^y{aq zf?f?TqM}O5M zU3%+j5eeT)5lg_0dTQ5ye|@~G*Ubo$hXfzGVP{5z=_Vl|{gFG3_x{1L`}LvANJJ2e++v$|cm_(v2G zKi9vb!p!VkjyGalGQ0KaoABN&!_&(zIbbchEn6XGECno{l{%JM?b`PRm(87~1W+tg z71RKJ{TLLq_*5MdtFE2Egkj;3bJ6!hfXRV;av{W#8shUj35zoQG}XF^B6-)|8_a6; zlcnl`bNy**4X-No;|`CQ)f=a(KQ8RRS1Aeb$y@h4E*#oOYhO< zfBkWPkJX2S*~}B{dDi{`t*I*XW6Iw_J7Rx#WC2=^dJ0!vzDCA zIoAKP_x)4fEskeVhksUIO}PobUaBO1VyOMnX_B&SlCAUAaI$oIP=pxbFk zWrD?M&@U4Y^(SljV2Bxr%TWg&mR}Kha+C^lK-$2wb?yv%<=pT+xI#4$tdlknK+-Op zGe#;K6j<{r`_z|(%()hcI1dj1yf%4o)>`MsBLw4L2vUWA>o6YXZVrr>hjm06!c?aH zSE-U;d%qcS0J4o4db|O-wnMUWdA77OyMDD2b@&PP+q&ca-E$$XWevRRQxmF)JrxpD z6P(s`U(QMy&+Zq41qpO7GQVSoG}7dra1fmHpB%7Q1U)^>P7LZWR*1`gHf1pJuC644 zHGCMYwIai~&xD3)bxAOMyX!OjuDwi7yolzos{J8<}!1z#oOOv1kasDX_D z#yK;WT}eF*@*1Jg2IR=7(~~-x1gsvu1ms<}3^50j5KFXzOF`)s2~$h2;-mEdYVc1?D0&sSmgt64pT~JZy3UaO{nX z1g65wmtLYgx$)O#ZCUBMCDI7hErMMkXa(@D@Ix`9)o&R{B6wu=7yNSK_iFH#jIRtB zGX`q3Q{)sG%XyKcW5U8zss$XmiycJ&+yC;wo(_q$Y0OSyMZs*de)?($@|4jdrDJWg zL29WKqy$L~WJw3%Y)v&4V+JORXjilURy>`$O=6c2*IMgF$Rq!SUeR8*Kb1CK>*?AP6&@P1eSKd2e{D5!bgSz?x_R7 zJWX%m*JO(L_s;-|%7i{LghR%_^L8`2DlC`w*<##GMU- z5Xn=PjlC>wuQ1Cl1G7*R5DxkdMKl%>cIe#H00lR2waA;g9TS80*+u z&lj{2f~5`rDM^|IcfY`FVyfn6W>N_cC#`18MjaGHj5TN+t9|u5_npQ9rZ{&6SdhjV zZd|>4WXTKk*NvUx4MOm2(I8?1gwY@0jI-3p@M#iE$#MZ|noB8n5Ci_Fr^{;PlRni= zMplrR*G`NJc77-uBq^oXaI6hZO_%y?S1IN*xRou?_VAA%aH;3>j{tJ6I+Dnwpdg(S zq6H-{s@wQkTsAXxd1b1Dxgy6;l4Q)Ed!D}u!4mLp*N?RC;`gsMd$)*+{e5KSO%Q|d zmXJmyWPoeec73vTypbpxSiOWz5^VEa_lPs?ajeZfu=Xe*g|&AUG`9}bPKCc}gqKfD zV}_b&aPM@@A+hdTkBpp+&6G(f?#(oN`Ua3_s-eEHT1z=u_f9Q~nemtj|P7f<}>aYrJ3bkr{4%Ks3a;8)pIFtCY zZIV!lev*r0&vg&6V#!ZaO<7|MVAWwdBZA)7m`VpYX}gIs{VYVpOkmYqV2A4>bDWMb zLhhE0whWTQg19~igyk{jurdCC^ctRt{W*3{HvJ)!|IfIq8NGFcYPV-CUa1@g?f_lw z^texJhWicd>Ly2vxfP8c-bM*Sqmr10Lr%t$EM8k{Y&?yF?02Tfzp4|3HgN-*@^5=a zMoG>Ae`0 z=f_*KKo=PX_g*^=Hv>Cpc1WDv$F!f?1#SpD+#aV6OZr5nUqG6fosXSges#X?_5K?H zb@EF!W54H8KnE_P%v8j0gfLHC$@eQ1!StlMpW;*VlrL#xO8XJQ_EpmDc{2&n1`WBn z45_dRztSDu1<)$pmHW~DkNz6ih+cH4I)+>n(zd^Qy_1~5^cTaW)TF~iO|El%@4{gl z`G|8nxUIu^{_E!B*B|Zu1sOZDM*r?EA`ziEpVQi&g@EJkE59x{;Awl=vHZ5Tto~wj zg`@0AoYwBIVw}rQ^z2s6X$y(08;ugxWvA`3zYz!F7Q>_y>eXizC!zS)ZPgmwEKds; z5Uo#6{KxpX1>Qe6fmH8GNDS!F()GnZ?D!XS6UEoJvj0qmO0N|w&H_!CgsF^pOT9bZ zZ;RNs2Jd+QrbN;y*{PWV^-__+#wR}@-w0j;wKrmk5}d|KVC|kNh}P&Htiz0=fEctu zuI)8nzq{XVTUw1p3;;0vV-_M!kmBsg#qf~)zg=qDvyv(DlrA0R&_+X0Prq9itvZAt zfn7$*fm$|QG^|I32iXOZ$B?p@LEtg)hcJ{>;?;sxKRs!)GA1&opU9PK{!LT*eEc!6 zVQoZhoTW7I0R`d3!)vAEDu#4~m$gL>f+jQrJ0;}4Zo_5ZK-ZS8dp_b6WAz5lBg&fw zhX5OxyQbUlI~WlR856fRpc@la!BY?bPba#+g(=a^q%YvkAQHzr5)M8Z<_v<)X#)y? z5kP|R&FB*h0zZ$EWb3ak?32)I$)PjCAi9DS)(01L>7?PJYMaus9{|Tjsh|i2Frat} zz=zqI7lAKN0X<=<(!WwFqBs?13_(-~8x3T=a{^@o3h8I=Ca@Y3tt33S>vmFcWY&sQ zt~f}_{jv1twvzt?2W*qRTR=fnA=*=s(PrE?d(g5z#v^F1rwHx-67--MZ_`Zrcw=Ve zTiDAP7#p~K>$w~{ znA?R}sB?Kd{&^bMy#HeIgvRqkWYPuJ^RP1c;sRL~ruouo`OEvT^IK4PDvv;^zT9kn z2ev@5G+!&Npt=McibqP()#FMi3(hC(M=^nXtQ8f3mzI+6m5B(z*qH$BLO2T%lyVMVWR#gco&rL-=Kev~t)qKn zlzJ_K>$nM-Y~Me)e=De-N8Wkt0MJyQS&3K*KL z{Pnox+7OgY8Ib@3Wg@NXjA|6U= z0{A;CX{eO28lEr^|6#oMObw#_%FBYHDRtlhGgSN?=tm^VG8e`a4yAuIc`O|&ijwES zAmA*3D~r^nbQE0;TChdoB?a2CNI9feiHw4C{z!VasQ_Vh&Hs=R* zaYvW-c%xcKbteeMH1p()090gCF@h5h5JBe;>U_LWW&4uuIv!WjOOy(j`;$>#L=;u0 z;dTHgeW{tqsAlP#yFcWE`fZ%d05|jDnj2%uzJ93BvE&8a=J`WZzj^Z0vX)zi6smI5 zKS8n~Nzd4e^Ko?{R~uM*t4KmQ)ja}gseIbXnbmy}X3QdmZiBHad)$b$=o^o!=rZ7j zGx-t01^&K(4O;*euBGXKyAMz4jl%`D7RNS2l;KKLPzMEd=c757GK?tJ(xv09RZuG5 z20MGd1rIzNIXt<2ztZ5z2B02t5W1W!I+`Tqq?OyF-nksJ^pvb#PxI!yr3DBI0h|my z;M0eum(hAh39Rm_t|l9f0F_uRhSnc!*X^#;WClv0FSS`!1h){o$ZqCxd?37Y{^u8v$Yk z!lOq}FTuSdIQXyRPzK8BYOlH8gA;UTRmNSJElB}P6*=SSS*@Np7~s7nxo~JT@u{i1 z^U5gFuOl*a*- zEy*sSP=&XB4bhHI|DxD3pFn_0hWKje#?z= z_ti6zM_ig8_XM~qrPf`gpc33TeU9p`^tbpU0WLT+3G7mb>#w?Q`&H$$L5fuh0tr+<#nY*UdoAZL8yZHoc~p;VfK*5H711x*C>0vq(w*X>^Sjk+)!+>3hy-PijBh^Wg% zZqcCUaPo5iI5QnIA*+v;Zys0tK8f&nwOjb=of}%L`L$F#fS+Qz%QCvq{5H9>LYX+G zrECb`6`QZ%+-(|JGrVl)U)7&`eDglCU`}-<_H+!o?}OJPJFGMW)x?K=@jzfIO6Q$Q z*hSl|5~h|?E%BDKHr&{vmZA9;cY`-@+i4z;v9^6l(Ibo3-YMpnIMsraHBSTE;J2av zFTHL~qkf^1&kyn+ zn*N}^@$Ft78t@)<4KqJi&i1L}^hb_gvrg!_noF#8S*SjJfTay)xOMIs?%mh>a}r^N ze&sV6Pu`%}KJeMjKd2lSdos^6HD4P%hyIV{%zA~2zUxh^FZ(qtiPy=UGQcU*()HS1)py=ApN)UDzZ7qFd_Ms>(e~m$>4Qxm#NxkfQtmpX zPCs6}KSV{am2rQb;JZBOVP(-W{~7)(Xq6H0Xhyy{?7vp2$;DRJ1>Vn#&U2p=Cniqe z`}eGtZ!WHxJaw;fX%7E1+K36Z;vl?vXWSp=&+&+bkmt{ z>V)q-A)G&}zfW3keEjS-n2q*fTpTf-6KJ7=E6tcy1mBg*Tjai5r8zk~ z;XJv2`4A{ofO^k{ zN&^zl1N??FQ*^^rPD$%p?e;2zWHu)L=@}agA(a`3TuaUMGGy*?@Nb@Z`_-aE#phM+ zIWC%2h0e9j<;OcFj3j;?P9$pf-I{IfxogMBrfHd1Jdi{Ey0Sul$L5P&QrDD$gm?F~ z)sQn(b=W--*Y~H`GOqf)=?cFIF6vX;nC^A>v;tG^mjBWp_pi*Db!N+BI4$dx{5=*R zIZH#*P+o_ovRnXBj;fe1ZC^>MI2+h6JWDmpmsGo;`D1o3aHjo|>}M5xl1+8``wvfp z4_Y_x^piO*%&?H>TMJjSO>iJu2UoqE z!&=X0bpzH|ZnxZlr+Wij>r7@gc*!@T`ICl99T^5*>knC$1I4;Ns0(^M<+nVvq=>tW zQ3fV8^^|ElZ&?}swJek#i~%!KBjzkOhdkzNqPGnO@z=W`+(b~?Tpq@XDgkNbh0Hup ztci>Pr9KODA%XzQE$}%hL3~03H?EY#TpKo>*I*&ln4BPX&725U>P<{Er99;9>G>JJ;VuL@2k;$Jv$ zj~j$;bDGfwzjBf+vKH;%N)$t>XZFqi5Sc66reH|su5h{)miBgC8)0O_)T>%=}W{N;BujRa~<7_M`~%_(q6hM0S@REQrng##RMz4Q#Z@Dn`>>C~1$);uVE@9Q2vh%}3q2`Qv z|Hiud{(woQvDiSM_gMFP`-@TL;I8n1f2$v_cJxW~N2@+*V%quHLUE8TNxKQbO{8;jJfc+Te)8m9e;ifr2eWz9*0;i&+N?GE19M=v~R)c!~2s6^BJFXQO$ShL~+)Jo;A~ zs(B^Hu0nQoOBN*IL(eFvYtCXHB7xdSm12G4lJYj>mn}ghS_eV*HV79Vt4=bm*f)7tMyC1%kKOa(FFwahW1eoDNZwbvW z9FO*lIkpCul+*7x7Y}xgnD1GW05g97D_*5Ptv2*Xf5Di+ZLc5m~K_U4jU@R3hfc89_^t{}J9qPBj2*)NlJqyl~YF z9Fa&glbT_|+5vn<>Hw)Iw^U=#4)1PUdMXf>V4~g!8!>7321vn%q{5^LlirS$ zSv=f&s&%!3RocpM)=FEMq`2nI!szQ;vce6#D|hzn2ly%RSKsQuzSq7jj$+wQ4&&0G zt4N3QhRn9%lR-BK(s$XfS({jCuy8m_KO8-&Gv5DRZlJ(74R~tkt)nK6KE3IJfUV9kLeC6#PB#N?*gguSQ=ec+5z@eV!f{wqIrXB27LMFxYz2Qz-i#e?>l?R7nB!u8V<@) zqCn2sr^^M;xK>}p?o=|40E4rnHxTNsm+sAtt76B4S5M#Rc`}=DcJpD+j%s>4>FIF! z(>=AP<2Cv(c2pS8mQ;Q~08f4rFO8XPN_tKY|CLDFxr#5ne}-lE>GyX!JVu$X+erV3 z<&DY~D{=Mm=ya6F05aN?Oc@}FNSW{(;8WMr%0M>G$z+YmD3MbC(^WiePpYOC?8@mq zj39{Eb7p~hlS`gLWBQB>22Q>L{j5WRDklV53d>rf)q={8UgpU|a=!o|+a}JxrLGDh z39o6W%cUW4Txv!`nP7o0>m>HAvSRzL(DAe-J8iDGm6Tj1Ohc41LwhzJnW5TTW}A5jNuoIH+fEaoI1) zEgDcH!+F>6Qem4$kfCj%q3$rNgTC6Bhq3thFbFz~6*4Ne(75>~%}BVwSf6YH1w1o{ zZKu<$`i)5vH6l%Tlv+cZUKJ z(n~i2(k0!gAdO2c%Th~9H%NDvbV)binZh0jeG7`lg0PUk<9R(<)m$Rtr1QZS77nd4 z!4t}2=dzNyL^9;y^Mk~j0-L0^!bt;W)PqVPza&5(|n_5bb`1&;SnzcQ+PRobCCz$`x~p))j4JN}0FMVwBpo>EtbPSLbZ zyj*lsmSPL(MB(L(pFC^31blc6i<8wHfdHd#q-GoRh9Wd2=ZL$E34j`TN}Ji_g8A3N zBQ~VH+lLbm}>ce5| z43gqpvLmaoVWF8t*kX-b;`@(Uu>&e=PI3mJGxVgg{T154Iq4X3FicPN%RY9(g5WO?6KQ;85FeSNExHfX7ABaN@c0c0{tiiI83Fc7jGeET z;+N0`OI(eHUtcAXrgY)$85UkHwc#82Fd0F8jHxCPX(h3&BAQ1`3v4VX_W9+CrFnwC zQwuWqzRW<)yF>|SofMhzfyCU7vw`wFd~yqUm%SYy)A~mOG1JqwdL!waSKLE`|st=6t|%kKW>{ONtmb&j>>t%=8d8MlKXT2ECTcE zc|h_Fsm*+$yxv1KplFztICACT$4=5Xsp1pU3S6mbN9#>UZ;Vgxr8Trn&__pC&q_X>}@y{89PN9k{;fzy3|JO5I-i<+hxx5`27%B z^l)r?^O>o!>_@YE@tb|}W^LLVm7qnDzgb(dnemry&vl)5eTm+kN`?OBe%XfpRhz~B z7R92QXNQSfCc}7Jn~jB1=#ii2%7L(E-_#{Bd zA~7AdPj_4~BD|DFyDxg)U{by#8;5Dt$i#Kvqr|-Ux??c($c(y9b+iDAMn^l&@a~PN z53DY-uV!$ORjeW5w0+s4;m+3wwvGSU9wk+`jzpUpTri@t>dF^aszOqX0Sgp?+>2e# zUc4o1f^ltXB<8s_s?2a(qu;DBBwANIC;O+hI_yoMJ8DY^Sv>t;r6{-l4)M~2Ld9?s zoW2(VPR&mwE~HEl#v9LYGmS~M7HUP0SB*8D6R)rsFyJzo!lOsOTH4Pi?V0M?r|cBu z+K%X3gwF3csMr)Z*%WDUOvS$`z`e;j5=$zgnbU{NUt4cq+Z1ZqF3%56h}brLNX(?M zduPjVAo6A`WqLQ`Va$ADgQF0Xapzn1Bc_Vo1AXHmGAoE8HWp-H`Jo)kE`LLLLO`^I z;w&8@)B+@t(Jc1B%t(Xwj={oSGhvREi8Y`D;&b2{ZkN*J#@)r_QP_5?+f>$p1}BVZTJtf?SW#EKa!GF7ir}}yr@B$&pb++->5*hbnoD2yF-DBXF7NUx9UiL)LAEjD~Pcl8* z&Q193eheEs0R$%WY9euJoj@m`;`R_A@eNrxJu5tocS{R-TI=*(VP{FcQm4zg=m!y1 zYn-ZKwBj_%!O>aM;9z9XR%)_BI`u&2I1yGGqm9I)=BLzSHMoJ$M?XUmto@!Ov&VB7 zQl$W0XsjgZ>#M+;nb%vaM7My<+A#IOc9`|PG3_}(EZl>N^NwE_NYn%4VxqM`gL}gT?(M1=<`aJB`-uYX z&l&7dX^M$pND~D;UaEV{2Pb^!r9Ow0N7gYW-QbXbtbeKpS0=xTLCGVr- z3p8vfSBT!l?wM;*1qriLhmqM(B86xrx&;s%mZ{Z%->~P(#ht{^^^CPUOWHG`*bO1Z z?(&I!i3~klcd}#Z7nA^Zual7_yxg-2QQP9Z52+Z|LJ*%`zD{G@YZH<0@%D`Wi{}rR zSFtEs015o&A8ysKBu9?PNK6`BRk2L|oG!l3G>d3UerTEY#g6bmTD_&UXQ{orPu_QfU zvO@=6kL1+&eO;h`!4ZE0X!gBGz1*56QKv^$*O0Kd1LW>(4fZj_ z^!PR>8St0>mBUa_6AQ$&;L+c&n!Y4k#3FW6`P~5>3l{5TfAVHH1<_|)Wh{L#+@>ag z=1&0WR6ys}XV9FUgy;*E5|+AIh4ulQZZV*W{qZsEG1G1*#e>IVEng_u1}fohMw?(+lmCn%_<|J|^!TJOsxUj#}fJkbx%8_2~I+?09HOmf#EI@JN6#pV|8 z8Km)?#Ps6IjAGi{Jjv+p^}`3(4;}^GV0wdWc7vkd1U|Y6vM&*~b0Zf(!YFXSH~U$K zM^9aeUORTHJF~62mOS;;+_QiA)O+#iX3f*_X^81bEUh6xy~XN#H~7hWHb0`^0KV@} z{DOlo*nHB0Lra2Rg$0Md431a~j@%87coF>UCfNIZa5P&;%-xV!rI2d;koZSGq%}hl zo`qo2LJ~_tu+1S!FGG?SLsE7_QZGW%ZbEPrq3LX)8Fxc7l|r)~gl0bq&G8F;{wy>% zEi|trG`~5t;ALpxVrbFsPoKPKE4+A;lYoDpL&tD2BtQN;Xa7}@8$+^m{jU#2a`Y4W z>u0ICa@Bj13eB(&Jz*BjG}XbsUZjQH)Ut)Qy{FyE_x$Tq*Zw`_aaU?*0$bU4^V(KM2vK&4r=}Ww@otO7k&&TA8BFRw=9e9{@HdG9B)n< z;7gs|l$lKXy(5x5auc!iAo)}@;@=4QEAxnVC#jPZe~ak<&RnpqK2LhZmb$elv;IC} zV=;1PG084;%7tN@BY;K;L1QdKtD;TgzN{y*Pg#M=ww?Lys$94?MPnOEbzl3RgEpmS z8I5{x&aT_fw~HwkN|~q4Ifi&y`3ii_%KwCn{+VfWi-tx`q(%KFa3fwDRc21}>%wj? zar!!#7S+?b2tma_>4ZgVz%rG10pZ*IUnV++A_Md!kgH4Vqp3`Iq7Zi6-c$zfgL1vv z$2_lc?mQYz7I?xtpD*S2Zm#wT-(oS-Z_=7|a0JC^NyyHUSzbn6uH^vpqs9Mkb! zf6LC)!J*FXk#46|3SwR(*b*6`^=o|Z7m8_eSggLfuT<$3k+XaId#>Y|xBH&|qVa&X zV&{t^ld~GFWBrd-I+M)rK6;5FgGVuTUOKcSDxsxLx~;|_w3OPyCp6yYt#GkS)|TGA zuV(#gIpt)HgJ1Y$b}ZV&^mt0fl)i_OoJZvOqdA%NNAvv9vFQdUb>#u5r;i48;H z#75CjrTfExdNx1z7@%1Lj#)j5FdCsJ%v%}(9@ZdLs0f^mR!~r>wHP9qKNWLytbNN% zbOhX-7)H6my%8XoCTr6U@b;%h6RO{Lh^G^jP!oD+kf;JBP}}E>zD@8W@WXJIX=o9~ zEPMjeKcc9Ja-JUhSPDXVzGrtI69X}D@e_MhePj21Ko`H1BZ0LTD93Q;W6H6@p2SYc z{~KrpWEeY~(v%2gfOLS~(lFzh3co{%p@z0gwz+FBq6jV{isB(-5f>=utM1{I;)4@Oz3z7S&K^zKX*vo#^t%!g<3X+3<$s;wRstnjAtKSXi%r`ZxDJAw;CblqnLb^4|3`oUx|kb=g$Hy-k*92 zDy^6LXgYr10Y2C1`6+)t?)Q7S6Gh#k0;TX51&Hr@GTh@&)AOT9rCxOYd$fndDoFi2Q?+g;GJ zA#Sy^z=;jhk(oyIs^lGPfZh5i!;G_3ih;KPIe*q>GyL$TcF@@hcO#;I-pJ<9Q zswMLX95CqKI*LIjKtvQnh&08i-Fb{j`O3sbbU7MR`8XTu!Ba~8Sm&s7IneJ-0rUA< zNBItA+N=%ly@FG{BH=w^8m(-1$ctt|>Nsm9`&po-g^@nuLQAI9$}9gKid2F-f0ere zx3LmUKF$+c$~3IRC@%J&#}R~Y%S4K(WqvsD373)9IB}poWsvdJjc-isI3N#dLKgyn z4Q4>9#8MH1#tDER-3gl@} zR{Re)`0ctGJ-27i{`!;I*CZ6PlZX0jYqu2XGXa4MO{-qj zcpIP^8eqZ5$jSZR-z!+j@53;rl|HV#xS@w+uH-H)wkPPP1HX(eL#rqk{Yk#14Ff6A8FUvP$tZ; zJxpA>3&i1unB*Hgp$;*)np_uxSKaJ#oNsTmYYGR_Sh_9%-pQY3=E={wLmy!6)@p8#-jk10-fB9I-Qd3$aK@`I|tv;{S|GYBT616cq-ai?rE1YqrHYi@%R>R8HTj&UK`%P@MdzgWNR>| zpEH})4%FkD>`UhJRfGQ5Q0u+SmVWhF6Py}>b{dlzOQH88Xd6I^aLsbG>UTbOX<>rC) zUZJAXCW#-b`$8+V=6}yD>5g}GSArN~Y(F|nW45KUzI8r&!|wlFZsnfe_x^VGiwM3* z9csKB2`05OCb+`J;2*E)->d?|-+yZlaEFXq|GG@{<3C{WJIT>h{QY`2s_=^twEV-H zFVUx?_Dv^W$^Fg|Yzv8uiq|IMS&U(J=Z z@O}zts$M>NBCn}D&bAkTN?=zfp@-4tW_`3NSq@;+lV=}xU;~)#f4aaDv_GP^?qUKkI6)Hl17YJ3D!pNFFXj!ZOlL2K zv3i_zEh*uvt!}ad!>Afl6XcFzOk{{d)XBd7n=*zW2xHwX-UvzG$H812$9yZ>TI0|q zb!6q`G@yUS_(hGqx(LGdYo9Ib9be2lHx&K?xWIp$Y(S0UI!zEjzw2yyw>Q8kXoeCz z))ekb7U^=lbN24e(@9dWyz9q1{g4rOE+G|c3x267`lY;s|6osoOP|z9jMYi}pJSK& zfw-fSl;^>sHlA?^3Su*3;d5~RpQf}F_5H_8GIa;CZBBBIw_Rfuwhk12DZtZnpb$kU zKg*@?noIH5ffD}VJ_G`A{DeR;000OB05zZs2_Z?#XA4^K|I^;L4K>N^A{JV-92s2&UR+zM%C4& z**Q2zC)>5P1qH?X{r#PSLOcc!w6(NVg@k#}&)>JS*4Nfn{P*8lZ*O~PS^m+{Zc%Y= zdwZjkvn^6t_U^49VtaLLY$z@+3X>SKzyC%@M;+aSPD@KPG}L|jc1sBu>`S6IRckT)p zKh*#5@yNo`SW`>I$Jbp>UP?t(QAYM&S69owe`tFLo0F4w;o(mon&|84YX&^_nwlC7 z4tXqgPxyhM&OM1cW#t8DX9v1^8rj)tZ{Do?`gyo}I29D;C@RSq8S5pdBv{*+*EhVd zu{DodU0q&z^(4?IIwm|eF7nYMD_1v%$4|Vitj)|VjN}!h?H*Y=W@V^rASIEqDwd`Z zrQv>lo{^K29_6J%cXmVo_E5BJvM(jDiEB=jVR>h}HM^*7b7h?shSa z44a*3Qb`Lf=j&`bD%u=p!u`hm4GeSnPw663dN^C+d%^1M~Qm4V3Omi_0qr zot;H|{(=e#(M%Z_FrDX_#_ zK9NMvAr;soRxy>vu8L*;xkNUT$^WpiL5EPtM-Rw4sqw^7q2p zJg{@RB>;+7txke}q}-r_H7@KDFsL(b#~+4gdMVdijbT}IyBfCJ-B;_>?*}&i*Dd!m z4np$1@=c%U>ARg*-Oal%Q3Nl1gnC-`v%)BZQu9Ju52kQjy2XW={`z39^2hU1nJJ_S z(7-IwH=8&jl}qHhG0@Hl$kRXMb0)LDR!gWSUde7Q9fdD+3ZsE|E|*e0!ejqNIKk(Tq+l+f3!F>7~Y;^X&feu-YbrNO#YVk z{%!>#C-x+0T)To45~uoC1VT#-X*4uM!6h}6m5H%x5am>Pd?Xb_xn?OE4ji@EI|)PPI^i4g zs`w0ru4Dk?#KVQ$BE;3m&`$!mPyjhoiiXgH9;IcOd7f6u5+>Fvmn)yfAhm!N<_ZF` z=|s(zqE0Q9x(4U<7bMCz0$|`N-jao0@?AP#0Hdr05W!J6MEHKjFe>%o_#^!g}9d?oP$oI#r2gTgxQ`xg z3ee)f(Gtw38xH-(U%DH3Jt=%OC(&+trHTT|hbpTmCGFznvVQ0icgrumMvUMMk9ah4;#Q;FwPbc5(?Qx) z_$dOVwRsEl3^R(;sDnF9RQb6!LOH`__ zoFh~m0QO0kA_4GDeW+fbe+BYaWNA1CJPcD_Z_mp8hEQ)b{_*JNIpSBJ?Om{~XX@_F zA9AvRjeWt+mR;R%ch_!oTdXnvILo1xrQAfnsislF%-%)qjpKGG^Ga#+b+z-VE)BU5d_i7>Zcgw}&TIwS{jlt-}?WePr(&I$KwFD?0 z>s%2ZX1Bjf5-GTK5B&P_e3-Oa^B*$9e7M>`a9@=lqEhg3c#?v6M3p`NC#8}wQ5HdH zwO)e&=v}Q=V89V)^shzUA^)oIMDK;{=FGy=zN@0kWInCiqc9~NU>iD0tZ<%q^C0xs zRS7^=gRD}K+0+i;g|bX56U{E6Wxtkzl3Lt^DtJ?;&gJ;E?rPGr%c)^sE7-|uwKR2B zGV;Gx^6S^?n9r`{^nI-oO{vv$(^<`b{k8i3e62z7>}v6^uP=~fb%qH#YvqjBHCp<0 z#?NQhs-;YcD226%O8cmu$8pz1Zx=r7o?UM$ch;7k#h6D)W=Kpd*SqW2Tk&0W)$|B) zy4u#;yw}+rCY^R5FhW}ReKEs~cQ&EO8f;v+o*S}H2`8|`GiXVHE8|9Ty&PV56e!IX z*K{P;O!U1i9&U}fa_98SG}vqETKz2JKsiNQes4myxzIQ(iMDCwLO8i7Z)~~sqj4N6 zv}YD#tSQq-+Q8;Z0%ayr_B)i7EUYRmRVdWA)kKQg^!43jxsE5Cv$Gz zy~aEy8nsDa*3sKkhcT*j5+C+`AGBH3CBg~hXlr@1OG8k#hAuDc9J{6PThCP8Et)uxZ5rEiT)F^z;bDkI zOS1cV7_+XJhPXWLrU*_7CrnJ_;B5O{ojQ&re_W-=oRg#b9X-*g>p#H!UC5uo26ST>=W~C`I`e;X_8Gh?6_FWp$7oA&6xeI~k^hvLs zYr#Omh7Oe#3GA^x5l4BnqmaU%qnI9})t1ztdHHYS{EE)EGfrQT9a>sgsck_e{&*x7 z1y(`C`O5FWVqNAxx;{v9E~1{{WAkxKiVNjfstT+pa`e=c`~BZuHLaMYqaMIa&oeF` z+_O3F%U;m8bD7#b@LvBStUqh|+d}tH=sYr=ZgIw9 z@V~E~QbjLSZ9rM+U(N!t0SA_C?-(D2u{ZfCe6go+jOCuQeW^KkxuYu``|%UU#G+&K zJ=sj|MG=nv50=WP$@3GVXFs-@g-+Rw_ni}*S7KTJ-l)zV+s5LQexEc8oimHSk85BX z!LiO15aaiL;~W163w`$MI|ZFa$=XZkz7Gr!^@<3nKYoTN^P1#B5ssjUlu;xO!B3~2 zQJ)}KZb$yr?C~8`$&HW%>Cw=U=#F(yIt-$y3uJ|PLhxcF$N6E-AV~+mAayK_MJ!je z7k?)rF%azI1qUY8@LOZgsh$C-SaKsTnvGcCG8VrqPA^1D#T~Sj(8w2$f8-o%fiW5Q z3a;jW)>=M8U6ji?psf}f!v{WsA<8>IuiSWFcawJz;II-rdg>c+KfyrEH!wtx*eHQG zAmLSo-dr3Q1GD!F!C-PR*d9#s7AE!P2L?xa*kmyEBRjqq*i5z`$eZkiKTgbRwlgk zT|P+;;lO=R#!an*?|SGY=1Y^O`llemyct8dlA`_OL zK@iP&kIxDKvPnD`bFx9RP%t+b)U%YnRfB0*g3=xs`u!}snRIFCjNH~t>E3KUJWF|o z=MQD#{(WKbJf)7i&UCiSM0)s!Za>dFV%FNudS;oCYn0A&n(2O;$r74{(aydnkc;xj zG|994t{jxm>g|ef1K7QZ0}R7W73|ExaaZuxF^aNJ>p~;Uq(N*R81;>V_A~G@h|>B! zSd|BM=PAI&(l3b+gFg`!y__LjocGGX|J=a#Jg`{+Y=I&ciGkm-)_p%f)T0? zK-@^tFL&^O2RwozBKbVr%RvD+Al%_yn1~455^WTyfV7r%WR(eh<_V7BKkekF{Z+7$D=@4MoE)nl9;w+50$=46VDa>uIfB$<-RQKzaRS)C$q+>;un1oS00nOa9r)?2 z37yuNMW5Dm|>>sm(ZCh?;?1fA#* zvi;a9QA|B;Kt1z4zJ^;~)2uR1I-H)P_<<*8xCWer%l6fQ%d=_3pBuyTi$lah^ZA;F z;OIFb^p&adQYhVdz9OhaxrU|ua@4#ZRtNc9&rsH2x?B%WZ|bdPE`TBnd$9 zP;~Q~QnXwT0V0Apy*pf&GF}&yrlm@*=XUzg4Lyi-Uv}!$0W&`!$n(72UUiX8hldG; z!@OwS)_V!lyTH~iQV%daDFwhq;L^nkJ!$=M1TvyscUnX``n@>CBwIp3!ms^`Fv^7l zgpRv|GsnP~C-{I6FgkWY><>f)DNOdq&3Ykbk_KeC+TYy#9)xg2LINV&Nh0Z61ziY- zBuRo-`UgW3hS-(|Kg)Jpohfb?v@))GMylWWX^pDapnOGQ1N;0^++mPCyv`5}mTEH; z?v+xVff7uJ@G%i?yeI~-;drAFgtDvi$VdaB2URl2SZEG)=meujAOSwR6{FCAsGkg! zeoyiVM@EAnz=r|^k1)tZ%E$L-fN+b>ZDTBB;syV5Q+Rcvks4FvH)7LtWmCo4$rS`Zt~2fN*feeWBn)px z$YJK1XH+ks9Yj-9Hv%^EiooMCGs!Bpr+{sx0Z_;#T0pK zQTh1NM1l;1%SunZuro=OuAT`uGf8(Xz&Cj-oFRx3%F=r&ZN!KbyarH2WceO-j8Fb|=x8s7W0HvP92-5}u z`hmjbB7th6ve-|0;MBJQL=qU7g3t<~v@?We@@j;RQyTQBKS-vWoTLg?pz1O62q&X_ zrr;5I4)#cG!_s+&3G*eqx8V-)n95CMi%n=c8!2YnymEVj7fgyoq!)o{K8V7>zUWa6 zKxR`xLfz#nWy+3cvkxLZCA|Gyyt9#VP-Oj^HK;+4Xw(N|L?|aB)hFGy)N}ts#ckF7 z<@(7D<~RWZ!Zg%3R>bt#=zB)&@TH!2=ZJ*l0gueij&VwtTpFLcw%WkAoOrMgMQ&W_ zZ@2Uc=$6r@yszP6ZzeE^&nfr5D}Y~95Wgb9dWp4s?ip6Z3`Ez3*tgwH3ncqTNfWg) zAH0_$1nTvJOp4%z2n}?>5JgY9cZd)mr+jwVg>ZOO=iel|pTOSwE;^v!ZTTGo$AN?* zD1G*hJlz+LIOO18G6`ippnk!od?>nq03SIR>i}1>4*3G+_d5>R9S#VMj_z?B$>1G{ z;~hgrj{Z~~2!7sA!yK7Q5upsD=thpe+{&$a-$Oo6)`i$)sVRlr@uz!>0TVr<|FIgq z@{Mi6{Jk;rODuj*(0Y>m?*zwsnxS}_Wp|o$Yi%w*%^x}~e0y5_@3fTltX%P|((X(c z&$Q9~47$AWuOlh?)`LBA<{psLrbyd#hia(iEXE0k`kaDRzC|Fs4BG$j{BNJ1L)t(T z?Qk*W<_S1%AaLlOdJB^dR)_aZyD#hG5`doA``1{W1RU)9u zXl&soH`|K%s?6(>|8uK&S~l-X7PgC9jseK>lBFE_oL}t8=XZHz4Sw%yOWp{BkxhHt ztwpTL*D69Q5Avk1eMO%5_Js*Ie9@Q?xxBXB=@S+p>$aiMn!h4w$HyhROv-xF{YT$wA zTn-^|35fg$>cE#`Haf@a~M8f>~HFN9VkDx5ljRCzrz^zC$hk z=U?={-v8FEd5V47(BM!>F~a9tL$F+3N>T0qwz`Ods%fN3h_q_1+1vkF4R?MG_ek~M zo8%7qkwe)wsS2IspM=fu)&4xvjjYcl>+Gtnw3x?!r zupNwoGMRm}XmfdC<^iLrWN7zkth43Mc3AB6Rrc&C23Knj;^)+@{Z4Zi4?-2R{lkxY{$09#ib&NmwC6#95D z`Rk{?=w8+CxF3BDnF+?Ej8IV`&g>?E$CNKT2ToLu$b#k2|CWBvBLO{nW;~>ZMWQen zc~0tptmOvjqbc6HB?a$^5vHzS{oTEwwahCf3F73}2BV9m-@^!ekkF|Zt^{T)A$MhB zzRDJrasW>)x`WdDglK&YXJl}&(cxz_r~_K~oHQ(qdi9^OJdK+L z5o*gSl8G^n`qH~`_ayo0;1v4ksCzYfYp7cTcEgXaS7lu9V@@FGo39eD+K0qz1BBJt z@B@`Kk^;RA(X2dI)iNUmo)3Yuh6@f=hA-46XwIOdWzGTNEDrsiakx>N&S3i3eLve8 zeVgE;&dqw?->Dq7F1o9w`VoWhUJYWJLlboByijVv9)OZ*=EXFyS;;FmH!-S;jc+y%9oTJzG?RKiquHkf{6+;b3OL6&;6;XgVq7fTGhX8LrNJzZPXqfo z+VBA+Fx-CCu_LJPsW6VfBd~SGm<|v_YbyR+f%Pi5yqSAi1F!U(U0}y+%;1v36RHpl z2fExaGSDHW{ci$1zsjg%!Kc$Crz~~62S1wcE!z$EiFbQtH8R z3bY6!m~~;&jv`<3{J0+0j8+Ku;C=|C2~OP8;<T4xlJUvN&6$q*l_?0_WJ8Vx&wV6A}@y3EhSmZG9C8 zMf4A1tsekF$7)45j((XfrVD4jhX+)2V1@qf(VE~Rvnlo~9~g7Jl3f3i^HAVO``_jB zdQvLxj5r>3ZtZj%^oqo^x31_;+gwV-%}SnAEfaTVufFfo)q-7!+x>7!A|wQ>_D*m1 z^HQ(D)2`K`i#Rv=&R%$El=`FVaW}>5-Um_NR!gc8#&Q?m9>mbDl@h7DtL%gdy9lh6 zQN+8e@yHrs&DP54Cfqe7`;1bbu2rx>J+#zijWcrAD*4nsbWHnU&uHZS92;)YC9t)})+vy+%{r(>S|t4KFXFw*PGBVU?_D-SGsqrL2)s z^Xuuxa$fo8^_~_JvS!_oz{(lw_x96$W?fxDg04aJo+^-yo{jY;W2iF!Rld1giW^sj zJe0#=Y||W{otnTF=AapBkpP&r+>miJJYp-~9JGpW&D{C0&s=UX#`!G(fPFN9eaM`Z zJ>-hEIMUW2v8=;GQ3l8Rc&Gn*or#<%q#{VX%5aQJVBiiWQC2k(<9ZVxGTBAi%HT8j z_yP7XfNNwv(U)x0I+mY~I~MgpqfpblBVDa)7kby2g%@!)I?R4tK7;&InO%n(4fq{y z*UG$7HExp1@zqxA-3kfnnzLr$J=Drr&_#jF2T{8BSHW`=C z+-Ke}G=s{{<!(kzo;)r$Vfhvm4Pnk?k{Kda|+e%oh*|W1zKP#vus6U1lYNzwK}|eoBK{8XR$+u&D)gt>b|u0Sw)^H?)uxSJp+|PW^z)`F z1s{x=NImFYO`l^+J!_un?U=YRHd0Cx*rnT%!nc&nav|87)96QWZ7 z`|p75!j%CJSHvfW6Z{$5{KNBvHuF1eFo=*T3cw#D5m!T*di*S7E?4@u&J5i7s6(Qx z7+8LAm9oD;%n*Q&CUqVV@>jd++2PcbR*IYDi;Z)6P<+J$yn) zU+FO9K8pvu@2_H6CVF`ss~ov(!X~7&EvMDCn0Fqm^ylKah{P{(a@%UxKjf##f7i{= z61HOKKrtnt1zNxL5zn4%jtjrP!BmFbX zQ7L8VpGi$haurU9zKm}j!!np)Un1jJzK$fc5CvOcfGtee7Di}p6b-5*ToS2SV0=X} zyWyCy+=QD{fJsGD~xq6RtbWVi@>;Bz>LK{LD^+XmAvBQC$YC7M#Ei8}GvPTm#@|=Q z-d8s7AjDayW2WN`&wxkv7VBxl`j7s*2Q%l!dP!h_X@xqJI+}etQ)@cKV!EJ)NL&wlqY;RC z;*NP#s*)4|OLoQtLx6jQ@Kgy{SjSZ6n;Q8!v-CasM+AIS9m#HfSW>ZB~-c(ca6^_=qMS_smAh;WV&m}JHt#O zX5uk~&dB-u9Sm(26Tl&QGeRG2p<){YbrOa7f_lyV`dj1r3G{k5ICgXjGET#Jh}>T> zTuTqbuk%N4;m`zr#~V{2fw8X~P3Re)8#hSEcvUx`TMy$IkeH9hDNzSvoKCR2Z(vvQ zii0PFhc>Vmqzeh9(}kD^2{j`h4wbQg65=msTO}|*=N5qYnsW(^%eZD;hc50ub8Q@q z5Q_RtonmUTSdV;w&0Q*}F~rm?pic<@G^np^EjH)sVV2bJB#k1)=LRmvZN(NzSW^BY zNctCuc@;?Ib~2dfj47E;Ag_c`C@ixDsftS3uepmXKUH6MsFyi2nx#0E#;`M6zXsZ&938!;`5k1tXmss_@q83AT#}?PbxTd8b-e_qOTgpd) zkJ7b(X*jgi<#Gb3B!RihcytSxN49DW;DZv#Ha9YWWr+IXb|@wVr>B+QVUK<0DQww zMA>Zki`2O`V%;Z*({l-~`eX)MF!XX10k^Y&oSP}4qN1(v^!t^e_XzCe$eyHZK2xs? z4Z^q@p&pjPo{<&niIB;~N}+#ETjv)&*@|s=sMYnyf6{ z8V`DNJH0oZ{br`>&1~nJR}*jM*5Aw@y;-<^vk2W;qS;yI*;$d?SykVO`lSi|xxN;( zV{|pSnZ2`JWgD8v@%;K2V6l*W z*U}hkk5u`iuEHM#`y#n}V~gW}P9%W4Xi)tV6zDH})T%{@>)H9;gC#e#1FH94FPUPH zkDA>zn1gsPb}(C2n4MVt%f>xQ4cbrZQ#9;AR0nn)`ZfhN*LG=7Rqe1~sGXy>_k$+s z`vlx5*S;J>RF%8W$m`f|Z&;_cR~X{pCj5@~8{fBh7=AqLT4ds3AZ+kZcQr(-G4M8U zm^5#L;f=S$!t~MZD>t7cU@VIBYiej3{=L?gc{EJVe(x4iyK4n=1hfcmuHPy0CY^In zKo=4(8XRM{Z0+`)l+2v#agGEoFvvtAbO+{L)2ixA;*~oe?{1H+(f-r_R-N!@l$mU| z2u^SN0Qm8;?mqKF@*^{JCDGF(3yqvbXJfQ~-5M&9Bj?Dr7{@)YX-DW9hrepid+aE6 z?4)t*Y@|5DBfcJ&NALjb@qYSFCEFT(BAZ~iR`0&{ z+K`suK6e$$#DBvsdT`Bj*(7$)B)kgyppooKCptCuy&3J6kDWO~Ki0I7Z1k_2`lNN? zl67qEdVG!PP2u#qO%)vU?^}e6On)&oHgI3DJt=T^PjDwg$&#Rf*Qs`I(+B}i_4WE( zvjlbmFMYW8wM9cIukZCniiKm=Kb!0!l4hiNP&V!<&AsA(k4l<0(Xi7h02R?_5m$|? zlJZRJD#~QHi1qPkXu*UPgXqToT35T0>g`&0o1_Vg6x;2!o(^_=udBcAnFG2^PUYY+wsGe>r31Hg!UzkcW~dZWu{aWDefcHXF8Fag}5{CCn+^S$+eL@ z3H?@+cXk>jam|uzgT>+p+VJ)u(he6)?&`<+CQl2RqyRIpPyf8d&d1S*dno1nHPmJ# z{_G}2^i9^_`L3BugS*Wh@27WCpAIxW9h!YQa{YAt^wWFvr<0sdr`4a%x;}lF{Pc0- z(`xvEw1+KM%(BQN_AOWWp7pEqrx(z6ttyf#jPR)p!TVsrQ9b+|dXp*-td= zYyX9G$6?!v?K*6_&lk4;S0%P*?~m@$KF`}P<4Ol2Z`~nyhfoyT!hF2wWug77TO3gr z#|1kCH5G`FG8_UImrHukgH}c)Z(yTmNXEYx%}?H@uq)p&NEyphrVoTse%hTchqIZ( z8%N$g4ur8%ko@^-l<)(}5DBAf9*v(KA*)gc=$AQ*K9A|XdyUcHaUMlM9t8wq953NF z93}9Z>o4){Ds{OkSpP+yM=;?-MGWc+XEN(M{G`eob~g?qcoRPpXJ9|~*!GpZU=)mB z%1PmHEE9BYu6cys^TVFR$L~E-8h(Uc+O6#Q`acw%XH*ki7lkJw2}x)ZdMAb6K{|*@ z2u+Igs?s~sJE#x>hTf4bRZtKC5kWv9Mkyi!Vtp-uh%^yU5gUAbf9Bt;HFsvMd(WJ+ z_kJ?QV@_T|YJ6t@S-P7^e{}z_>#htRYJWG<$fMn9QwCF6I77ANzvTv8er?UPY zS%v9d9Sc8b^aY8qht~@q=Iyg7UY^omW_u11)7vba$8K{3(Al@LIWCw8JlM&oH_5g+ zYBr2zg5NU0#g`hg<)M#&&dtpDm3GGFr^E@#5bz&3v^+ z3N@?Q|6!(0kJa8^ct3d)`Mtq6>M*nZEAPMTab|pt>f;oyn<8iFqG4>}*4b=(8P=Id ziM=Q7NN?KDYy)ZZn$>>B>e2VPmvm`=wlFbQ;5MPpsKdoO`154<{$j1Q@jUSO0Spz5 z&8c#>28glMTq=}!q}&ChQ8*HQ?`ZF^cxJZm;X&8oXWP#|Yc?i*=@K%x`73up{H4^W zY+_P&VdT{UCDp#)8G=4`RQfS#t4l5)=VN@v3d1|&+3su8bvr-mPk%g)_}SHVs?p^> z<_x`O4E+%X*j^%H#z zgMRydie$)gjR*4o7UQ!Xhnf3->rS97!|12Aks(;GGhxUN0my}TWKjST&w8?}ey&9D zcaQV=^!kME)bp2QXJ6e>$cksn7iV)aJe3|8K^MH3!FzE-6S*zHCL@p&-*5R(fBkfb*HkLs{3#f;#ZsVAAZW+6dz#aUfTw(2~ z&D9;kcp=`jSTSfYT29x&Gt^i6uYMlXJMbM2eVOuaIR$P@fscCPv4 zW%YCG-{p?TPOWw~f`7=r=y1Ce^=18s!mBRtv0|l=J;gV@!7qExZR{z%?T`9AcO&Gd z^82BrpSxc+eyS{tP+1RoltcGbmzdcC$HF%E)t1MLW$Zgcf2prbRcS|WZT>p8I@4%c zqI~YR#(QC(YxPH7LCwuq2z{ie=K4ZbW*_9tTNZ$}xxl!@qat3c6`tM>s z;)w`Rt6ZEp6tzhDB~`)D3@XF|vRxk%1aB|Y*vip4!r%VV%dUF`o-deQod-LA6(8>DfQWd_kmHHRC?%1cQz zn&3-T>U%A%xsqb^YVXUriKt$`R<4$3MeU1v4xN2p?*37>qLZ69DeH{pPATZ|Y#Tvn z16pMS!uGdlh-phK0Eh0^!|cTImT6e=YdejP^5dK8!f<*IMT%+y30?h z9Zt%%Z#tD|xV{LkNGGbFa-8nebC=QZZc6^1pQS?T}N zn76e!uKC>2{k-N2*N|b&mnTnr%XRdKKd$uvV(>#EU>WIPVRBdXIhRWj@*~IV*#FMW z>Y+!AZB^s{{EJUZ_LD*s*2r?0unTM>R zjorZ2mg;=lwYE#jg=_6RrF!|DEDJh7)6*5bO@PQrYynK>?|w$THY_qgLy!e+5h4zp zz+c5>c3@I~rUktGYdTE&y6j_+`V|09eOe6Qv(jRNM?5te9kZBG?d2`CBn9)prVfp^ zczp9n_w?rv{&2oNEc}Zg->3HD3B4k8mEA|+-?e<~JwY=ANxKpF%2&dD*>SkQZcexc zGm$&(JrTsQS7T_2Pz-|9Cv%T4yG4p@>tTE_2EO6=h<&It0g=KRrCDy{^I1fox|c!3 z))xM_r5OiDlu_#mgmqo9k6IniOy$Nk&U`Yi8NgiBp=5BX z`H*Jl7)@m+?azpmUZlD~Mt?VK!t zf<(zu4$Qg7;3`?@Yb%Fc1H6jzv}z8aCX+x{MoiRqX@=yusWUP45_k)LkCzS#soxFK zqg1C?(@CsRMDrC`iSSOd(e)!G5gOKt#C)a@%|JzAYitSIgs#?lVPZ`0HEg$!)*GQI z+NzplLi4yDe2L9gmclz_V+I*mv`PEUQ-)eJIV2_M4W_qgcK94`=j8Byk+)w;<^iq{?@31Snyp+-Dk{xBB5#I{JKO#)8atreWPvRGgHg@F2tHs= z(A+mMp1T1r*@aYNHA7Svh5$hM(d@#6^N%ex&<7V`X=V=boJ#AB7S6gcah#`^9X+~~ z#vOT$l#44`ILj26=2MQ$)5lZ^GkaJdoS$PR+0rOB*t;>EF$C&cs;mG-!qUvnDg?}q zo55XoMDBYkcw~vj=CgD+5og8<>IwZfIdd~+uUC6ZJu=4_95*{cWAk}{Bff3x4;kH|i z@*%E;KgDUo-~M$Q1-HArb7RI2@@*59<4fKRs0=BSWXTomfQ+;6L+Ng15(UBxmY?sm z#3=zYka<-?vq;++WQYj&M=_RxCnA_0;v2as=1Lq+TwjsA%??O?q)oD3GfuR(1hb$c z!usC@OL>+8KHBo&QeT9c=vjapXI-#*wLMM(-hRR2Re0-MWCe%!n`3N}*KmtFr0vBO zN0H`xGsP2hOrxh_fbSr0Wvq*yXGo@le7nT!SYsWt;&|re8RZ?d_7aZrlV_R24e*>> zH$PeV*^A(Q*JfUXEMy*D1p?}xOOLnSSK2D=pkZ(Mv2~3WZ$;kHx2I&Wl@6aNOSm)m ze(#?4y>B zm~3grk2K;a7Cl}D8B&h-PCMf)yf#}vmE^I_NXDKO9B=AS{W%(NeG5pKdnKdZBLC@{ zw<_xHBueF1+t zG5gHW(({Dt(y_U==S|B$z^v)b5S0|EbJ=HF#?0CfWcj+(3;WZD#Wx~8$>n_ymMM}L ze*=f!`W$`5WUT6?NgW&r_%e(Q6duPTif?Y+k}!J9O}{hZr$V(E#w}-$4`@ZDT5~{v za}spv-YYowjVE z)FbliS-fH6F2-X;^=N-9bZ0%=NvoovdiH57$BTN7_gK!Add@8@*Iqr>0Tx6wfSfoC ze*;GRaB(4vgIn3_G}dLg7kg^_KXcDh?l!pf3L5VV+ILl2*SUh|42tJLTR{Ur?C_wbD0RkKjH=y8wuWsD@Bx*-bFK=T9O%_)M38`jL7#i zc0T0X>a{kJbd&ECA?uvk5@kX3a4MkfjM^H<_Nx@|!iY|91vE|R)e>o;abtCfjBKi% zm{v{tPt63Tnq;l11@lmX88R;uX;pioG`=JOt&AqJ?9w+$*xvVarSnVPg$2J>51oyC zaVKE~OlCRWJr$#WSwUn|}tUPU=FqncHYW}aWDkl3g%JT_pwsQ#M(yj|pug`J3k zS#32){o*ls)l4*~CSoO(l9-7 z+KH}WVkicP@gmK$*vr9mhb7ONl@Z@Mk;ltP3ojixD5*GRQ7lbD$Sz)qCf8kIyu~Sl zp-B`L`(ymQifO8Lz6~fCg3S2}=|=f3^^fADR%q0sRN_87AybEx&>*f?^!&w_880z^|w`q98&Kya{iv-wPLWyDT zKAFY%9#b=xs=^y7N=bi_(u#F$kzFBD%8hJYW6nC85nD-SGJs1fMR3W4{@K)J-lzf$ zIw}?FXSB*$T)1J$bv`mll&T+BPZNDeT`eZt&R;?$^P3BfaDC(L2?eAc*4o!%sTsYCI|Mw_+PvC-A^C(40PL7n~8Q<^4?*<|+=$;$)uVhVjh`0yR<> zpeB}?yp;J$3brCzoOv?K*+|v>?0GoxuC#+ROwsaC7FhPRWl##$nFS{)EmE|?p0f7| zl;g}+X?5B)4yH;I38uJ?I@CrnwVb3VZv(PTnAuUYBn^3T%v$Aj zc%76}q#-4rpLSsmrX)=XJRfXU>ipROwkYU8v!h%)kRx}jlX~STGd>-~&pYsxYsD|g zsmql5>qeXMCu?L$p6h1)&BWe7QiUAZ(w)@BFX%7tHX=nH5hC}0B8j$=zQ54PEwwa| z@^O{vGU2vcEl%8PCQ7~$&fXxSnRv*d{BoNDX%&~s$sE{PBaSN!USLK%;Y<`~-s6M~ z7r!IDdZpjRjcjQ)mhCV~StIwi5o?|qB{cPxXSB~2U7Tnl?+1{4MN&EJ(*`i`M=*Iq z=A~cP$wPubgdiP9c`VKBhhic|$ccW-4p>%!?j-IweOR5weA|> z%nLcC`rv*(?8-Wm3_lJE>3GGvUWaV4fDUr$Y?WO{sN748-$JwzCT9+ zKbdR?t@af+onbb?*M|&wH{42$Q2L`Bl}%5r8#yA`hE-y2(GzWP-K zK+>(lQPv<)z{K+A(aKj>2_(gmAL_K9!QteHuU{)*zk`_{`C$*y8OKKQRH0^uf#+T+ z-%M(jKC^mrYm&C^20J|XYV7OPTlPpuPvPKt#z_F^!!Y~QjPL9i!;FHgbZ-u!RE_)d zVxC+JX~u3#N4N!coKHj{(kZBmOw<+TZ#%?3HNtJEx<>ZFa21XHBZZ@cM&e|-Aq*QH z=;At51zEd6u0u79KsQE0ja#OhTSbjWyPM~P8n00>|EzFQwtGf0m% z1!7M*Fn-kDqL^x)I*fXn0hf3y>dd0fYBxnmU2tjDbb582TvP9MU-R_X?bA;+&%C^S z=7Z+h&$rKh)%5sz+v8BvleN#2OUp~3&r6~^qAufaX_)EuO-g73x%Z}H%A!{Y_J;8x zd?$)2>eR~INQktXs7%i$r3|Jt6BCSX9Po@Ml#eItDG|R=mpX1qX zJEe|?eW3+wZ0(VH<66`y+WaAV*zIt$c^zn~E}j`mxD)b+Q-7}S-AEI;rXckN3~_3? zQ4dUiKW|ak9Am0%!3}$Gc3r;qrwOh-*518!ofiD3FHo=WniDKi0_JE)5e<_vicli$ z|Jxt{lg{~vrndb=vtLANkAl(ZEG~cm3 z)Bc|oT$D-yS`-(oH~aTfvwo7x28ozJ3f#DWriCYln8(DEas}G$nLRv|Z^DWUH0|;! zW^dC=BkWD4bw}sdsfX`h66vbsh)vo99iVG1l}`|88!+`eEKVo6m>`s%plKwnKW-ef z!T&Zh1DK24%JV(=7wfM`Z)Mj04iaC58%5lB$;o6jo$Whhe_i~CBIx=CO*>Z&lg$J)j?DK$-{bZ|N3q& z-iRKaR*YcbV)AKc1PYk3DI2`HG)!W~-;^Oc=_?D)Hv!|y&EfB$*-{nz6kehz;) zJifqsZ-L8jQQ(5d#~tU=;lop9Q!@)?mJwyHL$-B8{SUPT;4LfBXxXOT?@#NG8DWhrqd&f8YO36F zioeehcdIhx*hYKS%14S->oK6?)>_kjwB5yjr7{<|Q(=R~-h5{VXo4cs(lBE%6`a1OP{x zS~ta90_rytgYWhly`)(r?Rd8|$iDSdgGrfQ*%b*gfBiS)4v>cW-uNSn$c#2ZOQf`LDw1c#v*iMl=#EJib$Wa0-R~NL1onG zVOGeY*qZkOIIZ!SLNTz3^n2E7+v+r26&v!>Ohw==A!1zizdJa8L=a-cId{#>P~9wW zAuz4QL&o`DO=9%trw#gfUu@&YZSC_|h~l-$@n1iTUJ_7AOd4DNINR!czwUhU&((1G z?Zxy-6N_&jKEJ$w<>JM|!*={*f+L_fGs1$gv>Am9h0ct!;&N>mD7lUq2AkTH%>xeI z&6x*WBz9XS#$0ih$zyA2`;gByboQZuSMH(hBcY&<*+(LgQ?_GbiJP-y5^3yq|L4Yqly54WZ(*B92h`m2S z?F00x^sxYWRzSlw_|lW(zc%fgJ>S#VtP6>tY;MkK>4dexztDMGzJ|0QQ2_0So=Mjm zcX(#WD$EPGD?-cgwlZ_QSoeg6ar=Vh2Bbs+@}xt3{B9bOc9QMxbF7<`TMXVc`r+*> z@#0D^UZI;N{2PI-0W)H=@{>Tvv=rA?YzR9e78@FUgI=CSjJVYpu-NoGhupP39XX#}j{H5u@pJU3(b$J;4gn}*M&W>2YaHOD{FkI0=7Y52YB`a*%HXX0N@ zE4Rf1PS}OUUVUMAY^n5q#g$EuuJQRbuAsb!t!*i(h%|dh5kDr(1_qtj z7Y2HrF(ZDo^B7VM(fbbO`?Z@`o>DXTM*%X%F2fI6S^CeAI+VSwA`O(9!8jPXX>F>R z#}tvJirN^#xaC*`1ZN>=T=<5Md7k?k9|at1!6+AHS;{SbMKn(1%?z7bf)4_@2`vNdB@7T+Nw8Z_x&NIVEE{koYNQ%zr|@5`t-tJP;wX z%e|4e@VU=;wxY%+b)K%mFanv}oj4D=8eQ*ADMJ_Bfsw5=z8Mk}Vx3 zQp*YdQ5@DEh2^7slEZm-dT`Suod1jwlUxevsFIpbqS7SsmxDZRYL@_69OXR<@SkQ@ zqT1=2Xct{z;h8jd;=(=3oJD$!PxZ3Vq_%m_SX*UD14k_q=d*iiyg3`s`(=E!E(jFO zm#jhj@^Py1lHx}<+x?<9sfbnCm35ZNachoaT!rl`q1d8lfs(*mRe^? za4vbO9&5vX-8d=9q2)R+?Az&e`vzghYu07g9dEBYc2_yx2rFwp^JCq4RM@FIzpTSg zbHjDE%IS7z*^P6t8}5t3&I8l8mDw6L&g{71dS0zyW!mWH`sa#XOKRTC(CmnsBosO# zn~^|2lc-))ouA;1tAM(aOD#+@n)BMT1A85vDe|LIMKzS1sa|Tq(ZGRnBQ)a!v)5Z>2Pl};LD0P zD%#Hapy&A{f_4N)R0SN=GH?z!S#^jSz)*#M5l1{c9@d^6Z+GSjAVnZN9M6M8X%?QN zV^;S?WBm*H6{;TKeCpO?OxroD^qG~P#1r!ay`zL9A8q2%Y6TxrP zxO}Jiez5}v1fI_)C0Tzfs@6b`zj)Hur*&sh!QYG_^5Ha02Y0OiY6+xbU@x#y6?p-2 zB7s)vjt{-HCSpsMUVq_j=B|AI{o25rpgKhaS6YOe1X<*y!&A4z_MOU8>Bpk3T$!nQ zIeb7j)SUD7;HrN0P;0Nds5aD3rTX=gxV>8qV&{TRRlj-Ow|Bd{_T0Jf>i^#D?cEs_ z3yUnMej78qY#-qs7JIY$-IutZgNqyl`G?i-rK066q>Wz{_9tSmx=FQK``KDr2?8QF zevW39cKAv4;71Iz9&i*7L_{(#BJb>9&K2gNn@UCt{7ksKE(6M&EN3Bfn-36BbGqa= z{M%il$8dE!%?mXvO2vV%IHR_xrAi-xF8pJwV)nckQ36>8c|WA?JBQE!7AG))Kk@v= zh3MrNp+zUwliG#X6>2vWC-;w1_Y4Y7bFT?jCQ|6{V{eZIUifjiF)(RGjVh#*GX>4{ zNy2SkZ+{gt`fA|yRK;#DUG%7V)1SEU}p+X>RW8QY?wM|AI(#ZL>u;m)73-mq}05s&9(iZS(NAqCh4G zKh*6DCm8^9=7q6t6ylDCnZeg5+z%w~?LYrI^Vy^EXKw#l1!w`%4|u&mcxHLS1$hhdgbun&%;BADgciFP+b7WHh@uu9MMIE zx*%oKo%oNBE67ka^1o&()Pez3fwG{yIgi#im(J2e9y=5TjrP#2J8TyZB~ad zugE4JoGaJ4J>G_Avsgk%QQ6qMW$cKsrltFJP?MWzT5M1@{C#xeG#>w=d5N=z z!Fjt&e!GiJ*PDyW8~N-3*904oX~Xd{!py;HT#I}g(Rf=A-{-wSa3Vq?rU;=Mee%Y4 z64>z4-Q2h(ZZ@deOvISeD6>b3C%*j-ntaDPO-Hhk=L8q*ttWp_BtHSliz4$XK>5?* zu>2*b-hyU%KVF4KjyVp&`v@WJFdQ`P!(l{@ARAObw}=~;4O5^B{kp+|_5&fQIvuIl zISwv%HG<15UpoABYPSH%QwUNobgF2ab5@Pp_5r!EzY{u9oP#~s#8$Nvb|bNSkxUqM z0^toulQ|Jv*x%jwS8P%TwpeJ7EYc3ku0ABY^hmN8D{qI-O~o=o@u~HA@m;KX50=AQ zlBF0QGsD5g4YKDFx*lWu+6V8o z6Jl)Y!$QF)Y{Qb?!*3pAtD=S`H-?mP!%-MOj~k$}quI%DIjTIIF$|=N3U($oy>3cm>c2JTkxpjmnKZ0CA6@#UhL~cg z=87MZ8Xt5lJ)&5WQ4C(qCCW2z9r%)g%ZPXoL7Izf%t}VX$gB{o28C+MN;Nh%(s{-s zRrkyovS9F?M~YY|nbB*Af||90fN~7J+yM`T0C=mp>&Niw?9wt&QwY)Y{CCOg^D=o3 z$Ms|6eeKcOjStT%KJsT5K4GbZ#E->o9?P2(hC`8qyC(=o(L-t6l@6)|JWdCXbKxHQ z&I|1Ks_>+nt>_!9q*#1S8R2Ryp)l4d#M{05n4Ke^a{ZKrF|TA>ha%kuA2V;~inqPucp5@v z_QYVx&+toF!a^B#QiH4MId+ea@P^Mp?T1H8DR`#Q!`4yX5PH_R_@oz=50CfoB6~g1 zv>$t}G}NKuq^OGUkrQUaPb)rwQ5CrwpXlIyb9NH=z+nKZ+Wt&CtnrI(w{K zX_=icqk-R2eCoSI*1wHabi)3g!mgI!r?l`d`mlQ#?Pq=XL&e8j(QG;&%JGk4hW>Uq zT`a@y^%2(jgHU9)z1#3Nr|>gJGnzD=Sgo)h-B^S+zA*x;(SQ~H8F{=hO1%R+&5qxS z<4Y^S^1dW!2}H5n3Hi@^Ch)-w=MyYL3(u=W5ay7Kv%`xk%}Fca6*&M^D?-#|`~~d< z_dYBVC)1-zFq`42icXMWXs|LwSsN1|M5A!_Bz^CAsl2(UxLEj-pLw31)lU~V!(;^DzPSZ+%jsW>cgpKvw-TlE6Z9-sESl%X}R?6%KyMhWkk z*Q~dc#o?Xp_k^&&OF%-9hp8Vr5(r&7f{)`R-STp|miR(Lw9OfPXFCax_OXmt*!cwf z+x?0;?gWFz9LPeB>r#GMg<5Ey;U>!o5X@r{BJ#)MX*ZN(7V<7H7449VWx(P;>BY6s zBA&z&HcE-^uaY0>-lW7*^MO*UU!}IXWsZqut^;LfewBIYmir}^2Mv^4ED2pbWfbwc z{GHL~D*U@rXoVc~Qk|(hO-PdNN;u5dJy9+MtSjeuco!umw#Ug@iu!Db`?R_-N^sEX z*2I?Uzmyq5gy4n>_hy#K0sfw?>VLGq<&4_stMUtpl8=Od6OW3M;T zsMYd;^KQLQES{Ju(DA7fb#!l1llFANzA3Rnxj})^kTWG6DvU?}7F4VxsQ&&?Cv{a< z4(=O&>k}H{F-WM_ z5e=K@eyjT~!6g|BK5BuJJ0J^oBX=c1eLQb6KG+?5TI3chz85#BRHMAh*|>vTTK3Px z#}(jDbFN6fX&gh`kZQb(slr0Bg9JT%`6baXMvXmnuw-m-RDbB2J67>E7nS6(^j{8) z+ABw{{^N#Ss>ZGiV)y>wQxQOlNwO~|e#ZTp5`N@U^Hz46Xp|6O^4Shs@3HzH;lTaA zis%D1@+iEq?yzJ~I?Os$lKT02+fRqaI~!F5o0<wD@y0QdjJ#p1 z=lIYx0Y9BLL|9iI`8PNb-Llk-n}jSp30itOJ2Y9nw1LKNDpG4TsGEl5K@SxvgLl)d zOPkP>KRGK@XKz-S2u*Dul`El(kMoy>gJfy{c)-7Gyl~tRYI;-xxd413E^Sy zUpzmLRnF)Td6(NvUZ@s(-_97|SlZ{L4zMkKmOX{-8<$d5x!)iJ*qx~?8hYUPPJV8D ziXh*-A+m6P7;AZ)Fuj$F5Bzkhaph1Lm=nV{8b2D)#rwbC#4}dp4&)7=79z;s@zn2i z|9!XP{NWJ(!={=buXp=Ib#}nlSu6Y=C9Blt08e$3oL)VLq?YJi>op462vK>VwzNKc z9Dhi=%768^5IsLE)vI;)Y+#hv*E6T_Lv>$#$cyLeek_rcEC zr`22dpOz_vLi1f1wEhf!|E#!tuc^nqj0q3&BVEQ9ea5%$3rif(+n2b;UQ)NY8X2rq zAv1~Zau?G zipSFUudK)M_dW-B5Hc@ZDfPf#zu$TD#AdXFd>7a9sipO@H%%PSzZ#5xT;v1orMy}R z>!E@JO~%2Ua7mz%MFoJd2^-KsuS?WrZoL#__reGrQvm5o=)yg`#3p9_Hc+*KegP->+#m_YxT~?1>{eEq} z*|wFRH%PPn#f{U0N&nDV9k04ieZ|yhJ*ltmlGYDCXQ3ti_D1x_H?c0-3NHpz{`~&O zrqi`BO5=K89ckmV_%K&Qe{1k(_wq!kg8RMP0cm7lrGD}O`|o;nzXpqH!#us)>(4vf z2QP5w_ieuJ4LLG_=-=6THG!``BiSIu-hs%gibn@GN#h z90Cil3uxtW&-8gEUM#sCbbtYuc}ug5q^6e5Nfn{7o>bnQMb9khI=XiVD9!6Z_6!WP zmpz?P;hm@Tp8hdF;Z3iXrSy>5Osd9fvTqTELGj@PTp$=^m=KJdroL?ESLSpUHJ`8f z!-Yox3k8pSOAyj51m@*6gLdhh@UIRNZ}y|yBr;npy`~aDp_-XqHsE(}3>NSn-(k5J z$WQU6_zROjb{J{Lzq!~t+q>r2bMunoXdSe#T^fHszoq|OV$ij#bxBuRK(QV0s*+qH z98iaPBKYj!ZY7m%TazI-m#=02U)~yVvR(VOr@~8@4WLc^A?Rp{dUi!aNx!5MVe5HraO>WNNFS^2$&d@6FR+)G~qC=H#Dut<$**t8O4sqY?B zzR!Nk<5hVs_(ZYjYgo?0h=>HCnMymj~Mbn@4GtOrxa?sJ_QGJ@pt`8iLp0J?J;N**?j z4^N#s9tDqzJ#SUy`1JhG2eCF5`}YFj_x3f;eLeqsJzi?q@r#NR-|vm5r}P4h^Nbd3 z6m{lFhwvXC4BUrcc;UqHg9tMB(6+Z2;F);1UXo*?h35ut zr8XxT;=ITmwjfw2E!{|`qX<++x@83JWAwOcU}T~1GE=GO8V*?U0-bFnrI0&t7F{}J zTJBMzQkK`Lv;9S0lFfo5kxM*0_!Bgw8lD16-9|6v9I{A9<{BG4BCTRDp`dRT!ki80 zi!9_aX%bdP!cYFC!JkROTZ0@^ctGt|~nS;VNAsO5W+#IEWHO<#zGwW&Y?%~Ni*r>;e5b7lTdylM##<*UkDX&i#tseI< z>tq1c5bOnkIUSUVX7;l)k>9HkvnG_8eJ~1&ErtL3r16N9+E78swXX5h&)c1+4wVv+ zx^k!X)G^p{=2hJ<>z$0k3Ti(Fz~`E&@~FRP;9tH1&qAob4>pNhX-;)iI?{szIhUh+ zWJe;F&HuWw-H`s+9PexH;o5UKAj0Uv`5z(5!tRCDNwGcQyKAP;^^QWpZr^}+f3T8vv+3G+ zR?(o?4}b3dG&jCSYfwq~y3z9h0F;8g*iNqPdWFok~AYS*rG3HC*# zMFNAjvnxX-cac3L;elwM6JW@`1g5(HlFHp#7H=1M+bgj6u$@b%*nPNfCOi^}i_Gz1 z_YvOMXK3-O<)0e*h&|OmhCAra%E$0(m%Jo?s}b^Ol`7~7Si3}%4OLTNBf8U&iet53a)Yk{ zA!ML!CIeaAKwDPAiQ(xL_lj>)+3(I+Uh5@wDzdxvopc=tx5k`LS7VeEor7t{l?wmek^v+Bv6j<-<p@T}sC-!3Q8hKo`0bM`3H-hY8zorh3a%5qUz5IOGc>X{jR| z6cxSML#`-4Xj{#vnJ^ABY^yLV;(-0YJm5N-Eq{BobZbIlJI481rTxti=$8|Jw)oCYn54h6)~mdThW% z{!HU6ua48omTPnaZ z!_s-@;y(dYkM_|BKsG}ixId7=D#)WX09xf(ow z(;Na8$-)(%eDtc$+JNfy01}J^A}%-)fwQWBPC5)3LEMmG{VAOyr3y4-V_`%VmQ)C` zh{eengpbJ2KmqsyfGlL0;%5!jPJ`KoCdwjMX5e!x31{mAUD`5GwtnW=aK+Wkh<^WS zEi~4~FKi*>vQoqdEn`0R@h6A>eMWjX*R!mpqY zwz-n^eB9gL4wCgEhrcje=TSCCkT$CkhCx<*Cj&gp)wh{y6kB5ym#cVlbnKx}2a95u1N0zn~l{ ztO{6kMFS&6;)y|6Iq2_JDAMzg<=n?SEuo~pfvnDPc~9oD=8@S?ivvZ9k!(UfoLS`r zSdoD`Pw_{k1-$Y=9QO*8H_`|U4}@l!0O_hgXlgExjo)ZssDLWKgG67ulN9QVituJZ zc2VtGp{65ooJXhlb_B)-d@2ZYc4o~mPXkf`U;(fq`X`wCr>tGR^pd4)0r=n_BsNo_ zFkS$U@QYIgZn_+`KFSj-0ym2x{*^vKay1Um1Gq>9J^m{D-h7S=U>pj#S{Yb5bNQlB zMUhzr&wj4sHuS%VT9pwPYg*-07O1TXLC+lZ(m^D>5*Aru84-(Gs02WuUfouIB5+gTeqHfd;M~0Y!qqLhgD+Ikf-H3ZF^{vieno3j*bia{O25u+&l|MgcX#kEjZ8V++|PLpk151KZWFO;UK#S7jY* zTueZcFvffzlzG6%w*>k}B`f-Xqja??Ihb^IBT(NM0%j@)gGp|%4`yH_0G#jy6}RC4 zSbuZ^!P8h$$Gy{$0Q*c+@{!99$yq3bLstK+w>1lj}Kq3A?CkcN0`+&A|J?evI`BcoD=QsEm^Y%wBJ| zKmp}~2>#WC!Tqvpll5VDTh9Cr?-Fk34+c*@)A$3)(Z*;BCUHAN^YF7^{{F6KZ9pMY z0RsR9)FS~bH7=kd{(9p*os0JMN1GH%ITeV_PG+%TO-c-+fmlZna^41p2ChKRM;O>D zdrxQ+fG}EU;^=D5+Vl6G!SJ|u7ZPFFAQdkYTo3^{#daI(e5eL=^(481kgg!sLck@x z^x{d-Iu+t&QQ-;p2}X49qPjaKTQEt!fPRgsi;8|xfH6ewb_F=t*K+9&T+IgLA+oUI zAYwTkX=Z@c0`yudV7#4EpbqpgdiZ=;3ItgAh!t82d7DTe+!Ga0U(8E~X7M9F%fR8? zcc`E5Ty_Kh79~+%Cc$m*6g>83^@cn!0WYbdrnFeo@7zuQspTfzeSnS&t1geQD9TGy z{ALo4zyQUmto$}EN|AmvB0_$fwQU~B5-|kMB5H}lXIL>83a`MrF1%|Snn(txHilmM z-$O(Wk8K1YcUb*qv`bBb59Nm*=qqOU+>t3d)M?EY-HQW*Re_ip9+6Z)qml;@9br-A zJ>Vbu`Cp+MKc@Jjpx*Y7TlYPexKRxVOciU*?ui&{;}Pl@HCi0;K#$6W5*$Y2WVQi0 z*}C#b#?9*t%@ll5AzC&9$?FOAD-=4`k*%f3Y++%t>oQG6^^8->&8C>OP0Z2POxs-D zQ;H3Cp%0yNAG&rtbf0>7X7iy3`y(&KM?UPBtYQ``CtmI;o+dW_{B1Dwv~YywBe&CG z_M=hSB=}Wg69zZtxp*HoJLXh0maNE|b`*xf&dXar?jy_-dJ;p^7!wn+xi7q5IVD4{biaeH!dc zAwA}KGV=E^FX;(<5z!Gh+0kFY8_9~QN{decH$uT~eD-M&ms%JBPkYRX3H$b#hnQL& zXMy}>3fkL%u=Ctjg~JH7N!146)>}>1#iuWQK@)5fI6IB#Ms3%CTpT?ALP60pA!`N= zgmYl{vso1BDQc(V_utt`cHY$Oi^^mWIgBalQisjX=tB^y=Vp*z88TjT@U%Jd>@#@x zGf68NvMl88Nie|daNdqh8jjOd-~et#G)+OdoeEh(g&zn6fN3@}$I_m|B8xPYcrF*B zkms*^D>bVwUO|jLKl=qd`8&!8oCjy|R_8z)4ou{i7bnCp(N^G+kl!tJDXr`C5E;qb z6tFM~jQ;Z+X8Xd)3QV^F74JMnMHXdhKf8h8&P)Nr&dYws*OhPpT2`3r$59)K6ODP` zBX$k=>}&YW>t}IbODLd#m03?pv&Kq@P>_O<-Ia~mlyP^1rt$p2tFOX#{B z*v`<)Jn+*KZk;etj}zd%_vZ6IkZ8y&aQ-82(WgE!p1}8##QHRcvnfhSm&3(gbIyKJ zuo|_up69~VC5C|~-xG|6-(wqASk?YxeZnm$tA3*Cy{;k8CFM)J5U9Hum~#NyS%deK z4i`}kYpk<#fgPWrpV!2K!GTB1sC+OjAKXm=DK=o!#>?2#ifgqXE1osVb754OH9Q^0 zteZsctPYezcQ-$BM%J)DNf-^=9OvX7s%u9rzLWw(99O{+<;_V~u=_nX^X!+=d)lwI zHvF{KNj>XrTAz`ls~6r&Ac_{gr-Z;8mZ8ZYT^#c#jHiGT^Ry1s`S?4lZWB0ZP&NZ;U?UH<>Ecb0!qyx|(3T^86Scj=Vw4ryfRZlqgU zL|RbLWvN}dq`SMM5v99DB&5L~A}XPhx`*>WoR??b&F3?(=9$kk&wbz5^}R%Vd*Y1V zyd7Xwo-5zI^FTqFNO2S)=-K$xV-?VEeHC~~Kar%s$_7fH z<1wLYt|*BB8E}i=in0!9W$-<0bXi?I(2W6HX3MQUe3{9k^19c*`r$vrV#Oc=F6*Vk zg&fsXVb?XPDn4=b*OQV!Ki0I~3Z(aX!t|R(p6x)A9si%lAM0EO{MGB0zuR>A zL67ua#-0q~M)D9MK1?lg`zdQ9$vlP+elh2^#b2nsw}0~D;?#4H5U_n`d<`sZW#tsT zGR3vECM#VN-2OyDUZ8#O@%y2XO2zhb!m~Siw?q?@XKwnp^^azX{jVb0<5t)P*8tdp1u5te$iXVdF5SzwsyQJ zfGn#feZqgPmxuJ-Gg2e}J~3NHqEEF@N#F|7zrUI>p)d0!Eqyi@{CYzBzMpf(UHdxh zoEv8(-#_s|Y=a?4O6*lyhKZ?&;zLv5%k9^Xxo3J)+z7kVtjL%o-(LS|4vm7xl}yg!(6S2$=ofa}Qz)$i053wpzv>D4uzxB=X+F zVG8vqV+bEy5AvlLc!z4f(Wxq*j&7yBkKxfrs^!<>{K+Mc<*vQv6`&%x}~MUg)mzUM?$PCUjH z_h)K*=Z`;#^Sq0WgB|6RSFRo99cGd{=GUsM^7i$n!4A9J`FFX6r~oy>GAcvHs`giC z8}9CQ8oRo^Ht0^g)@I_fP0*1YFCl~pGlVb^_S}hnNf^QkBdk3{6Ef0>(Q$k**7S42 zK*zx#d|qtvJ5capDi#C>4#>1AaMal=Se2>ON&L)TF+DJ{x6ys zSX<(a?a#~a=e>&!qYFb5Z~~5$QmKyNt^P=W(@6MJ-UNZ?;$ZDcISx%btW6-jqFid* zz%81=R&!TMT=}JN51xJoyY3CWv@^c{zAl;Jt{X% zx~t|L9aSKxtheGSA~DT%pcyf>A56Z0yl6RIST-3aSExd&Y}6zBam?L$2E`>-PS`Z8 zs!Fl|LmU7uFZlWq1pTmB-&ol&F)lTvI1w3sKPl7HpsG$9Dt}-KpQL+0z)Az@eKhS3 z_$nKDLs1Jx-^>_~xdD@qcH%RAZZ1n50(XB1;9JT~k4qRbJa$We8uNk2kCRl%4;@>y zZ_2$JMJem*Z;(@-&V3xHOQw22PPLwp7&_B0Eb*fKb#i?X^q6 zH*j$b=vRqs+=Kz8i(tz8Ib&_dx7nZmQ zX|)@uyhhJVHJINb&grjDJquvY9w15uO&v zv6=@wK!zfs7=RLYA*1k5P=u;<{r5H}v%4tzd%+NGUiI==5XnH!)eGob6kjO?2`eJj zwK=52YB6_>6JHGm0rXhY5hzN)Bn3tS5?!z8%Hmc9fXz5@r=sFZUe-+Fcu$q+qUuW? z>UW}m_%S^hUjLBrJzXDn73Z=O$RJ=TPDxf9y@22+~KU%LF$J5J5;(N!~zfTCRtq)(`~Y}g$D@Yo80v?tnnB- z9ahQfwLcu&;}}*uMt@hl8T?j6XR|sOTw^$?knXazznt{qey-2p_tG%=aVMvMUcbc@ zC`mC9Q9vV?Sg98Rv_oOp{|h)w=_S0S=Qu6wv`)Q%Yq9qT=U4`ou?VFy>LEd-hnyN3 zDPLoJc^V;GfdCThg#%-*Ar;FGZ&6WC&8u#?o`wo_d+vJY-u_uhtq3&?R7@v{%;S?E z!A?IZJt%j=KXf>i-5Xy#6G}VfolhcO{5|xeh^p^P2sSl`=vz=Ug!1yV-tdPDIATuU0@mH^H{3ibc=grZ7|2~0EZgbRFfOXCNUwh;> zfFsQtMbDQHw?!zgR3&a6^#(t}+^0ja8wr4mMU<=KDKWy(35=BQ-R2h2Nz_#**AHQ8 zi}po>sv($5ex*9%4hnQk3L0dDhZU`30VrrL!4u#5$&Y17&FEqPtYm-Pn=^&<6@Ih2 zH;cq7A57yXtm;9W^0L-Mb4OVAV=PNCtnd*LLR{?Iw}wJXl{^oXfAY~rCosW$?CCk| zH(jp)ClUWJOo&OyO@6RNOLd#SS6WY{{Blt67R!^5<+Y9DOHi#UQ=I_CF>DW38g=HJ z4DsWlhVrr-UYEk8CE0hKRl$)f7e?(Ql~~{3%w?) zkKN8zAHN%MRNV8xSgG96I-x?<5z$7CR6rX3cvi1J#`HKff^H<~ybDAZO$Y-dx3jG{ zvG8%RsZ=}@psk|ssznFCmBHlFV7iuZZ4=}Ve0d%xh!p{#-zeE!0Ft+&0UVAN zZj0s8jTMOwldHyA*TaGX$I328bD^5~9-#MFO`vNuubSvl1~#9FUu&8uba*tY7aR6V z0{}Grn6&(lVFA;lg+`iT`LJ+3wIYvk@j#-;x9L&&u$Q)_B+hc>aP9jFT244)t;7U1 zZ4w}>Ceoz*ZgBugM>GP6>I~o~lR*=w;FW_SK>*5VUjW=S0S(231fck;(fnQ9;CToH z3EV?L*o~qNzoxQO7jhlq$sr?jwhIAP2r{J;dKk%Wgo0oOqA`;-^^;+YC^@=H#_~qU zWrRscFS{d@rym&nEHBEcM}mUH6iavv_j-m+N7KavZ(*7FFnv1W%_*h1T)jLaUD;dM zW^Y+(bKVqZoTyj&4F{2`g1$`&R=ynjrcG};17=vPdT+O9=~qY9xo(b!O0jAgf9^#6 z_Vjj`Rxa;M)A;mSJ#4oeHpe-%fd?!IGOS9@%ueeU7mpR;s)-7>^#KpHgJ1QNzs7Sy z^bhffen5bqzh-iQ*(C{sT$eY|7zKV_bubbH8K)H;2f`vj=;f4ESu zwK#kQ3(2p)_`JZV_>P-m_VKx~;BPEz1(xkKmi;xBBYaV~K(n4zEys89nsQd&1PF;* zMBifhMwB=|$6X5cYtW%+=NXggd?ab@nrQ-fm3)a*FmXy46*K%erAwF+lBde( zVL&aa|^)z_US>e!$s79q^V{sk7#8!TS*S%l44gmcB; z!DWd)BdiA6{`Xdo5Dq_AwkQbd8vtdzOZP_to*|4xu8M1=u zD_z^Rd_ip$FSMGAw9L@AdaX~A&P=?IBbGn(w#q43Z3?jxD7VU=v0AdUD*SF$6b&tS z631SO`blhErf6M8w^pidUHN3K?9!?_aV;ary0*c(uFtxDX00^My7BuO!$<38QkxcL zo7UG>O^P;cLVc}vHXU~k!tnJ#1khbz)6-zn+h_B3#-?w>=G}Lj_kV5rNo@z1Z3l&H zhZJpx8*IAlY)7Bij)mLSYuQc|*iJUsPW9PN&)CjE?yJNMUiK4^W0*=|wD?t`M; z(*2EjJGPWWT3qzaK;n z@->by2C#YSiv5x8E}KiPn_+(T__$_UL_gkbi~VH#W}{dleW)ae`c<9V$578e&7&45T)cBMNa0#Q@B3MJBufqb-!#E zcS%YUoJhOrEXdV%pAboN0~<5n8xiYSovQFbNQl<-H3q`4=?Awx{)W=0LjfGRmQ05_ME?A`SAsT=~jAQVK z%h5cRC?pgh=5?lRIG!r>G#if;Kt>=~!HjItF85FvWjwh7L zQ@ER=d7l6>-(7@3bkLtCN$6;gh?-2-sZnoYGC;K&M2Q5^Ls1X6zZ0fl9~^FbE_=`Z z@t&9Z_C~`FkAcI|xSThRRcN=B`HVg1k_~X2$$@fyW@H0=4fAzMsB2+N&)GmCM2cYc z2hZ>J5F+RnyZkPns+YIG8OMbEsj8G)#dIB(2IyIgeE9<46$84}QH)R&4?No#MRA_F zPSP^Z0|fw%dH@Onp(=pG%_F}$#EM5m=&5^5~)Til#wY~Q%h(`rj4x> zU=tPb=cC`f3qMw+pJ8`HFPN^h;Us|at0Mz+tKE?OOH?Umpl!!yT+%6h(FNge zcQd|R-sHa|z!7!#g(n}Pmqy$8pr{Z=lrj`021il! zKaJ1fralRfEvH6=nqPq_Tu;RtT1io^gOA+AdLIL(mM+d^-c=|uGSw;+oJ`pv4 zY^wI+DYFS@Axeb5Zpl!#b6IxMfo3xyS2;c-A{%JnUPk=XN9UqDk#Q84hLjivHSF-V}>r^~@5|l9< zMc}c=Ap~zYq&=+zWI|DdCrerqS{I7N#bVq;Eo68S zynARwUh7WpIJIfKNIEQ}?S_3SPF!9B#MCrj;7A+aGE(zuJ6bEf z%iCd|_AkI1&i6Dz3yLQ;zW=4~cKZGK431V*$npj`=gl;m)qi%|ZE>d`9`8==D27Vs z(Mea1w?8H(dO|4;R6i(!YUON8oj1XL@q{R}f7||6bAM@Z0{7}};e1&K&;;b{dey#c zLosA5DxAEIzz70VZ8Xj6$Poz;h?7;ri-$D;&^3ywnG;o;2=+ZJ#&GtN$60_m;i9|% zE#HGzI;(ABW$Fp6(huelNTTcn1USLBo2S1rL*KV&7+$Oz#|*NMp7)^O8hd7~fzG;^i`kIr9bmba)4XZrQ-d+&90v6vVtb=WER0E)%|wHE1bmXy z5R|^!B$*F#JU zhhbxw?D?13BGu$~zPkVf4aQ)nQX98Z8EGN&8U7#CvqW7N+pr(aP{MroO*)h8UgQJ* zCfw+wGxfVb&~wN3RP%T<3k?9_0Vxb&P1TIn{pgB7!q-Ng*#*CxsQ}$U98s$FFMi{1 zIea#jq;ugZ%`S}-=oz*peQg(PL^L#lScoUg0i$5}%E~EJz^#_iQvzf5c`6{qd_I9x zXktE*@NQ?I2SQZ1lM4K2_#D9i*?y4_LIS zDwr_NQUglf{)eM*WX<92*CSyCD5$^Z(0%|UK1%lM%YLmHdqGuF!Bez$8VlB9D=yj6 z;5)%jgMc8sD050OUjXH0BEZqBYJlhj z0g&@Kok6YfS?UWch)t;QYmA@lBQ@Wd^O)3Bxv41wJ_%yTA#zQ`H}9vL+IJshJ=&aC zV_FuiDdM!(Ujd2$zA0)QHzMl#aY zj03&JMPfu!hJnhd@H2;$8qvP68+DOJK@KC#%8&Ya)Ru>UTVD%2Ul33EI6(9{%5{k^ zf<$WsV|>d7l#R#z65j=we#PD;!LU=j?n3BliQOgb^hbt4hr3xz;3jJ7T$Y3cieFl& zFDZ9huKyd?M+c0iGRBIe;ay2bZ#d1UMk@HclmR0t&_*^@BL0qP>zq+9cCP zXbH6dj#0HQKY2?5G23%<_BAuf1~>{28Iv;`Rf%DGGvjg{o#UQ8h_?otc(EH`HQ}l3 ze{$C{hQ`7jZ-zRcgLARBPHZn%mX)3M3{iuXCBq0_0J_G673M4nqvO_;Ke_`m1{#2~ zqsO>M`odIV%31JAA91@z0-v|bc^}qj8+(1oI}<6F+u$>NarB`G{ICj~jf8H0rOg+Q zsn%%cdDIbteO?(y0_uv=JFi*FWxro%t-jzF2rNv7ew0C?28am6x#))Z>N8Cr8?7HL zcMei#+Z23@R72J(C?xQ7mI^rB9DN!Z4wA`dqVNGf_FEZZmuiW_UvYRNhtj!Zg;rOi zm@501MxCYJT-XY#vA0w(`$@HxG7EX?-oR%{rP^!lzQ^f(Tl+L9)zL~S^!V}P_4UT! zj-Cynr!T&(Gwn)s4Kn+fzk2+6k6pTZGMvmW@7w49yq(|L4p#c`CmuhNCon5W=4pxfo&oJ|?BcPWUXSA93@x5Kw6-w|?&*$*(Eaei zFC;|sfws)(n765`k=a9ogM+Qjt!Lg(+@Jb->Dg%qWd&MAqyPLt`v-VGw2`c;wo6Ml z3w_rYQ5E6nWZT*0YHXrcRAlw-INZ(M>3Kn@Sy<@){`2Vi=zuIBm`3o9|J0#P{^Nns>UNxN=waUN-NI zrEusLzLnIngsO`rf7I)K^WR*tYW%yYc7gwLA5s-Q$XVMzDs0f4D%9`o_`a^7O!ZMQ zQ~JkNeTEaSn4GUX$k7Wu8&zTS)IW#(9%lEO<4^T-xN zreWv<@0*_|ds9V*Th7?)g1@_4bMN2dZ~y`CHVQ)HQLMGrkg**>B6YYO39l^wh@@;Z zV*_Y4s&`_Tf)CkLi7TmgV>vTDcCoyb)w^+m9f!N|qNBWf36jemdxY{bfT)F+qNR>_v7{s} z)mCv2yuMZ#7|5l+4DgHlT2)L_?O9!(>E)$WmiGFnroMyUwnDN2cSMs%IdF8;&=uoa zr`P(R<8fm@fz48r=Dlq=7;CKH**IsG_t^w*RsGqdVCV7Kl;{|Vg(tUI z57mtLfA#0H3QEVGb4b&A?;a%t^RERqn~s!4E$Jt&&uNr}vX+4Dgp`j4?hU_}ZE3OI zmJU2r!Jk~D1)r>X(7L*>d3Qe9o}(Q2oB7%2)02yhkpCJkHp4D(-!HaMgu<8GQM5jn zI~bnE%iRR&AD4S6n!;E685TZQ2ifk8S6`e9X0HA#&hwP$FN+mkS@9?}Xg;cZ)fW7% zd8{yXf%W^<^>M2J!LD7~D>d)(d(KZ5UQob_%zjcK$bmE9&f-us`Nr(|$2R((nZIW= zr4)bnh)A;kp{xB3zhvc`yN!!WV_|Cf@29Za4ab`;wp)q~d;SfEJzUm5;t#mD&HwOp z0VnbPE~*sUw*e{t{o57(C+W-npWFl<<8WJvTJv4b`8YoQU=N|O5F5Q7=A7zmz-fXr z3bOhE`ZyL&MN|)(@h-L9BLE_B1*#13qiHMRdMy6Q8 zxyT^$dL(J23&TT@SaWB6RNWx}4J}w9iPulfz1)Do zcyTnkzJ=|XUWxKqc6G|qDQ8&19Nnuk&CfwiYyk>7Y_aUaJJj5%V6h_oVs}xNNrKo& z7d=BxzTEFYBN$##g(2&elE`eLRH?VKi3uNrdCx*P+^^ydC%bMUTp*#`n$w9vmdWlV z_jAO~fpXX#s)s-$yIZ$XJd6Imo0Lo3Y(k}EmG+F6^?B~fbfr}1#Ej4L^So`6Dw#3u zS^wPg{6oDexlec8o}Tl9lZ0fRi~Dn+9r40}Zuj@UusFk$sL_|gU=JlixhWTXonpv_ zwqo~rUmer1b%nBrT5*jg1~BFNkj|FMn>){)dY0mF%^RimT&dw>Ygr-!k%`{8slqpt(y>AzmFKZ zZ*P_c?gz#4rh0I)5G`YDGaOz~e|rkO|1mzJu0>nX_1RjjW!nBnv8)j@H)48=O;2W#^ zd6(g$Yg}JA8&YRGCWL8?k&G`ujeY*IEKnw+ynhLCu8Mx=VrUpt9#myzH&629EmNeR z{k)C!;h;(SablCz16_FGndv(``39kOfu%-Xo%e(#P0-U9o&Tk!au0I(e)v%b$NO}U zNz_;w3H#c6tRdqknJ?-L7D%17zjQgOz{D_9?EV~W5Fq*2EUqd*3#z*u5luSP@8I8K zSic;VnQcjWHobT6=5h>4)|wKlx6jUaHLhjQnnqZQu7H<{hMWwhRa_C4WIIi+mxBY~ z5w5QM#ZxQ-sv4Zv2W3pftR$$3oNzQGinkayjURfhyrxGXOCB}rXiiB(Bpwyvq0DyA z%7!saG({~Cf0ksy-)g%b!7W(Il^_hgC!X@3B>i*t1L}B6GIo4PoXZRe8=gv`0$hwl zt+|{AQ`0Sg;O6CAd@W^Kbm2{bgzgi8y8}%YZ&O6))kz6SE28x{ii&;1u@t0M9}bVEy=L9pX;K z`(uYXTkWxGarf+z3Eit9W6u+|$OL##nm&z(Wa6Xp5#w41Uh9ZM> zx~^_6xAzmB9A|_UQ^SW2KhyeJioZon_mY!&_9%~&p?Zdx0P7I+Ha^Zji+ATFw&@y~ z2|VFSft+HWVb?j(QD!#fXJc;A&wI06?@e74<$0h(Tj9kMl#peWBIuDO#aFTV+;cA? z`C+!*XNz4)(# z3l1;O){=1*B5le)g?IaKHqE#cUS9`Y6svp%?v3YMN)g-egZDmLA~-QVZMitG{vKV!)ueTEF_+SK)jAv z+_z(uL31A3a;@CymeIK!Xlf^F$^|Gp$dO+rQqnR~ikD6yD01k)nIqLxj@N+hGEzk* zO2z~t%!|;_iqg3&vsR)EE~AX-qD^F?%`BtML!vFSqpiE5Z9N`6u%rlHjz*tHJ6p!M zd5F9Vj?sGbf)wOMwG+nF5=f95OuiEXHg*fFj-gEt13NuMjlt2&KH)r+iqGJem9c_* zp?=1g*h51M&Qk16FvU4{KpZcHWK{@BY7D#tn_MkAKN^D{0W6s#T01HIF>udAh|3E0 zs?`U~hM@(;>G3=z0J*=Ep}>3!SQ?8HHVq*$j>9t!iKFwQ9l(FPA|d#nKcoaB{wyIY zJrK_?4sRhaYz*-|3*LK}5Q3Kg5er`Hk`DMU^jX$3XA5}YGtUU=5X0?wrcl})yjA%ciOrTQ^Ch58^|V?t>#p|s~RG&3|gr@N06CRq1la?U|1 z!fa`(Y`KLsOoUi?FfXD!lwwgU88wQauE_->^7vB2Nn64RQgb1Qn5UK5&qm?FF?kg* zD)O(fc%fb}F%NQDs#QyPGzLy?6i;=UkH3InT*zlR^|R%n8tx1o>ZZK%pe?{@z#Cw| zQYc)l7?A*_*rQKmN4$cz5CY9!Cw%avP-^M(_FYzGHg%@|j>2pg2{EDDELDa@Yzd4fMK>>e zr3Oy>9BxPi7{^h;kcb)!$_EVP;sZ%UVkv_%FMeFX#h=4pPXxflD(sZQ=vtuh+b{4> z34M;>c5#SjM-}X;30z{81PciiY_TM(6#wy6#4fn`*H%q}62Um*LTw^SX*q=PT6v)c z+*=NAvBtt$TkY(ZZ*Wm#pIS-cS5s7ymrq2y)AbA-@r<-3HP}6gAR_6gD@kc5=_CaH z)1#WisSXd3T-pQweMuSQ1;3XIXRn24KdV(i6wp4fbp=$(%|F{p#^r zo=@t~6fz*%-D&2o2%yTfjWuxM8j59p1U^4i=vo8IX$lb{m0B#-NjZ-#qKVw8Q9Z)F z4%YOvBvrSy(bwrEAWwNu7S8HPg?rviW)sPC)l4DZLS@rJ^P+_=uZ5wvg=xLz-c1WD zV=KErtEFr!H{)aP&{q1$491cS8owxh0YMx3H&jVW=@oHo7nHiH**{@5s`$3}+oqO^-|9@YuV<+abOaqEL->=sDF6WiR zmOis|tG7uT`Rb0!&PR{eOBh!lS-}^ypCTf9Np^Y}*}5|LgNU7yNyVz^mAioE-d;Y6 zHBYLIuW21Obo~N|uY6P=iGe{z#A9MW(*3OfuH@~ZHpLo0{7k!OcoP1vyXbFC5gw?R zSgaV&scQ>U%q4~;)}fT_e1f;r-Ie>6X5c+|=RHSiU2j|*nR3H+9mQ^4pM+Bnq@{+6 ztu#Kq0esq1e~H}|i=#SiU<8#hq}IHAfyiNa$0-O0+ro(x5_NPCq{jh>(?;5sE&#1jx&cVF%6sNQi$Xu1j69aGCc$>!@{W*6fG5!Y(s0% zN*G(^lvZUT5yIUI{=TP@Hewj;)G0F1bZbtbe+*a6hoc{ll8e<-gQ~D{?*l)V&DJG` z=}^41hNBn|=v+k7fB8lXh-d}4KTZ(7nm10oGfq|#4`&;pT^J=j9fcysq#~*rr>ZxJ zpSD43sKnmN#KFsNMT70pj2J0j{k~)-hopk~Q>GdRuQ$N1) zEEE)~b5i`C!zXmoKgc6y<>2YxDB|@n4?u(b zP7@3f^ODNV#7+bFEpzJ9aC3#%_io`k*EGHwjS#U$o|Xj>Yxtlb#X`sD4DsuR z(lRXOEEoPu2l3~K@*9qc^1eQ8ar}hePE#abbJD=uK+w|o&b*IPvtUj$xTRSgG!nbM z)I;53!2Hof@uQjDNAvKHmIWWJ`##!ke6;`jk?c*o<6pi&iNQx3EPRhCk*v$^i7bM3 z2;mnL_m-Cx(d~9>pF#>g@l7t%wzNH0WC`AYn|^~U+c*K+pI&Wn!!lPA`ee0;X~Q;F zrXyB3#XhC!bEk%{N;)s+HZU18B8oOvOBL73?ba&8*QyKFYWvpeH`W^euCc9mGz&52 zCsO!NQR>!@GWo5e2i6%&)@ebXc|ik#1D&(x>%MGr1QDG#Qj6q^pV>eg_gfa_lmjbj za^NN4HAVRBU)D8Tf!~G@VrymttTJS{($!&y@TA*hjM#j(vq{;q$;GxMF|ed3GY>iK z>YpfvwLp#wC@OWfU~JP)VU?r|cz?Vri44jpKW$U7ZL@=R?Ah`=g*xf#lQF?NiZs38 z(}swyd|kFB0C2BLK``Lel?G%i2y&GZ!O^CdN^ZrA~3d5y^;SvTE zo3eyu}P_jqxJjf$Q45uE!iNX>3WC)_a`!M4JQojRe>Omj> zfply?(7&lad%$YEP@xM45g|?<1tIB+kVB=-C8 z;s;y=C-@~>u7Swu(5MjW;)8$*!{y(Nh8s{)DR>V^A(r(2WBc?~s&W7|IzZ{SKtC{F zpHI;*bchQ-M6^5=I6mrmvc-bvmc2LQ`0{JyKT7lZ9gbYYmxkxi2p=W4A%@hU61~07 z6}VR;Wu4ELLEDO%n&}%Mcqi2|q-#CoFwx$L(Y4{Rox@?8PZAo?^$_d26 zh%>$ZxLd?r(q5_$#bh{qRVz>T9zyQ>k6WL@JjWLo|_Or)CEwkssH7e6^)#P)0zweOLZLWV)(MP{< z@8G)RCj@L$#;*{|t9Ot6=JyLyWBUPX30;?kcQHNdA*p@tGyPuij9vK~BsK9SbNk}m zw9sd`|NFyV!554RQ?WlTM0dUsECfr4ohrG_Y;@J`hrq+0B{Bb)L5h7nTY(SSo#27W zn8M+2b-t3Vh2VdNXEY&R&V}HECYZ#oa}6o#n&25CmvmzPjq7|SS(qaO9bs^fwEi6t zpVpJqo>BQ-fg_GK{!x?}G72iuU?&>}h2h?fh=z+Vp>9W{sS66qx0WLCJdwo{oC0D+ ziK;Alk^OXwlkMLFr+*OTe^BMSUedc`9K4kUfn^BW6ZWKf|41YeE~bc(_)huHjs`&B z^&`>vJVt!kMmvLO5(0ilI^*48EExz{K7Qgjnm{Aw51}{N*Gl8kFI3~Bm{kX&09I{! z(=U3t_n&MI=a~LyP^cLG4S3}++g=UhS}y1&U>x>$<}Cr z&4tfqUpS87p6#XY?nokwW})qs|CgBprPzCR*MUbL8yv<8?QVj9Z1lY%WU;>uIXjps z(k!z7`~1)MjrXxE4*$Zge}CT^D{{cS{P*`Sj!+Z{BIImF;*qyafFQIk&B}xB=p3_IN#_= z%&AG}-yaej98X)bl`xR~ul$XH{Lf(tL&b~zH-<_$h@_D+Ay=D`Dvn%T(pa6=war+Q zC0f!%o2R19L|0@)(o|pipv}}!3IG0*93opk`n|0`>0PR(jjkq@vbk;6@_?e-iVr_V zubo5`s{!)nY_{Y!p4{Bk;}>G>M7O6a7Q%je!mOzSJD;g4DCSx=QK>p#(5wwjO_5pQywWOAW%&BCqQ^Jhj{ZSX{LpZwuOZRt zs^~7(a|Cm(V$AFh^Lo2nLb--Z{9;NK!Ja8%aT6GGe;Ku{j03?ht64rMUPLNl0c-ec zf}%u5eM>7w+-%sHroBsDICvr60rH4$L`FkAb0NW9?GeMrE)A)Ug~X>(kC+Z*H072T zlAaAey7#+F^MO>HW;n!!6<=11Yy^`MyT6qMoQ!2)Fg$81E}V4`ZEf?`gqSuL?)%-^ z1_Uvw1(1VM-U&+SRETzonk)aqZXNTEw0J9jSHXx1Evx0l%+6s~;UIc`nZBBgUWl7$ zw5*;p&4=tUH8=6s-Fj|PA9CiR+$1Yx^}Wn-A96npyGgZo>-)qVJjv{~@j9wvco-xR zzeO@XIV>(0&~Yx=8elO0S$3|!Ii;|*oK-#hA;pV7Zb44nJF2AznW)8KYdpR~#i`)I z2&3;WcH*GjYut1p+?@O{zbW;KOvG%MDKB03S?iur0Trr$#sPw7S6^YtglV+ znnINPUVQ{d%U1%`5R+l`dLF8HTb--H7OY1iy9U>U(!k{p%kqkPPh9L=W#I)W4WHN>gsAgpk9=V*3;)SpMrhLHCaHj z-k0uL_f!tHfX}u3w%;$)f)J~`%Xp_>gCh#{)*j?bOVTNCeJ;kQ{?FX9k1OgP^eOp3s)eo+ClzsSTD}pl)un)nit^r~9d;yvd8A z1!_+(F8z+Xyj!V-*$$X$ZdNaU_CBc8nNnP#k<*Z~Fb5ivh(Dihbf2$u#HYFPzxUr< z4MSk34)6MT-tn+5^ZqnN`>BdYCY(Hb53_Pm@t(@OsVMJf68ot#pJ(p~yUzu1Vr;+d zDK8>i>N&KF!GwcI0!_nS?woCB{+oII6x`)Ltmy*QU~!Cq&f!b&7bk+4KGc z*5;tS9(G>y)(790bmC*O9Fv=A)6=0gF?nor!NBwOPf&C8-*x-6@|7Wt;MUiD-fq(C zt8+2IZ54`7ye!t&K8*%mCuP%W<31KT0>SZ^=@=H zw-bUGb@kcpqqjeEZf=C~81_;Y3%Il^h+V7s*1=!$Fy{;~kNXm;DC8R1vI$g-2f$2% z>I^^Z8>#jhEaRt6@Z}%7&h0<%l!hO>M#bXq6sqj&Ze4S8_2bj~DsPfK(^a|Ugx|wV zkBEm1zBxN)hxs|sZH1^ES+Y9`W0S|&T_*8NCkmea&LA{7Xy9e~Ri*itc_9D!a_8pn zrr7XfSEUzgpEmz=j)ngSdXIatd9iu%-h!+-B3adl{FTmNY#JireOM1&?iGy=*%?bX z533gLO4~|OpGk=3TYC8=YfXDi-dT83h9mdBrVa%=`d?Y~d%oQZ><#VUzfT{E%r}~_ zjeKa_yA#~?fZv00Xn#2!vY8ioBGZq9oXJ)%lDL>)9Qjbb3^D;GEX20_L;v8?`atdYK-%G8 zF5S>O=ul^hQW+}+4thBlp*1uWqROL?ApUkh5R%Thq$0aC^h8c7^-%S_he{1}cz{l= zl2`3OW?0c|Slwk~SbtwlJpBF2vT;Ij-JhBwX%GTs|~naHkmcQ@=Kf zaOH$LOKJ@Gc2;6W2eL;isz-B)lO6}gx!l4^{YSOU6r!^`Q>#Z(FS{`F*?wl2a8=Fy zN$Irg5_(o~tfOW$>+7e#veLE2GGxXI`k`SYuplOk-99EDq29)&0qp{Pnh!;BW@e}M zy}F^nIAd^VJYeV>w)zDo#Ze}`TDqmIA^LC}1D(LZU@dvD#6aP6s7A`TdLlcfE2Pn1 z5SIN}E5=u=-v%1vf=Th#P70a0Q+Q{DNheT|ymo;$O~EQ4Bd@<<(~jk0JSJZbGbLr~ zpjSqUrZEm?&}xAi!yOF>e19j1? zI?+ho-yqne9&}1UF*QCXhp)QTGvB742A%y7Ae$|Z^)2tt=7h%fV3%zTa=Kt|HWX6|XB>`f&!QNcF@0&4BJY@-Ym&%WSjRF_emja-38PgF=x0cxHwF@8b3f zDVHlgG@|A*IR8Zi>yynr)-D`3y1a!k94OZZOkyyzxtB8$9+MbW9V%uF+i$%h3h zVuY{Jbv}kI$OzyyshRI?pO#Bwo#aV`3jJMJv4&nKOyrK6JPRDez1b6PPoM3$5lNOL z;;g_vZCm&(xhQo&RG?~F(}M2^kn*1_Xxg?nXdBkdy|I?v|29X+ie< z?t9;RKhIjv+WQsEKi{?Hysqo~97hC7EBZzx%zSb?87LGCt9-5++5PIFZ3Z?plU_cR z1qNpSokmCwDWxDZa6&axKzeeZL6uJ<7c+2uok;uHnKw%Bvk-va1ct#%(F}8q_c29Qq9w532ac^&Qd+a@+aoy2EOG+x#cFE<t;#VRlcy#Kf2Of(?9l9>7r5yd9KhA@$HYi)?Pxlx*1Orq zEM>vCrXTPj_JSi7RP92~dy5JQRsc$K0u8(fhsY5FDw*y?S%hf>bT zAB|ZNjGRzdSW*5Syt=c4V3E`f1CPP%P3HO3|GfNuLPRoS4NT+&IX-}X#Uhr-kw>w> z^^e~%n%5G`%d0<`6>HFDgpSt`Xdg6z4v#<>^2lR!&lZc~uNRd#zVQksz=!N|xciI8 z;_ra(2(j4-;v5jh+U%e;V&igS_hup+I2lH*u}%S^e%hX_znO*70ZeSXuK7VTNAhg8 zt*ITv+%Z+as~era76H(@O936Y{GjHy#M01W9zcF3&?4Rix?F1Ys&Bm5jeC^tZFe8jyCO<0Z3}ge1f>aD7zljxnwfC!>wY)s7kNt~uqd1_f`?pJnzh_NvXUAnnC%k8)X6I~bN9wre7_x_f zunWlDd*8elxZBH}u?Lv23vngsmBSa`2Ziy2;E@VpH+!L!`*pyjM^T6U_aXM9Lk1ZO zo!RwWf^;C-CS(a8DDEm+BXi%c)_z98u=Y$MLM^&-6`82Emt-1`;E$(<{qjh4z^9Q( z+l|gT+08b^&pjci<|8Z&A;{~r%{Prs76+lm5v5}IMO?@?DxgYSP=y*n@s(|fDGA3{ z!n%Lxz)`zedAd)!b`4j^iXEZ?TVVYf2TyiqCbyHlywhO!K@-?vaOm(;x|4tHAx?qA z#{OaOzr$3TquyLl{dZvhT#PIs!CG9IZnzb##N+;ptYO_n9y6s5mZZ0@ z^M9brT+r2tYn$L+vAY{G{j|2+t+@5{IwW>e-VH$Q8X;(l!F?JwaRQJG-J%S|N^jX@ zp|GxX{h@RA11EGR?ldgl6~hd%J>Yu5;+i;d_Al2qQu6fhDvwlf%t}EzKhjeD)r217`iVZ-jj^vlwIJ@Z!XW5U7n7* zo^j@0T!Wr_^5@*oJXqfT5sCl98RfP1?}Upa`pq+UK>R7syWa=4e|YQ8`F?mYe((~T zcaiZsd&ETw<6THTo=KHmFy{T1-~01|#D^!(Tbc@8EAGuF;l1K}iK+M7+SVKI*>9~b zua^S9@u)l~{LYp1JfG(M`N-`e}_$HMO4`KGkpWI^W!U z-++1FV{tz_DnZ|CZ@+aP9W&oIduKv=mpW8e&MlXZmTuPp^1gSJ{tju^VNt#kgI+;D z{IVDP!cP7EnBI6s`G$VDX6f>c7VwX`K82fICYX6f{qPTa=EoX!?Q3_NY37&xBOvzC zOXSo)E8j#6r!??^vCvkw7fdbhfD{CB zYv%(#mE9iN?su{N%|cz8zPs2q{afJXoo9D0T6SOBbwLn+*SY8K{LCBKb@T4S6|5_0 zger(T&0kgG{Wr6qg{UN8R$`o12}`Yz;Sn&&KD$h1TNOyWUR;NN=L^|9W+ zEAeYMn_D8o2`-6y(#=iL&?&|G$$9RFdb{@-3)lDW9*b}h089+<3;Qz$bb>C`Yv&<# zb3hmvPq^CtoN?eIt$^pz{`vDE6yw{(7Y@IfMv^)78k~RqW*$p_Z8ueY>shFpMCKzTw{Li>7+xdUV6HJ(S3*RqK5F zdUq^S!0Y7b_Rao8;oBrGmpk5rnM%Dz*W)|BqlE^$=~|b+{3k1Iet%AmpKyg$inIS7 z13_Q_w7Zw7Ubq+Nt^5&-PbFkxd)YD7$oiE&S;#McQ|x_|P^VQu!SW9^8ku8F*GLHtZSWgjw4z?FBfQqg%WSM-R|4=5{9(-RjePO9g+u$2;n7Mur6zH-x!JB^O>E`aA&ZW|XyC0aFc^J2Y47Jh;;hN39jNSnbx7Dy_QtOo z+Ph;JR4GqJ5gLoEoMF^{> zjh6AfhB&d*J&{4RFL(@k{tff=OI7`HX;zB+=(m3MFH4{&B?Zp|O$aNUW69TP{8teK zOgQmC5^YTH`$B6vi`?_%I(jJck}^OYNH`SM-r~A zBF81q*R&>D>$uu>Oxjsc%kCnJ+v(OzAK(9~HM%HS22ee=UDQ*F)690}nLPVhz3kc% zyZ2r!X(>t>IiJ;6@sY8+E{CL9XJu=Z}ag}A_z^RuXaAk=u_^-uoknt`aQz>{R zS7OE{Bwi3E6Tn|8J{sXy#?L?g*i*BUu(Ej-mFrY6A--QrT{#-Q{XFMHsif=EY8^~H zd2KVuUwV3j6*}Iag{y_&XWu#tc{!Q^d`8{zBJ(WVn7oMMTiLg&8WQt6OUrg!{XsEG z)sLj2TXeCz1D_!ta6)6PK*y9;oQ8T|#h^7(yBh_uwG(9U%m!nH{?O*<>PY7cCdM~p zdC#Q|-6rptWE7C?jG2>hUmmUKX`~FK4LWfVI>yj5xZGPT$10!7D%v}a+d*ZH--h8% z+r(Mr<FmyV zBrB^oIgKjB4<2H(cfMMJ+4WUURmrj|H*n5P{310t)O!|m>RKNA__|G zR=M&jSj{YZrL+ITKhrA(xSb$rcRArfOBy4|J*c6f+-!X4Z6;i#dP!y@u(s@v*kQdvPSA4HUO6ucV z6qrL6VK^13Ig>@rZ2idV)i#i0SX$b*(v4@xP%+F_RzsQnSdu=!+zuLn|`?hW3 zoz!fQshHy_eQOUUMAbHE+MWwfbeq9$T1p`NOfK&|4_*s;5N#fsnu~1R zRDYDJmvwUNO7ixxjSp8Qy=yt=^ce8b6#tvvw{y7)W+4?*auPvaz|;6pPWjp0fHz$_ z59P^yZ3#sDr{8LK)?rVptd0b|2anpAP!->FEe`ZsmE~U7H5^$ZO`S&c{x!Hw2wA^s zM~qEC{wPi$cc%|*zN@Tx!pDq%@{Ss?yAG)4{J^#=-u@yGT-xaK!YNm*ap#Aa=SXs_ zlKs{9{t2lN-r~mIW`#W4spL-H(l;*|7@d~h08V(zWnLa=B(=?yit|-!)g0(Fw$0Xt z@KsyYJTIMWn``dmtM#fmH2Kpu-}#TPKK!M#@@U(_0M})GQq7UgoA$-=5dNl!;3EgE zteMG9{^rJ-<3|^-_QlzM{H?E6k3EvwS9Zl)TE5ks_(ajHo`eW|{Tb`(JKet4oFLHo zr{**mFH81#=TBk0sFUoYNXM19e?g1Qvk>L^d7`MRK(`0?ke`8bIIl*oPF|cnF&R&5%T+*w*7)y& z$FC{^@o&CIIA6S66x~zv8yyeGb<6*mdGNqOG1+K(_?m|EGklgqfIW*(BD&T=^N(Y# zy37NQ{l%AWLEFzioKH5q-z+~3Ziyoo_8R2+-EMVcw=vp22Q@7iGthVI z78QBoC2uvD_W0ECw)mu{md2{Sm(aPdRAgU3^$>9lV%3bA{q@wrvwHa{l09mEze4T( z+%!EBIe4{2^T;>$sCUME6llqwcN>9o+8)4ErxGP`kMAUUG5$9Hm(%IpOi`ysC2M_O z#ro2I%i7gyS?6U(-Q8LIVO;qEd#JRn?Kcz%{iB2`;dfwxyc-LcL zm*Ig$+G@8;#kK5QKmGxv6r{$F+y3?tFbg{+Jx-9CcC{4<&5ugN{8 zG}=Y8-yPYHIr;qw&u$?b*9PmK*ch-J^DbZ{>mGSn&H2Yrs;f_X$r3DP~EIUOA> zo7<-t=Z`2cDa|Jj#N6jve|OTJeWJuyv%nWO2lSc~ROk`WZXPY>2Yt@RNL{~lDWHnB zAmLcX)-)e9*Z|`vl19hedu$ATgb?u*ES;@m7tE4jLMg7G^BGX=xOL*_AH#}z4EUCq z!uiDf8ygk*)b!{+v?q#!$z&WeIJs#bD2(Y$O&8^+yJS@!aCFI)Eb#bpp5<<(3t1AU zZa()kgYsM6fbxl?85v(Q(r|6Pl(%epV0iXAaqX5Q3#WkF(Omy2wW>!NZS5#qVm=i5 zoI|`Qx8Iy$#PYafV{UPj@NV_u6XVOZ4gADSfrG7E)j}m5O9devZsHW-s~@zKKfkXQ z4B|W%xFlGr3q9vudw#*U0`;{zu4mxyW#sR-q>9_bSjrS%+hC|H6uf#O#FA`Q6KCD8 zX7ejAX!V)3#+=*cm^IJOK;-P%4Yk--k%DIWOME8IHgl<5YZ}IUs*@s#0R|P~Vx`|d zr7?|U40S$8srXM)|2a3M3*J75n#DiRi;fg&->SfTjQ_-LPqS}x;F=P3nr^z7+|xj* zrI}YUpojk7{U@zeg;!>nsNY&F=zK{J4p@N8>HjRTVZ1CxJmjKMRFN;4wRY)L28^gv zi<@_L^mMaF`L+vlsAaxKuejv)K(wY{1_HCp==>@(*JZ1)=O>pos*yI9cgr?hEU&nn zaZLD2?WCXC92i3yPm6eIAyE7U>hK-LaD#^aj4hSm`lhcx#oEjB-E94ku zADH*v*vmlMUc)=ZOF~J+Hq=^N>m9#1k7H2*T7aT|KB%uxL{$N8Gw0?e&=yiqK_+Bq z2#rSh__?|HUh2U@JnHK>U$M$tnYmS0qKzk-SQ@zN$!p8_X8NwI&hZIzqg~`nZVoiz zlrhxp{q_~@M$x>~(a~B?PJ&OAXKihPUry4uwM9Q1h9;8@4b`EeBkt~wKYy-ucD9OX zs4Oi_o5jZ(8tI}5s*p6FjE1C+qn5a$NN7o@jG9D9QHZ{au4kf$%SUHbGbJ>`R5n)7 zuzvUI4F_y&R6y`G+K@_0i=rVXTCLX9maVMJs;eujI6L@ve044>m6j3r@pT^^>qmoD ztJGw##s-_rbosYZ>fRn`I_l(X>r_&NX03{LR!K>5QHU@#cNZCB{k^>{%akOy+G+vG zH$mTel?>ln2AbQ$ZGBR`?ZRwqVAjq^C$~5kQCUHEl$(L8uBwTWnwheQtNCx>7lSdBr<$>xDPE-BcovH=}BKZn#CoActiyj7pG(65cvg}CZ_s_ zM>__FTCQ#mZ*45zsVjANe?b#eUMW$urPU7f7uQrRD9n2ChRe*%P+3LZE;l1f)pOGJO7iqg^FdE4QBi8Ar@zpC_VO}pbJKrh z#08CH^9u}Z?8Q1d?WANm6BD&6tIR%sw$?Wgnw#?)80a>)5Z&Jo^lSTadK!Ypv)<|K z+B*DU;X%k&4toTfYXWQ97^kY5f|4myPzk#gjP?H)U@n|#N|VybFk%m*X(f{B9Sd*8 z{|Yd(1ik(b0MlfosbacJy-2BFzsg~@0#E^12CPnUP?}8nv6Er{1?C!%k->W zZTJ6kusYgOx86l?IIx4!dN#%rNyce9*81tc0jA2AhMm#$H%@C~|2M#-S8Z$h)dk0i zlM14hbOcmEI^%*9KWm#AEn*W_K5=%-1p)7Rr`lT2r^8}cC0dPZbsHShNQ}aD(_ua=fhtKm+P7M{}o_vzze!rVA{MBcO1-9 z&{6vjz%*rAH#GD8AAo7xsY~gKYlGa)avxyd%l3}GrIS&dtJup83Ypo<3&rI~V-BNq zw9gBmuiP*E$bYb3RBE!A%!ATJ1I%>W%3r0~z6WT48Od?*AAosKQC?bkP+8r4a8Ol0 z@W^pk-8AQTSkt;&d06}P>fo@h8<+E_zK_!B=+h8O6&hgjA09PM$a5Yy&FDHEe_pVy zI&NO^Jv_Fy2;n?w-A;8n`LbV%2AD@n$@cAMiR`~*|7=~H$X^cpZvZpEMu<)hm#j>y zla6@>oP{r?a@JS6mO=6V3ou{&8RMOI{_|b%KLGQe5@FR3QM{MlpB*`9YAfH8)Lcv* zlUn9ZXZ}llJyWFULR~UOBUdizdbN-oPdGZ`V{C-Q-E40mp?$ST*&v2m7O9EdnXjzy zuhWvW@)6JqoPJF9mJgVwy0QH*s&gY3{&rSi`lA(rpBZI1Re*GWgz5A)kFGfPE}laO z*szh8>u#S&<6&wmv`}1AzS3(>_}9CV;B@)AJvNcUrk}Z!$3zyfERxe9PT_lwF6~kg(3`aw>*c<6nFK%R3Y~aF^S8 zdm-LIB_SGZ;N2-4;Brj9w=g_PQDDN$#XtC!!^MJfzWYVGT zQW$t0J?b4S^&BZ_FW=BX^xBgExfA;OZQCkyTvZ(5(g8zdVL zq)GKn1+j+goUb?rQoVaiJhaP3^(%{mV=;Df;fv`P=kWB-7YKSGAh|pvwtaaO{hN1N zQnB?K&u8fnZ-hL*4nIxXlL>O(dzOZPyG}XvNr0_)nIJR7tRcSKX@S>3Vd%3*8$Yk96 ziy{W13Wc{yQ;C@u#cVFwv|9LYMrS8kf-e4ZV%1cKCcYF9+t9-_oX)+wC=@%Nz;r^VV6zeEW$}vlQrTI#<#&Hx?F`H)dhf(ywQMr$O(59W@UdzI<+$b9GBWnCyywK<;hLND!AJwmnG;<`SE8xi>_ zx`Yx-?M>W}nsWoM!GH;e(<02GnPn)Qz)obj1b3yI=(#;WT6i;3&AOP#6VU^TlZK%I z=3FzbhP1Re0bms~pN8y9jXMdcVWwm=YmttEh=Nfu@P#!=Ikf^%w+E#`D2s=!5#fa= z9o`V+OCyU?^sr-$i=q>NZrTq8fD%^_$@2_{He9i2VhDF`ftr{run+w-K5u^Kmv!-WJ|$7t0xTM@M24B!hkSITW*}N89j#Q z6W=6HxKUKC3;j~;J(AWdMv+0f^mGM00B=z+2315iaV-%3Oxl8I@MkajZ%(o>2Ib0B zjQgC6N2(Hv0#nP9107(J3Q`az^1eZG54aS<9UC5`$Dp!-NGHPFMfrbwgr2Ysd9sq) zg^k@Z$WRU?fD$)gI+$_+bc1hFfL@er)s$rv!ZJ8PH83v>j{@hPN;l@K>e0CINuc85?XBYCOb>h^V(a zu?o1P3qx%H##RfM>{pU;M4{FMeYBWTEi&F!E&$1J5`Y4x+)Ou0k-QI#)x$3j97pj# z+4)Wjx|SYLJ)t*0#`n8gCGByH~(agl+5IUV2lQz zET@hNv1zUe2e$8Ovre+^*0{w;(f|;YLq7>LFP;FH@n|*!Ww{?wz6%@Is=kNaCmsoEW^&r{tu!@N^S~)JM=BRfBC9P;`@)CPYTm z%`_81|NI9laO>>{l-oCYSssAo1eJ8uOReJV#YfO%JZo6MPF2+9d=%uVHne~t3FqOL zp9UMTr$?PXCTIVig6N4T<&BfzKlaxjaCopb^;rMmg>rggEldPIkNPiwNev?v{13pS z^oLQW!)RM!bPF*08yEw17*UDZ6POxf`5R6jbaHIiLzpg60m+L6g$Hx+G&o$8TtbKs z{0{)&whuSEAQ8WLZ4d!@Lk*X`(3aPKEwoRrkp3TlDaWX%-YPqQt%lDN{+ByK2Tt;u z8H`sHVNM-sDHvHL8>xQr&Ne;Lu{F|pA=33G(w#cWQ!vU~Kg!oX%0E47*g9C!15>#y zidWWskQIUgfI|Hd2q0q|4lc6%W$9ytVWkhaddH9&!>ECRY+M(FkLF#WMp?Q>c;`{E zY@D%r;0b1vgHo^w9>A*11bfqq2kHog#uTMwY@nY&n49{T1uoD*@DdP!Tko*m$^o~v$C^Y_z(7E^J;A0uwuKM&xzCh7 zIMo(nW(SUA_7i6SvkihD=HlxLo$x(8T=4*+W#GefH%zD-rj%Pd5HN}h_?}AMRi02| z>3XIMuCNCmv4Bs}0I|>3c}O07gA4c~Nd5|xRO0DDg9mtP2YxyT4m|U?z5x>f0nB=k zsC+O52tXwSp;1h(Ax*5;2TNXqW$eJuGr)=gqzn47;DmT=o@C=icHJl+)(Ri29v`A} zAB(~05g?#T&&^@b*M$n=kO2mFV_-t9oE5=SxPUo*urdP}c%5357#Kv8OnUC$ArOGA z5dekZk|m_avS+k12I6T19v}iSKLvuID7?wEp0{NG`oS6MDL^R<1$2^q2FGGcF#cpP z01!`#5hC6bM6{XuZS+;p~;IY#)QrDbO3%{7^#woR!6#wcDHx zn%u2Nq1tBkxm2Rg1HuvlvzqZS-n zBOGAJC5V8C+~nbm@JP1i_r8WxLGy`6xKsrTS~T;_Gzuu&3QpJ~= zu{$=hoL)}2xD1LA_8_3qKu{C}=zBP+(K4<1lj&xbST$seL8JL5OH7sMC zP3xGPxbO!Mnm_CwAo1^Hma%IFM8vo<-c(j5wRc zIP+h@WIZ)vxRAV^3_NH&Kr%j$1^iCPiVRwh?G#S}t<9mXp+ws97F6+C_+xsMlk<3; zETI<*lQ9gy*bXRs7z(QZh1G)soum2S%_a4MfC``q@4qbC8hnb1Y)yr-KeYT$j4GZw^!QmT{$l8Gsm&9Rwk zSVcCe2R@hlq|i?Jx*`czBMHYN>4ZOtWjIYt2rMyNj@RRceeQ-q1+iEL8xsIb14+#} z$*lsxqn~T-L@4Ejz;=pY`BK|~- z9HlhPu)*xf!skg%-UG)vk(mgmPp5-NxFJoW=}rOQhJ}_gBRY=^pJ74Es&cS@Ks6gn z3pUJG2RHr6S%Tw$H&`P*DkB!J2jiyzWTxF}E)X1Z+X8qzO9y~60Y#EQJ5>y zB9?ozq;jw@a@3(cnV&v5_w?|7h42#suy4MNB<2tR0UC;ZN?-d_R{GTL`_$?BHAVZi zjr(-AMC7i~7^U@=WOlb{6vp3i6+vYgz`ek#c~sGY8T=^QjW@T|aUX2@hIt z6;gZ}AnnohrDLUC8dM1@2o)U)-7kQD91a8RB> zhf?m@K71X{y&uk}8z~eWDK;J{4H_xW9>J<6KUo69+{n|c)LWiSV@N64r$4z z5f5rpcN_&tmC!nqw>wi7bB?Bz5|;<*^d2dG zUP=Y+2{A15<1lWCfc#W}ggB1l@{Io+Gm2PB4a^+J!Z06YC@1V0C$K1!fHsLuj`|Fh zm+9L$2ZE~>qLXOJg;&7Y+_jQYwX~BHK#eito(k%Oo-HQ``6|`=RmGrCC0;?NR~5KC zlZ=1}LQ3Q#`KcF_Fts2IsZs)GaY8m8|AL>qBn3Q}6MKvidsN{kR1rek{BNpy3_pI0 z2KToGTcuS4>d_IT)qEH=*q&9w`(abAawy;|J0=FUaY~QqGpF-$j1Z(zVemZR=XJG4q9F`vtA&2Q49H0q*T2 zkngw&?Ev)!+@1w;kA*1?aP+DJdbVV1aU_FzX0m~Aj=)|f9b{Q#lmvi(gb>=8sHcJU z4DI%@wqO=cFk1|mBkRYDEb#VUbOSlqTM3e@3hw9t_n1Jsp3Y}IG)QnlT*a2q#QgQA zB_gRNsh(+{@+M$U6DA}P^r(?4!v2+A@$;LS8oihbGLH}VP#5E@70$QDpoD}2BC;bF z@bJskZ*-H`1#A3IR)Oa&FM>%UM8GzG3mrtjv3e6&o6SPV4Ry{nam7RktOcu}C43*e zQ0@nuTtBJV#KqXa?s3OU*d*TEB<;`e~6^McDT!9XzbL?CYllKXY5j&U( zlej#4LF#+>&{fyR+WsDqv~Qe!{aN5aPT#=Aw6UtVae|H~J-cv@9q{oQrbYUER!7LS zpK)LrA;tk|0cMUXSgLak%OWu~+p$+!wW5&@qa&UgEfxj%&< z)v|KAAcL`FgK>*QJ#}sEMr1rYKmTq%!8lgi+@aj;0sy+npxs6K-8dGREop(3pauM% zZpqCBJPUUS3~fkzus$6DjUZ>@kP~9af@{w$k6&HBX*l9;5mF9pro`^!v6lo-VlOu4bL~!y`rgv%gZBf1C6E zwsrmey8gHG@o)FD`(BCrzEjeA<9lS!A8CzI{Dj|(3B{P3_nF6ybHZd}>s0gc<8xf3 zU61wVNR>2~omqi0i=}4ld;&3#;l#M22XLzCiX|q3^hA#vSFqwKio}&R~hUSh^ z>PwSO`2PS*Z5mtvbtJ8A?hV_!{K0hLfGyd(347%N0HW6Uj`x>#EOUivf2Pjie*w(Z zrH#le2obrj=d^?M6Cs{Z%NoXd%^#8W$#li&SXR?GtjoI{f^;`CxW?06bAKvJV}KV9 z$ykB^D?l$@=F6s-mebYI%)jz$fA!4G;fYUQ`-&R!+K-iz&|V#7xIa3F*B`dA)V#kM z5i_XacgEBGAAm_`0gnt+CnEebvRMujCakm+M-Axq$`Id;;Y$@9XS72|ttyfj-)HQS zG?XdO0~%1-rX;FdT$ZPin{>b5?F&R-$N(jGh-JB@aL@o#5K^th)*jX7UQS*)R@EC7 z9@ne%6~65>ECwT#+K-CTB&cYFD0?f)0u)4t`fkp&6f)r2+C!a7=&W?fh_4n=1q>Jr zc*W2dYXwR8y%9nZdE~(TUjTE2T@_N^f@`hMmI9%BFP%?Q$_Z*P zY5?#XpeBGxRpG}JhbJ%eos{a(6iEQx5D)QeI4(4YoI+s`CQ04|)#&=I!N4S;smaLN z_;FClDqfD?z$PMGCV!9oz_x(4k7+vJ5gQ)^szL53#h}T1FwJns*r3BeM>WOEqJx9! zK?a+_l9U_3W!yp}fNh4rbbE4aCUAQj;ClQ)hXCUTPzpXkoEAOj!s0ln0LEm(=`3yx zo_qNlY$FT#u@v~e`Ibbqp7|Eg*LDUedbVF|(n#8>l3kgP<`~#;mj()KNg6PqfjE}l z3@@I0ek#a|HPW-xC7D7}m+@h5yc>BWBt2b$$B6?SGgjm%pf!Aq)s9j1{QFKQcO996 zLJWle)}}n}uO|u8lvCEo?GPcij_X~cFEq57G7P%7Bi{;~Nk&e{!)3t;^raAl4L{^* z;!$|*+c1Fv_<#$$Lkp*4dZDKnM8PqfRNVUyQvQ`#@r0fL;-XyZEy4>XeoYQl$FY5~ z8LA`UP7gpc)}o}p^5OyLr(oCc9dM#r0b4W925ldXW)Q;whPyF?6Lumu<2YfM?Ix4q zR&ZyUs99#AB5@dmX;JkVB0O@cC8zLqHOj2`0k1djlv-Ls0$S{HT(m0nJ1sjV1MW&9 zME{3LPzqlc%nZYlOvh%#dyG*32@PCWq+`K@fC-CGsQyHpKnOBfn~yr z>!G&FAObW0M4H!qks{RyVjWT*6!84Hx}m}d7_+5VR2|A3laEs(D953D&JaO1hMirgt z;&g(FotJMMD(B@MUu4zb3kc?74OtEl_Tmk^=Lnp$zCAIU_{A`7_kT`=B*#F^b;RU#bP2P0vw6&&C*K- zOd{SY#?^%vvG$Zp6{e$HQ;)J)}0DGg+>PFHt5rPzz+zAKL>LuEMp<3vv*N|?w@Jyi+ z+@EW*Tw%%)<>AT;wbOAh-VvTp>jMBxoPkfjmL!lZrPLA|m`j7dv7=US3KV&q6>vEd z`v7d_=jOgmJc&qm(r%nxh=c;SeE0FwF41y?-@97QER@msY8_tO{k%M~7 z!{&5*7CWn(xhIEvseex>Bph>|-z~3zp^Sa+HTmukR0lJBbpvERbCXSf~+ zIZ;c}w1qxad5>tFua=Z83;nMm&%x=RW}R1RwPAr#0_? z04Dz&b$x@CAR1uW&v}meyZ;AZ{`i3FosX0ALYZ)BB1)cDt==3ZC(}3lSHZiOSiuY&s9ur(90VQBy?kdx^YH<>`@wPRr74U8GO7jhK_+{L);@fKRPY zhm+~`(tH=LZ+(QAvnAE?!r=cAV7}lyaeN~%?`*cb9Aew;m~-Re`9pYxw_tN*z{J(J z{ceR1bks1n>iWJ*?}aswvh+kDWkP-b%WpJe=8y6vC_gMo9^F8NZXDD0Oz%LJKg6yb z%pog2l=}t%#JG2*SI(Kkr2eTXF0BFSX{vr&E3rY9^tkZp0ZZQ|SyX_~vnEvZtKvX{ zPZNW9z1nY@;oB6${HO!@ViX;_BBA0J1?NTad zW|K_(C8@Pl@}!`g&2P{(2hQH#=+4A!wI~rKKVJ{HtTObNZd$4~!o$VGsg6SE;K#En zk#&6RZA=SHB?eCa1n(y32Dw7tbIbsMLI?v1U6~?=xhI^B=Opi~>6k4)Dho5e1TbVE z<7Z>>O$m)P3Rcfx?e3f*SX6iO%?g4S`iDuHV|w}7WRBnF*EMG_z0 z3ZK5mLz+sLvVsq3;D3|1>BDd60p(vJsh|CN{VbO4c_g3;hRC}hL*iHi2bS^CzUoFx z_-?uzzn6gsGn7XfNOBhseq9)G#sv^8*xHA}L%Tz7VN^jq@%fTb=56E3h@Xwf8>dd9 zZ7KX-@pus+S2W_4H1OC82>yycGg$<;mr9V#fu;BCY<{ILmbO6_E0Q9zF#*cGOhuE$ zv45psk~2H=lxQ`8mOV0gWs@JREhPZv@hrtaUKJV3jU2Y>MAzSJ06=GBU92OODfA)__ z?6C5R2(}LRL~l-S^jj5R)oX-&GEmPLpI$N`6$0d|era6}E;IR`fEMFODKdQ;SVWx)GB z+LaEto7v>7J?JlsIzHeEXc`Rc8w{Em4Bj3LxfuL_Jrqhl1Y;Ts;~ff@9fE5QMOY6- zdJjdxhY-m_$l{^L=%yj|j8AFZO)=XF0!58+*uyCD;e-qB7f(R1o)0JA^YXs|vV|i> zwT9D=xRZE+=`%ns8O4klMVaS~ITwl~B79rs!+A_2>`9GPH$#QmBYztdQx+Rb;3MV9 zBNc>5>7tP;!bW*AV2wB8?YEJ-rq{|?qo0^Y8+b<>Wk+!cMw+aZ>8w6C!$(__N52%0 zwl$5m_l*XE$COejn=B7*hUku0kv=t44UJ=4oz9x^= zDhQ+$jEyvnj$Ys!eN6nmJ?7Tl(jXXvzLRd&@2yoAoMdYaw?d4y#=^;n@&kYq*vLU+ z5aP*q-zR;KFTS*XbV6_)F&%LO(fd*;&aTw-T12<1G8`B+Ef=mYgu3ZpOK#4HK_Oa& zB8G%^`~`A3rIG>P_q@MEg4-gvg`c0N6d56YUC2e3OC8Pdm1Bjz{FSI`2_za3;TBEe zg&_DKz}iD$TRNaBjYyO`bR`D(&R<{wi@r%2;gk%VT=^QlA#>;4{KW{^t_=LjIneP& z8jw#9FVC~i8Frx z{P@cVaqyh(TL3*^DEGxh=O8lsoEM1ZG5RXyKneul4zYVbmFX^l*PzCm!vFV=#J&OI zp(^)p%(P^-)+xrbXhF$!sW6)jIi^Q(H!-nV1g9#0!Kt z6O&dW$W(gj&c-6@ry+^7jFPPs)%^+S@4~64V8H39=hK9;vo?RFy4tIt*v}E>vlR;I zhI|Mb)uPDI>e-`N`LIE&j?bLfl8;}DqXcOmj*8z2BY65+U#|cTvp_=HGT*Wgc9y_^ zV4#U12jHfJpPU5-oWbt-Cc5&?Vn^2qOIAu0Db0(Jfycqj`>XQh#Kce`!H7pi=XPas z1mlnl%%0(6N?&vYLXA$}gg`DWtU|MxJM0)ZL zk|Zu!6d9shHMC=v>Q+CK<-Y|8N;Up30P{=9a@*(S_WtFsv&$Vj%bl0YT{tV<6e~T< zD}yNgBmF)rgAptL3Wrfc!*vRwL%}NryRmV=|ety7YN<`7>ixAG$CN^jNz+5_zVyMzN;!200sy=zF@h z9gJwvUfcCq>*ZbBOEHZyU;FiW?XZ9CXm;&*XYJ&2?G$JIjAH$qdHpxv`X9OV3!U{# z3YFDjBw4ra)yvhUFC4d@*Z=Y@|L8Sqe(^m>1`(|M{X;ltCZA}eTy?n#QBje1xoj4B z|J@yb{N4z-wcYyjMLce^^05j6j~{WOf;cq>Eh!`Sd(9)7-rZ*lKNti5^;LP|r~|<2 z0EUSqwv_W};2^^$sjmWY1f|0#VW*zd&gH_cZ=f&_U@#9*WOg%@S2I&lGkcN-?ym_$ zXhx)K#Bx;rDNCm)lh9|6VFXIhpS_T$pOEMsJ6jF6ctC5O1- zQfA_ZOWRgLBS5|33AJ4t;qoWdy{~dcCz{K?se1vX|3xnc_JZd2f_L{quJ%6Q?uSy^ zAIh!4`1iw86Ti72!+hT?$=L&)Rvx2RcK7A*qt(DMouH4kiHJy0tSc~1ml8E#H}QZN zQALf45hpjlNlD$eaWENw0H&7WXUqYkIzgGPpe#yYwk;?p6%r(?*0k~97M7? z)(biUzz57Mze;U^Q*uMat`62xtL9Z}>E`>0A;)4@R4vPTNon+4L}!gHsIu0v9m ztx&hGL^$JS92J*4r?eeq<~uaH9u=RhB7kd=)<@&=;7=bx?Yl?G3da#=PSNHLW;Z6W zD){ZC_=%Lr+40wKgz4jQ9B^Rnkf-}_KJGYq!)59UzupwIEl;`Q%Ji}vxa$kr^L2^N zKi=m*iKBCY*Pe8YxgsN7yN^x|DaXzzPk-~D{*gbu&^^7hJ-zZhy^cJ+Nj<$SJ?+xO zr3l?UZ9Bc^x4(WszH0{El#pT!;$yxA^4X_Pp`Ty-L0Ec-pc>>VTU~%Ja1Yw!yjHfMATCRpTNc(onTn|v_OlF5(Xj9Gp|Vo zFaA?aIAVR3!7CyVxR_0dEiVWZ1B(2ZgPVKLvUybv6V0&^VhbbQs$48-dqS5(m0rWf-`YmQrp$x2a0#bGgtG?f)&b3G?w>X~!(&-{T2neQjq(m@uE|dBP&1PrJ zay$b0+QS5HEZxYbHm1JhO(_g19jmb>2V3)e}i z94}b88QuyN3}xe=kcM)vEVb*2lol=aZ!w?qhv)mkB(K8R|3(7-UX~+l;XC3T=U0n& zu>JS3`hluAfJWAJ7J1DqnB{DeCA@qK-ntb%Wa*;!R~iqrzGT@ss0mlUjteI7 z)?Y=w>~WZmWV1RN{&|8eaXuQ&@9QxETZrsliq!v?vSGRY^KTVuuBk3rK=UcBn-#}H zj)o6#uIC}VEZF12+3~AQ!CdWoqZwh}nJudB%QTP#E zcbI7u$*kODW7(JzjLrt`)`~g*JHWhPpDEWYbIg8zHY_Owtk7A(db^R$AtXiU{N_Sk zj)H=HLbNL3xF;Woq`Tz#zu0@vps4n)+jn)KY4Rc?vB?cI&;-e$yU9695JV6pNfrZw z*yJcSNDvUolA|b~fK5^mL4pAl6(ooWK~WI{=fC%U-g}-?_j%8)y5Za9lU7+)DfAp` z%(2FAUX(ak9kG1!z7@E^)yr7Aw}17iL$h~AEaz^SfJ~iR!O1k+u&jserX$Y(Ucgk` z|9~Wj^}t@9<$O2@3trc`9)~2YBzD(ruvs@`tDdvY!O(;xj`JG`OThZ^?AWD!(AcH?QkMJ(zq zBM#c(e3+6T9@4&;*xan{Wl~D0dCbw>kA_q@9E~eeP)E)4EG>l@5RAwI2s(};B3^f@<3qii9;1QHZtT~rc zwtCz%(G0=%r%c&`rz=f=Yfo1xBs9zv2%6k{ousHQfpk!&n_J~3=x0151AYlE+4iCy_}z3JY=kLTe>t( zb?=^BlP8Zzg#mYT<%kQp#Sri+VtC$DB6LIv#if%uF8CTI!oq$ z)HUZ|rN95tfiHT|WHsTC{Z9_X{@y?Dlcj(1iR=RPJl!w1U*oxS_%n@#$O(PT7bl*d z)qENAzF+gz*`L2P7ZX?vw3bqY;gd~87bO% z@Y95$;ok3zixF$zzP`V0xL18)#t=f`>9@Rr~ zs4%_J&A}Yio+P?0XizeAizBZ+Sw>Hs*{Obrx3fJ(Df{_vFZ}SnS)%&&dU5vS^}`~c z+tUnwiNi_w5pk}LbW=SEu8Z{}(yAR9ws8_X)%a04$Bs;wJ_){S^`nYW9a&z#Bm~Op zS$Vq@vi+@>L|2X@-zWQ@7g8B}Ue(#5_3n<&g}2z~srtM6%*NuYT<693RWHx7MoA>_ zSc?9rA2TWR_f1*JmaNT7mcnJ_7OqrH`8}3Snnyzyep$;J#?Y+2I`f%B=xhtbL=3Km zJ8W+~+2I*3O`ttjF82pJ8DBAxupZ?ragd1-dz|JWDwWSe9#+oq=zN0M{@VEsr)2L?@ss*(m$sG69szwNUI&eM)7fseV;FLWj6 zCJ-bKJ^NMn+1T4Qspg`@p$c=kD-w2B7gdY6D`f+5!L*b_X7LyTQ+pI@`ux-s57NRH zbtHx6j1H7=L(o|v7u&>a5(lbxnB;|XDwasWj(-@lIgmJ!$~STqn~NuN1<~Y~YA%As zkh0jBi?$)3&8B4Omic@~R@Vp%sIR(91^UPn`%86-NJxE`O7kY_kHTda`KV~KlSVeZ02 zDNk(Xg|wy9%`zO_3#2|shVkC>Ki2uAAnv3D>7co%To$eF&;I(KUGKrmk@HU*!!X=( zB}wSSk__4j+=3nhnKjxz(a#9yFufj_{;svE=A&Ao$~UOWw@ zR$w?~DOKJskY_dSwsd*~(-F1=9(DQm@?#d5sDp|5>G;W`xkgC`XtI$}H;D}!q^e`Z ziGHVUVN4Ir*fK-U1d$O`O*ebOL4Eg?!JAHoA@;Hs!PmV%vLdSAE(IXV+q$ zz|nkU?js-cUfsOR*^+a9F-XIXoRf^0es(p#2lqzY{1AfVkhpzX`bWNbrfaj`1DnSN z$fu7i8HU96VEjEK6P%BrR&=P=lLcqfbJ!{33DfHnJe&s#bJU+CtsEaf_BNBJn_qSL z1&$bNOyzx9=sn0=-*41AcjS{Z-1&`JE~yN5X4lXCo|8HQ*>7K1bj!7TWc8r1(6h;l zx5@p{I~Nvr0;SV4FfhmsHl7Fq%=AQzl;-?r;!2CAwPXTjI7y9!@lfF0kDdCmQBIdj1AorCwNkX1W z?5--qs6U$-$24ClpBZ@A43s87r54(_ORBT@cnaL z;N8e-X=O}cNIcKwCdM_@z21O(0r_8N6cIjOw5Kn&Uj4;c6Kf2hbil}S=EC~d_q$K#l*)HH-lS?B*BzK{Jz4DAuWv0@%J*32d+(RC za(mA`Ug%eU+5fTslc-qi;vd_5I)^mYWNEO0IecflbT4>wt3$7mSS~v5H1I_*0T*N$ zCNsk=#a}C-AFK80$0KEQ5;9WXL_Lu7=-R+Hb0(iNLx84?qVu=AX1vyYeY$M@ihTVA z=8vImzv5O!0w$lhelAk}&1HIScgnwyuPOZZvEkn*ea-qFcHREH^<8nth1>AQ+y&Bh z)9v2~zuP~T+YEOmZvXjIef#$pWrJVuZ}0utGlVb|5IYXRSAh`qzL%ZLT(b|U;l1!7 zfz^1ip@$QSptFCVi`bwstaJ!lfQnyyqE3afD;nwtq4WtvL`CB`3*#9acEI~lI*#dv z1&Tn2E>TG}i%_#S*?UN8P>>a~^l+>K%C{6?-6K`5<2abbxm#J~8@Loik`)H?$Z)0U z7?)zPDKBjhQqSjljbSvNOO3Ib!y_2cPTW^3i~Gpv>4TkMm%A#8XsE#92vBU-w=^J9GpHS=j09tY|@DI>MU5VrwRyILJ$)a70wd>PS*< zIFRXs*f3tX?8P<&NpoIY^rjD6+;Z!IVQk(b9cKDz-VxC*$XM_xgBFsD6+y-g^9v_~ zzrAmL5!&WuJVQMZ;?0PZV#F|WN8n(Y8avYzu64u_Z4!E95c}AIC)?W>LD#UCQph>t z$Ck{N?R|=AgfqJWz4DOh@)7?N#**k|D1ySoGsHlk^9m$0vC^573)wph86$9(tCX_jZE#xQHNcb8Q`!+tonv!^4=L>qz@sdztr%7DGE2Ic2@iQ_osv-~x1>Nx@ zSIF2Z(SvWS9V>j}cz+Npe@S?=k`ytF)e(Sts^nc(uxCcGsSM>p|>7Kvpi5eES zc_-l^h&V*!oAVBtV?2uq;ZqeF z%+UFUIn!t3SX(}bl%Qn^C25bstRxQgKr-F0f$Q8gA) zx$`B%3NLCgL+1om)A__9VR9-n$pS%TR}aEuLs)#nL?AfeVqV1Q@2G_|kU(2ELMp-} z|0{A3E17vjE`c4A9SLGiM$4GuA?v^t_J;Dt5n1SnQ096b^N0yom56aeCNqg;`%WdF zMCFSrNVv+8NFs}tunQuIF0Y9t>He7If|Z8TmiU-I4Gp#emCU53=z0=8lP%&I_RK+1 z=3;YZY9fLvuLa>=zGE|&ua!w*vK*%1E15#%#f04@;^i4r-(AQHrd^TmavWhAp>ltC zMwuQoN0xH?Ed@MWgwkh;DdN{m6ndjfCybY{qz0>waZZeT@4#MDY%vVw%|ku&Tl3ZD9CEm>KeJjXsHxt{!l3z|>;I4_D8ccX~GBLp5Q+!wmg zibnEK#c&iUa|G*R%ae_kiA=?(F3Ftgp(?_A=moEjmcJ-V%*Ok8ApRBOmzH4@j$vjr z62dKEO|;drJ%OKfgpUWB8Zv%cqI9n+%p_v)sUZ1%RIBCvR=&#+zcrNyMiW0Inl319 zpOs+zMg%wj^MibBzJoYd9> zrO1(YLJHU>vCXj&0qGQsLH&ASZ_*&s7X)l^S?RFqYtV9SS*e z73LWh>>e5FK_E)(->>L-(8|(6-{05K&~QKK&RT$zc1Ike!aNRp+GuJig9fdOlj%V> z3mYp#6BF%V{{z0>_NJyf2b@fdC|YW23O-(T4t7R5Iw}EvPIk6rb2D8EMN>{*D#+j2 z&&S@>SljJ@nU*Q!`r=(ry_Y@gkya3Dmc^10$cSIfc)1=^4Tg{0w2 z{i_xndO=8kZAntw0Cay;ApsR%}UflAKbk1!B3o~6+ZHcp2<@^!> z8(fo2)*vWL*jgJpI~WrP(&`$DM4|#{((CA|Dk?XF1?Pngt@V!{Jq(KDWQzWw6CPF`=5Fqe ze#J$`2h70_>;I=;|82=T@Cgmk~&mMG!Z z^y9_9uk8L^@@D28CZzsX$vbqGFlZN~9F-G%1{XZr?)%r3T@AlUT%@FN$gS>Ae_z=( z=n#bNvZ(kR5zhT#yuxzcNY=Lh=3gam{u8a>%I@DK@9=xE^zn7^;=nwrnV6TWs&2Xp<$l6N4DDF5$Q zcB^d*tfT%PT-klV_an2D=-A_zwlSdJB@jph0+iKO5TFI<& zIs{7IFL){THHtq)o}0DQebM#MEx?BRk)el8*JJOrey%45vHD%}fmY2( zqss!rtoDAW&~J0>DhVSVoVY=RP4L3r3wt(meD1f!b`{|{5#G_s?FFRN3LP?L^`k@S zU$#%Lh}jS!q|zY+8WN=?H3ad%VP^t8r339XP2@zO7{F4a(pUp z1D&v8&nDUvvAb1Pd&QpVR9Ui*aqDmnjRn=^t-Gq{5U&5Jw7cf)W~HRELFheQUiv=P znzs1eV+4cmy^jKhXHzBVp*OSi;xOg4rXgxWoKx9; zOvKV2IsCO%{Abppsel{2gur3Y_s4#J)*RrvQ5(lmIc*B%=R)a~5HVYvHGI+FnuswI z>NNBlgF}k3E~d%UlgWEk#9lEa93w*lm9t(G;*+XEqRi?1*hEH-Uz=%y^fGcpy-{L> zH-oD%l~Xhl79d4JESHivxTdKIo)Ne}0SJqwj3|h9;4WZ&1x#qL(#Z%&d7aLiTVb*< z8612p_T*?2Fy_|bQp9_j#~XZR^yra@B+;od`?XU=c<7k@+a=_Uc1RpP7R9qk6%xgb z?SrL|4!;tFH6R@>7>z`=lUM?AcNq0>2pIu$)?^}8x@!?7DM00bDV9!r$*{#3o!hY; zLFB8%2?Y64@W!G7t4S|UW5x0!aqZSrLXbA(!7jx~Ob^hD)S@DDI`c7z7qAHQ$zXP((LEyb}l$LBD}tg z6>>z;uLT@P5AcYk{fw``jW}yS-o>wH_We444!^?_1TM7LVp~;Quh+iBHYWHFEnQrZsJFAi4?E|fvq~B+dSWmD&fIHhGKXtzUZD$=wrf&PLet#@dn+^$z8zP zbO(&yJp+-@CdsB8kK=4Kf-z5^@n{oXDkk%80tx_Q#8Ea8CYT7wUM9vc%?h=MIO}af zhCMbIp&s=JsX#MXb9bk2M*Om{$ox4}1j2jUD4D8zZaUe}n97b%AGLm6Xga$q1tJmg!i zHEZNgVBpC^Y#6nOHd{N*WR zfKve83OFfXC4l)-QIU6cGA640Wk!H?0;UOA9%W@b@Ik;3c^|R`PDBGxuMU_2Uk3b+ znW-*tQucO6z~TWD2mGh{ensHmfc3MqFaW0DAH)|h1#*fq;W=S|<^{}!f#H4wCtDvc z+vKL?;ItsJjiG^sHZXv|^Z^o>I!X8N=|f>n4ZsU{de~|k5gm`(1A-UugMa}B?0}7z zC4hCgQsaQ{172XihLVXB#rTjrfP?{j7XX6+vj*%&?3FW0M0`|d2XGBhg?IqI0^qKL z5v~DgvVaiQ*i<_>cq=mt7zc01n3Jw97HexufbtboU8!kC@hvI;g6r;J5(33m6vQJAi|$eyNz&C13nN z0nony7Yb0I06Gg;Apq6_-@pI=>;J9)f&bvSQnVs?l0Uasjb{B{d9G_$C;t;zOZmv) zx;d`227tBx@my}#g8vKfqdUy74F$QR|-erQvh{ z)|#*JTNtHDT3z|ebCsK&&TEM6Fg>3}Q_A`qtTk8faVJKr_Vq%Rx#M4+>&D0DlErv5 z>*Bo^y-krUVzzxfTg#N&&MO3(wGnZw+NvCQuD5unVvm2oT6by%_TnO)rbZVR=l=0r z-#3>h$}jxdPf?cc0O9rDV69y^)1~3!1(mcU=D)#OVFBfbBZFL*QiV^h zS30k_o6MyB4c2mH8$x6f{@rsepVwNe|8G5)UkbulZZ+SL*?YCX&FjZXq36k7kpgei z;?+woXM)y>1E2B9T=L5){tK*S@wCMGMse+B;JNA!N81L;7RF-a*DH>Ebzg#j(=Adn8|tgr(bI#~7gOcsFUuJh1VPAj1D8rIC>w>s=z(n&|>V3=-Ro4rq=bZ!Qe$p_2TrK>*eY>TYaAA{21% z-kY;uN=AaWrqRPUKHOkg?I@L*CZXfgS@N%w3OqOmm?|q0Z$XS92O97vn(z?1hqm4$ z;G;_$W-haG#1hDa%~1jFfTc#n_m5A8ltu`@ui#Y;JcQv8X&8w)-e^G3P!_qlhU_V$XF%F7^g zI#S-08md}>WE1#D$zU)9fRbqfCDVXX!Ea>o5@2um&jJx_uYkY+4FkJEux5q zXgxhuu-Xd_IB-1N6O4Xkq8v~-1w|P^cLd`ba1OzcO-eosc2$6&2zFa4Y6^Hc33YV> zSiphJ*O9|^K=5>RRe`*L?IF-Vup9(p`TqS1*coZ*r~(yfZn+9}Nh2e-fliRfdO!&P zkPsjT0say23EMlG0Ok>J3v(`H07hbQaXvs40zM&N7{;AFbv!yWD?8P}5!~0_FRvgI z8+Q_Hto;1EVq&5L0*^#S9kUJ%N}Qgyx21S^900ngqN%8BrX7?L03;K@5`B&wvbQCH ztr=LK0i^-Ew*4gS182|7&fW(rGZPmJAdn`9JrWxdPZgg80!g;kw?0Gxlt`xln}67t z#*So{W6nVHqKok!QSM+t22>MhUgk}Cum!U}VpBS+P*rsquoD4a@!zK~;~o`COiE5k zO-s+n%*sBWlWBV)?_z#IVbP`HlG4j%SIR3YtEy{iuh!K!G&VK2w6?W(bYAPaextjm z_vWp>{(;-{!J*-i^UR}TYhEiS!YURhmxv;Owo z`wt&CK8-nVe%b!|?fcG;-JidH|Jj33%);jFIHEF!Ti$c5y>d9^Xia~NdB@+A{7T6z z{&lO$HJM;xi_V(yi+DMUeX^>x6GcSddw!;O?1fJS>0Q4(ey#37ImyWZcAi_BsxZGO zf9PI*{b;q#Uz2=)ZJ(WA*e>!ZQ}ClU@8Qfc&F%a1e{auj9g~Kx-QRoMUS`$(?~FvS zK0C>9>R+S$KQa;nDiD+`QN=UVw{!Il=e#CwemywbZd7;W?6d11pZ65sNwq0GxdGN^ zw-#(}eh*n1yQpx=Jg#f&;RG1vQ*AMC5jeqQ9KBx`G4}|aUdQ_^H}Kv1T$0*st2Xo$ z#f;Tj?AP6Kdt;cvzbL==6Iv^%dr3uG4quVd4l!CdhqxpocJ}L8O(-7uPE%Cj4V*kTW0%@=9C+Y0MC3r5`6EAhCC^~4lI508MSI0Ma zFaZ%ENT+kT>)@$O>>r*CG7(fyui_qab_(V5+A=*Cr(|l>WC`+>_=FtD=`Al7QIeM{ zKL1BfF z+-pK+`i}?3moWc)6<;VJQCoXItWmCw79afa`o-jX=`2-JZm;Dj@4V@3%SXp4&7ZZ~ zr4SsaiDIY!{EiXrysL8%e?67>PT_jCQfAxj+0R+4{XYIdV}(g{xAdXh$5zA}uo)r! zM#kx5%zNyD+p<&^jIhH-%}I&HLrlnY?}P2UrVXl8R=bS11HxB5@$?DXXPc900!`)< ziMWL?*@m}60_j}*iYlY&BlPpMeFF4BRuf`YE5vd72^GR$jtlQonw|JuQ^RBvbe&a+ zaJ)-vIktUj%HYGbRMN0w^wVIW(C+Kz7bT?_)JJ|G*$r8PWRn-9aS-z0d#mr~jEefp z8GW*TN3>;qkJET|LQ`q|`H!2S5krw*nqyW^6~+6%TsCJ;VIYn`bzDx|w$!C`4r)~Y z`EtgS9m>~UwBKhhJ=FFv=)%Uzn@|Pzn*&u@UcJRv%?xqx+SsF*w+>=CHBnAf3@Z*H(NM3u zbggVR!c6nU+cxhvk|Iw&oVxLuq0Rf!=dx>?-_?FHO~za}gWEIh5#CFXROk185HF9b z`y{>@v56E#_51e~i?^K~=bHVjv|e{}Cfh%>)MJ`->UM7mF;U7|BI?)o6d4^(-s(;P zdCD9T z_m{)1cg{~kK3S2DgD~1v>Z$a!D}JJk^~GsDz1_F2RMp2t@->5_xr%`immQ?}HSWe+ zsAh!}Uo00jlM^;LQ>}-fAvkCxG_%$l?d#*0rLQvRyHD9A2Xvu-Q&Wr`ce#u|IF!hE zO|v?4F&1`QmQV_a8Fqg7xoCQ%Q0|tG$PSKsU)5z7_3rV>MCXgi?yW z0G@o$qim!3dB6XcmTNW=;&=AUO=9JaseSDk#&eF1WQX3K+`q1Fft@* z1IjK?kXwD%0o3==qX&TKJ3Kr92)fUoKLjG>OVhnefl0$uw@`+yXJ3=9Yv$h1J31rjfiZvh1a z8mB;z0eKY=R&5G$8%JeSw&5W#uK%Hhxie{}ra zyXAjZ!2kWP|4knuYzENB3$)z-8~QkU=kEWakB=TdnSc81KkDP=*607Aj}?PS*njC` z8Z2pf`Ct0@zfYI`8>jP^KK=_K{O?Xj;RyuvkyoJtI353fkS-OzneX=5o4Kd>{07iR z!qQNg0zY5~Q?=ino!}2$1Xf2)SntNB`(IXPjqwHo&6FfkSN0b}_=GnLOr*JAqdus2 zYFgtv6CE_!1mdO1=KVqaSMBCrPTuNnMyDfL;ZScn8Wx9H1t5*?Pj9BHuW>2eM52)M zn#SIu^xo}Hi{%g2yGZZ}q^LS!aWjF0*?2h&(j~(g&Mye#QzYo|5Q?#T)b$k=J@rHo zJE3?AfsjxSIG6yN3LJu%(oM;UC~p!S%RVFn-rhEKNfyeu?CP1w2!pz7PRjc0tjope zKA8$9zvHsC*4&B^8nA?9rhKQ{r5t0v@kbJnJ%S#8VPXa^b=cHYPTED4S(AEEo@P!AJlP$N)?Z1_Su12kGr!NOcV&7!2Sk5-e4~;^oDQ zCm;?6IWIt`gO4@%l!GDh<;zDf67&tU04^P*zyQGx1_=PDgVoL2+9H6CgJ(}bE(c(B z5ITcI7{JH@932cE@SqL&=zt~;9wgh^8al7FfcXJdIv|7v-0}Fkcfl-~ni>O-pJ(Gw zo0yUS)*Xx=Fu=C9-YF={fX_Mrx&s6|Agm7#-6D~7!35gaSO+xp`}gnYJK8KS$AF=g zFf|2m{N<(@ia77`i&DDvRB z7zE9sb+usI1J+7lcxYS$C-{Nr8L;OMdK>^4^|A3# z`{NOT73Baru5DqgsHUi>g0~4j2BxfMW_s+<;DhOirslfn!sGhp+D698Zi!Sd`~dqr zH_u5`UGeSPxTF3CK1cL)tj)rk8h`ytIni^YqN1d-@*qI4-{?LH<}N_mgNdlFO9W~7 zj~_`oMj9Fhs%rbC!N>u-8gS zwF%8S2Ez2)w*$aBi|l@2KSdviLtLCiLxWf8Ww-cqmaT2xAn`wc-rmtk1I+S*!UNjI z64usgfQAlsVu0OVd({)5+3V^K1s@{=Vm)Bz8#$0%sb>Me9uVvQ!KH)Y4fbZwo}CyO zIW{;H47l=OmIHt~SfG{969D=hP}_l$0AX=B5%s?;e`Hwc?Uh4+jl}IG6tFU!c)@6V zhvc9OpXKR=^`S%#1V4wyiWZ=%Cx#Px9LGM_PL}RBTk8XsVWP|+iTNuwx*o9C|9vDj zMoSwtit@uaZ{rn`lt&g1ftl)@hT+H(#kE5L+(>DAi7r9t{hcPpYcP$(-S(n9{s2bC z{9B+;Lt44ahQ-OPSN}6`&l7q6$P%KLBqZJ7f~`&y2hnIs&3?s*(C4M$%U3ny-%|mrejW3!7b=W4d)RnZaxZ#P z?S|)8Zuln?!?PzgXFnCOhwnuhEbgE_&b@l@_wvW(Y66Cz(;->T%fVj+sef8}NI)Q4 zg9ZhwPiLzzv8yj~pzDc?REEmrSuQ6caV!L)owDL2-oKtl?r?yT0NoM)n#376J#zrX zhlLWAD!U|Dc`DLNP4Em*6^UK?)Iyf=(%qGCmtJ$%2pc{|aAZtApf=y>vCHZqpZFlB zqMguvs|CJ?R##%f?lAdNqyG-vb&3!OIDa!S&~(hc_(V4hGeTA{(K@+i2^u7!w@m>x zk2+Gq#%ZX^mNoiaNKb~_5G=CxdyYk^0ET5f1R8sRGOveZ?CLNZI& zt~KPaaQ3)`H7WGG^~zG}-CPU$)W5UV6z&*HvA5z-Hs+)Vs>zu{SR^qK0bxDcp=#t; zL?W}+NM#xy+Fr$;6N{T>M3_e}L?$Az-b@G~(&u4fh2CaTJz6-)m@&pXgxt5kpO=M8 zYY~S;jIv9i5athc)VXvq)8Qu(9G=AM$HuL%O^$7(I5O2*5@8kDZ)bITP9E>Ye$wrJMcmtEA zB2sMxqLUiZS*RqcAU8AgGMQmD0z5q5cd@8%LFm&2%kK)#7lvn$aFBG5B`di#FX{>l zy6@Mic{_DfC!~WY3vP8lbx1WUX{m%QyM6Y}#LLjlnij$BK)O-KXik;Kg z!WtaKfFupYFt}%(g4$8YhgAJ=3wq4atBPTB{*-(-ah$pI^DAC!o>(J zfgfKtGj=Ab_`1hNOV^c+iaOXWb2#O!VS5Tv4ncsSOgI^0L+@mNQZFh=c82+2sj-7Z zO&XRdGbBF7ihat69a)ip3!WztGVh9?FNTjs7E5O0I`4kjiNvYIAtbTWgF-_W!Xuh4 zz+0*#-^f{+Pq@pu^`GWB7Jklej=MrA8XIt%>MYdz<=1aMKB0YLtBB5emB`pxhq9hk zJ;Fm0#nO-oq%h{ftcNJk2n0eN?8NMsNV6n}Z-vvp0|`7i9U@`!6yG3lSZ1zDf6to4 zJL!%p52|e}tJI{I39_sR>RzYl_M%8fNY%p2lifG_#?(^~ujRwFC%Q(>3|T`Z2(tG^ zyc~IoO!KP>6S3Wa?)jC&tbnS1@OHe&ar-~qbfg~<8(?Y9X4*sIlNaZgcl)B=z&Rt; z`*!l;)pSMlcmO_Yr;wrMi#LNf1`)hvXcRSGBlqhn#q+pm<;FF}5n8JF;QDk8-M+XlZDWM@+*() zcck8sj$A6WbhFK|$p08|R#GkW9Fffl}sy zozL(8pj32y)5jiIt$OCiRD(sICRs`A-IKqO)qPWC{kn$r67^);1lx=8LY79$1Famb zOiEwQ-eX*QC+@a4>{aTRW@PcCf0MOYh< z_EcoH7O9xUbE{K+o&E0WBNhCsC`f3LBv>juWRXU5=8IO;q#?=pV zCYm)9kM!JI%l3Gx&g!y%>3m4Y^THRT-sgvJ#l+sY@-b{UTdD8J*3@*)jV^|~H%>+} z#b>=PxuJ3C>Z~gm6MF>Y7B?T+gX0q#%O`txthYdPj0_Zz^Y!Vm$L_GN$6J()tzcTx z=zP~Hi|g09hk_C67hjHZ2cQS!n-E+N50&A`QV%U z)Rgo4%$K}RJom2LxaT_cdC#88;1oD>M=TG88N;1^8;fNPYo&2`iR%d7{#yDaxHz3r zL>q4=;Up6xP$l`|t>T5759@4CK!J-csZBb6Dnxl&kNtk{&2eiUp^G(#7yW&o6p=bQ zzjfXE{W0Q#?okO`3Ch}i8% zg}xP8yC3&F{(Qdlpl?m{!H=ofKVK?1`q$0uc4tffY}ecMzjJ-C`}o$Muk9E5KLptQ zeD?g$x1I<68>b%peEIXwcRI(wW*Uc98~5JMSX#gPbY5Jmvf+>E3-NFH)8ks54)4xC zh+k{7i+lgX;pZZU;ogeo!%B{RrLRa_BCFtHRuYM3issDSeR@HP?JX8EYRtuGt$;sJ zL*Yl7GLR)UPr>NZr!Xq#KBmD0do(MFnQ4Z~fsY4N^+_MOvPe0k3W}{T21!TiLUPL9 zrdzU58B(r7RUC&GL=zLQsmRxM^42-Z5!{kWUUTLQCFV&SL(j+&E+wLulBy8NsE))c zl|*6(UljuRl9o&uOXd?uaTM4mysTm@sfx8niloO7z0sGqQCju{ae;HP7gZJJREr*` z91c7L5mRd=_wPS`QfN*^j9XPglFA{j!sDwVuxyTUNR=N3uO!3N)2T^XaPT_P+f6=9 zKwD@JCl?7bhI%uKkYM6wx+|P<(JjMiKI00WH#*;jyECPzJ21ptiDlRjxujj8W>&2R zpM;>t1yY<`RViX={zM#HqDw0Xm1n)nH_Bm8!|FUU*dWhh&tuBV$yycqi;?*bGJTeZ`tA#y^Ve)vs zO@nybb>5&w=rx!z>7H)mNSevG+yyzujUvwgf$&?8)cUOoCDvHl2veORV z(khTdIH?{zuTfj@Vx%Ce7(V;9=#)F0IE}Hjx9RnTFS-|dLMQrcX}N8Ql5ZY$s12o_LX#sxI7gsTIRCqW%Fm@aquO3YH;BS<(VO8__~4c?qe1O_5kBIOx!O=*246BNKSO)@^Zbf0@!gFJ_0b2XdS| z)2N6__(Mk8*uHWHJfwv2ZQ@6?Mg`%?Xw`shvJ9jl1Me_FyT$Rpi_2bjl|lC9dRknv zrm*}~H#H41;$1n<8Q-0lV)S5n`g}zV)mg+67Q1Qt*}bX^4`tp7%)ykGo0WTMVP2~0B$>%<4;->AME zQ>|@Ti(aZmL)EG}XraYYKB9_NI|d80psCPxxvPG`R|A8q!h#dZ zhCo(w=J^SUryaG9WZN*(^9bBa*m+V=pRyFSw@gQI$f&hyWghB;a zw&b@Tf5gMf6OP(Bf8T_qyAxqEjUH|neo*I^CeLg4oXg`USI3N~0S%Mp4EtK~9)8c| zoTchodYv+elw26yT$67FC1iIj0L7Q_y~kxI%_n3Y60l(R-;}jpAViOMTepK_p~0 zOQYcMiBecdVjA^59qlxYdcK-WPlTi;;rp*`bxc_JH=)X7$sP&GYdq()@q)T|$U}gk zFbK^AC(5)76-(#8+p#&UUi6EHz%?k>Bcx_7#~EIc>^XDw$DqOh5}&B5aMl#jjilr1 zx+%T+=!i^cS~*@de>Vg+rB0%@?vv#vKlCCXK28B_VGeWB)z3|@7ZN8waDM3H-T2l0 zCZyov9wo{9X+2tHF4uAHgB8^BS$?TzPIo=oYCf6QlWaCWE4rn!@8=zZkMbS}1+hJYoJ3N<8_b zjZT`PV1~#vl`=gtA{+ntiSr@YrK5;3yehGPYjrm3Kb02f)e4r+>B8~UB%D#(!m@Tpm zh^(0wkqsiZZjsR<)knU@Sz~@H+ZYj5J<}7%iaC82#?C|cYy_-OMC9^Iv$+7Xq)7A( zLIh>jf>Zt7pdL5$^5-Gqwc`upY?MBI%z%j8p#FlWL&}Nt6eh0yYTRjovheI=y5iD{ zMa7qelDFn3(_UmOxt>l#=e~Y6d0A&z&A?X&g;+itm~p8-Bi{`cw|$|!lydyz%^{0r z!;4q;Y+wr|PASos%Zj%QU#4&DUtBu6sHt>Se(Lh+-zEMwFd-~W(wFCO>k<)_rm?*2 zRi8emxXOum6^IY_vw?rScxk8hhK2og&_FuLYfU76?Ra2{_mvdUnH8DVM{AR&j(b_~ z$qn_>1E~_W>3Ht+aCXRd<28!>isR4ms4I)Rlj~MWaJd2O=hqqY8fD0>V{Ff0+K%o# zOV{BI;vlieb!1!TWg@rKWQWAbPV!87<#LfMzRA3oIkW-`T*io+Tu$k3A!YFT}`Ox zc+dc!u*7GT#45^%m%4mg8~v1ubQX;eD^>S}&S*&TT=PTga_!LxBEgf;e7fOZu>@#=!b}GM~{zU6g|^ zTIJJ>!ADL1t$SKC_XF{a37^0v5rJ@RT<_{p8>lB1{(X$QZ(_6ebPdnP&s^f!=-h0} z+izdSYgNAZip#ufBMQ-$GS>%oLUT#SZ;3_|};I6_uMU^y!Xf zTjh@I=3&F{e{#N{D!*WSoOsSETX~~#6&PNgt^B1vID)~@m3+V+9o2CGEuQmnM~zQK zJttY$Y3+z6EZlRE5v5WDxmcrFpb|s)Lyz~j4Lv03Lfx%e%_@us;<{$l$7jilexJ%9 zQlCXETyq$%yZzR$jS|@S79vtcu0%;6=QM8nB#ZumB=26egX;G_-KQ|^BE@%^9(*_a zn!_grw<*INdmVPW(hnnpsBX}g!!+h1Myi>gjaWMCYUSRARK z%b>a7`xH6@8I5jb9eFrxo{=KL4GS3AvmuZ&Xj^gbYMeGwfbW|)uDW`VAAOZokK~OQ z#X)>6 zgN+IvucbDly&pC(6bD~tag?&S$WT;cZ50(dc*FHo*vFFX)X!!oi z`05(cFXW$R>ks-WG!_H9L?EiP{Cjg-Wi(!dIY)q1!t^bo=oCd3mb`#$?KLxz|9 zun~Ps{K2qc0uF7f1!d~8Q&$R6p&f})LlHREBV1z|3n!Nq`yRYAs=)o;tV`dm*-)9(W_Uv1OAv@U#*{LXmQ2b|XjkQ79tFcqEg;Z#) zNn{tIhO(7xMbYB%ygld5IrrzB7r*=d-q&?WQerXDri(1_B?Ox{h7B^8e9R^N0)nZj z5Et#7MCtD8f7*GT+^CxIhCDS(Fd}Q}X6paWSh)Q{^d;v6jYDUz*<9)v1f)wnAYsy^ z1?`Q#oNEu~3OZXDyUAv%b|zi6yAZ>D`P>i;nc z8kCrXC%avH%*x2%t5+TcY)ePe2u)~`28_>#1}juB z|9UOWyIfS!AQ4Z&-GhM}mU5r#>jVR;eC4gG?m;wK?a3@n(HT}#S)OvAnf5Kguc{Cz zmXQQ*)%{+0!RTTUxFg?=GZ9qiDX$8yDJ+_4llI~Tb6+|KqAV~*Ct$xGwHir0nx#UD z7im-HpFEEMG4sy(>Fh9{K5^9Pz!JZr!q{eijyUY(;Y^_~n>R zm6Y|YnVQ6#+_rKT08(DPw!(bQ6*gVoi+40m$opa%!~K$mE0D6wQ8PyACCW^rTJ+KfjaKBt4K~} zfIkKP-`^(ELXKfYx-dLx%+=pOb=G`LXdNZ_J453ZcPZz?p}^i!I!Hk&Q5ua!9JyB; zL<9&E1faM&P17PWjNIJqCq?>@OLZ$ zYov(>ZjRTC-nF}VdtqVYVOmkmpKFpHe=oV{nCZrgN#4u1{3`9OEl|sfuY|sqDv!{j zwklLS#u=YOlpEE#i}lwYqvC?jE_2WMJE_aGg^_`xYuGm`r^Vh1!CbZ>q%YF=WW;if z`bX|Q(F9~5Q1jX&FgFD?e6nuE*O$Wk%#oA(u8AU<7QY3?7VJWg#9O&2hh1zLoMMLjQf= zWfuLf-yc}X1trUG>T16Eps@>K&FQ!!jZo@ghDxH3FCx$MB1)O#%4wsY2|nTcZ1Vaw z+(zv9alt{%^=igbaEPBCslAi0_%; zEkVb0S&C+tj@fs0N(1?X7x7Y5QFeKJJ5vL}6dv-c}!WBzl#P032tQD z*T~SDSq)W(b>}Vil2rwPr=F_7>O4m>Cw5kNmu%ALAE?7w3g;z(;(6%Lskw{K9;m@E zNiz!KB%%PEK#(7 z?}fLGXu3fr7fxVDT{eZ++1B*fV-q7pQ6Jfl35=JAZ~u!=$36iGQB&Ug@Hb899)3Rq zYd)blfP`EiP)f2Mj#GedI@R?(-42{_voin+e zD#fWvEp(oe9@)=&A31wY55FYW=r8qV_$WUa6HDdTglVRupMI@_QPN(ov-{4TR2FPJ z%-?>B!chnQkArkwNj|5YgsVY(dx4_oDgx1vzi5~^frQqQ=NRnachR>d=G)XERxfuY zprJEinS#;@(Qv)8lUV!jR!vG;R{?nj3(HwoG^p#m$N{*lcg-|{E{dnw2csOPs*$wL zjZf??02$_@f4)QY@?EV>A z{}{|9CmQg%)8HPA^88_(NIQGNT(6ukezo3z{0Jl;lzFVblV1{RnsldFmqJ)bH6))j z+M&kd^duHieM-S#T8C*O1)}Jt)d3symNQ9!y_OR)GpLomr8`IwDnG)ex_FT+1t{JG zi0U3wa^0&Nc+yQ(SmS){l#6MlpSen~RuPi-M9(%#GKnZON!T$11Lma*&npD`ivFA> z^Sw-_45j?ZC=ePfgpz!T_hmVWWlC@AO1gvasr7P{R(JEe zEyRND3&1?2r&)Z~Q+)Do!rBl|EQ`Y3cw<`|Te%^p@`&*LQ?U6S8EJSTnkoG4e*}#dv#0VF6jBF^v&1#*%ES@pS}NX*)Is z{2hGGIz5J385=7kvy3T@x7&gT$JkKT_E_NA>2YrVah}I@9P;C*-oa&#@=^dAI z?1KemLinHx+>^=@I*Jl-C5g#n6IpVt<)nI~eTcF>6+Wp^IjMSYOxr^eP6aG>WOer^ z&)mJM_syOlF=eRcaBTL3q>D?)_$|>{KDU1Fo%jqerl_~4}DI2C~ zTkh#|64Q2S)Aq*G4vy1~{?ks8)6U7$E_bJ0E2rIBr_c9KyH8JhtW10EPhVh~@#3EG zmYDHToAEWC@pGK<_n!#}!Hbe+Adyb4o&8hoU_`;>m@NdcE;Btg;=L!&+X!5AOuIbd zl+AGZaPu*bggRn==88vE6gP#RKsvdL2zs$_=iOAz%yW)Nf>fH35nyd1Z>i%?^TAn1H`SQ7jlAoi`Tbdh*&2jaeUn-d91~BfrUw?at)(-+qa5f0OfW z{02GE%BpAI?NtK4>akVzxARrXr#h4tcB56W_g$FjQxITJL$}MZ^XE82)EW6xX>&AyM;gqGP5yQF z0-52(zC{5z0H-N8RuYI=(-{%&1>*r4TfI=g*;KKQ5FS8G8VqZb6r+-vHHR>(d_3wf z$SRtb*pWwUr3N&5#U-!_rT82V zEii6+XtO1P?AMhqV3&V8&bOK|viBQKZMo(8x3Xk0#+bZ72bSWJ0AA!1ft3N$=YQz2 z#KV(nly`bW$lI$t^94y$;mOt@%evnjWC@J`% zk9>&(BeqqKN?`&h&1K~o%Y%@~KTM=w)Rcc}jzSEYNIO{8^X^HY1n`22X)c|9L2|GJ z;OeeEf>IZSP@w3<527$w-XovUk|vlUJ`@~J6MG?ZTJNXfp$@;QD@`d2Bgso8CX7i0hkp+GLmV~GFhE* zSxuN-pMeF%P5b_%fKy}Ef)tFsqflgQK!nBmvl8

o1jU)UOt6GmRvs8eZ?Vpaz+M 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

    w?DXxyJA9 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

    oDp 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

    L2NE z0PaPgRdYjwmM|Z*MmBN3kHm<=JYofba4=vvj*_8-nGgw0P$d)xlz|;E0`5nEM=io9 zW}-Pw-$VSt!BC75&8P)hg7OjUnhflqCG65eaQI;`g!28qX6y!93^)^~QV~7MA_k9+ zpa71y*#ovLi`=z{CCz7pNI`w!=opHDScXwh2kf~+?8z30nLYO861XHI5>F`h@#Bwm z6(3N`v8xn80mw4w^DF3x0nS4#P^2RII|Fo4V4~*-l$GwI^iNt2ER1?ZkWCAekB6Y% z9?!P|TNH-3LmDLWGvRB+2U8I6{X_8B5(q!wRkK3HM{sm{1AqY9(6A6@X z5HP6O64>J^?h)1}1QrcMD*|H)Eam=L6CRxI9`n!v2jdXzUxpK02C=ma@b~y)7Z5uP z4Nk!dhG{`v9}^6WfW=}z8(adcJIP%5Ba|SC{zH7h<77jlATa}UacC%^KVCHtYSa~B z8C`Nq{!24f)D9k09y)?t#grGZIPkEf)~l4Wi{ufW)P9=O36E4!^VFFishl~f^H-@6 zYpF{(JZUymX{#P-D1`r9aKHl60_bB9NCrIxEd=-s^f3^}K;r_H3|w&dr;=$Is5u0A z=$U9Lt}fu1LSz(>)qrKCjRvI3H(h9+MUE4~+ZbTk1O4O~DdEXo1mTSQk2 z=x;SOh0V=nptgZz1fm?MWT2QiMFp&~GJ(PtR})!XT?DEfs6bvRVc@icZd5o>bqk?EK=d^S`@Cg3$gr|Nr$sDZABQ=O6Pw4V3i^J(?GXU;|L^*q0PdeYgo@Mt4kA{!_#I4YmiMO* zH-Cr1LTH!6s1hxf|McN<1Y`BzKBQfV;`rN#>v=1G`fw!%4yFV8ki>HJPam!#<77Gi z1fn?I+TTD-&@}rKh^|{}|HnYwNOfP&-vIpn)8Ae^OnH9ykz4_n^W{Jflk?Si7}?d`&{F8ZCK$|LV?48fqcQakgJ5SqQ{BqwYzF6?S*t=LnU@~7W1wDFq`8$lJ z1{WHV47^|XL_5B;H08R#^Ut=QU!0i**NV6L9l2cCz4FkIl3SF(*T=`e^^HWOQ; zr;ViUFqkze6W3g_{mJZM2=_qd1Gk=bitEErIBpg+6mb4ej>05mvj{)+bWrmig)2q@ z&R?>VUi&CQ^Iy*YzcT-KL?~PnVO^YWL^0k)y%3wp!{hBcigxFKkjs@znAv9#_zZl7 zVM@i4rnJR2z^Q16wb~g;mt!K9P+pe7u%z0u(84oTX&ALc5_xNwjZ z>vt%TdnXRzk*u&N5rJq1I(yBR0pkigRQ51*Vv5lL<#-j6ja>`~`3HHhb_Rh8RE&?Q zd`M=1h~Ufy9sK+-!b|>n`t|C@5w#*hpU?<1P%(fy0v>C&jvxdj7!WZMC?E!oq3Sb1 z@FVk}h~>8QuW%4J0}J~@+$j_WqN98@f|aPeoE5^F|C;E7@^<37J^$>s}3vAnfIw z>9SVACXir;uu(3kXX{0j0ZxKzTmA@w{=_*J@)a93Clh&?PyIXsQbf{LD3p==yk#4w zgs`nB2*z;UV5KG$HBO|)-SJ?ZcUr?;jo8f=LtF5J#;(#sknLHQo&ej7WK{gapFyIA z#g8-{g8zpt{lGNWaI1{1R?t2y>8JS@;hOU|px z-WS{45g}%0&#S9bZ5i$R=VrG_NE+An?DPrV&Oexb*xATL*_aMkm45E{0KxuL;(_9%pL!j@2+c-T-uiW!6}Oe|C-^}Vtk7xjI$rLaLh z{U+??#=zK?7pKV*_g%u^sDYB_kSGbXn&;qWtfEK~@)QVo@k3i!tPouyEbLsot+g?=-uZrix!fRzGIKTL-t;|1;lsw8IgjC-L#K2UU2LI^FC*Ek9BBjs*kU_hMl*#qR#oi;M~g3O zs@e>_#Hlz;_v8sd(|r|X0F#X{w0gt-o zy?0(Wb4w3uYP;q39g}b7H|1;UrU&<3>u-J?M%OfK$Q^jj-7H)V)ihlU9{AqeEQ0WB zTQKDh1ITWdAPTi@kA@CI_-=ngV`@8Sbdq*+y8*|q8wr&^%_6(olvJo2`!sZ# z!*{o(7*jWqD}Pp?bGNNITsKuSbXMYZw_|``KhrILUXgsaYoSm-J3Vw>U4OS{A5%ZS zA%9Ufcen38T)%KJbkTHk2QdGJB}|3O?l!Xf{~PDuxGAA*He6w(Kf6;>9bQr2|yG(|>>``bs{xp2M&WF4jiD^2`Rk+*M zL0-=cH=WlE-|c%LZEZkHdgR? /dev/null +(( ${+EPOCHSECONDS} )) || zmodload zsh/datetime # Global associative array for internal use typeset -gA ZSHZ +# Fallback utilities in case Zsh lacks zsh/files (as is the case with MobaXterm) +ZSHZ[CHOWN]='chown' +ZSHZ[MV]='mv' +ZSHZ[RM]='rm' +# Try to load zsh/files utilities +if [[ ${builtins[zf_chown]-} != 'defined' || + ${builtins[zf_mv]-} != 'defined' || + ${builtins[zf_rm]-} != 'defined' ]]; then + zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm &> /dev/null +fi +# Use zsh/files, if it is available +[[ ${builtins[zf_chown]-} == 'defined' ]] && ZSHZ[CHOWN]='zf_chown' +[[ ${builtins[zf_mv]-} == 'defined' ]] && ZSHZ[MV]='zf_mv' +[[ ${builtins[zf_rm]-} == 'defined' ]] && ZSHZ[RM]='zf_rm' + + +# Load zsh/system, if necessary +[[ ${modules[zsh/system]-} == 'loaded' ]] || zmodload zsh/system &> /dev/null + # Make sure ZSHZ_EXCLUDE_DIRS has been declared so that other scripts can # simply append to it (( ${+ZSHZ_EXCLUDE_DIRS} )) || typeset -gUa ZSHZ_EXCLUDE_DIRS @@ -145,7 +155,7 @@ is-at-least 5.3.0 && ZSHZ[PRINTV]=1 zshz() { # Don't use `emulate -L zsh' - it breaks PUSHD_IGNORE_DUPS - setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB + setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB UNSET (( ZSHZ_DEBUG )) && setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL local REPLY @@ -277,7 +287,7 @@ zshz() { if (( ret != 0 )); then # Avoid clobbering the datafile if the write to tempfile failed - zf_rm -f "$tempfile" + ${ZSHZ[RM]} -f "$tempfile" return $ret fi @@ -285,16 +295,17 @@ zshz() { owner=${ZSHZ_OWNER:-${_Z_OWNER}} if (( ZSHZ[USE_FLOCK] )); then - zf_mv "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} "$tempfile" "$datafile" 2> /dev/null || ${ZSHZ[RM]} -f "$tempfile" if [[ -n $owner ]]; then - zf_chown ${owner}:"$(id -ng ${owner})" "$datafile" + ${ZSHZ[CHOWN]} ${owner}:"$(id -ng ${owner})" "$datafile" fi else if [[ -n $owner ]]; then - zf_chown "${owner}":"$(id -ng "${owner}")" "$tempfile" + ${ZSHZ[CHOWN]} "${owner}":"$(id -ng "${owner}")" "$tempfile" fi - zf_mv -f "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} -f "$tempfile" "$datafile" 2> /dev/null || + ${ZSHZ[RM]} -f "$tempfile" fi # In order to make z -x work, we have to disable zsh-z's adding @@ -306,7 +317,7 @@ zshz() { } ############################################################ - # Read the curent datafile contents, update them, "age" them + # Read the current datafile contents, update them, "age" them # when the total rank gets high enough, and print the new # contents to STDOUT. # @@ -884,6 +895,9 @@ alias ${ZSHZ_CMD:-${_Z_CMD:-z}}='zshz 2>&1' # ZSHZ ############################################################ _zshz_precmd() { + # Protect against `setopt NO_UNSET' + setopt LOCAL_OPTIONS UNSET + # Do not add PWD to datafile when in HOME directory, or # if `z -x' has just been run [[ $PWD == "$HOME" ]] || (( ZSHZ[DIRECTORY_REMOVED] )) && return @@ -931,7 +945,7 @@ add-zsh-hook chpwd _zshz_chpwd # Completion ############################################################ -# Standarized $0 handling +# Standardized $0 handling # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" @@ -958,7 +972,7 @@ ZSHZ[FUNCTIONS]='_zshz_usage # Enable WARN_NESTED_VAR for functions listed in # ZSHZ[FUNCTIONS] ############################################################ -(( ZSHZ_DEBUG )) && () { +(( ${+ZSHZ_DEBUG} )) && () { if is-at-least 5.4.0; then local x for x in ${=ZSHZ[FUNCTIONS]}; do From fa770f9678477febe0ed99566d9f3331f3714eca Mon Sep 17 00:00:00 2001 From: Jordan Galby Date: Sun, 31 Dec 2023 11:17:37 +0100 Subject: [PATCH 131/212] fix(clipboard): remove clippaste additional newline on wayland (#12140) So clippaste behaves the same as on X11 (xsel, xclip). --- lib/clipboard.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 4b37abc9bab4e..5d149f0562981 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -62,7 +62,7 @@ function detect-clipboard() { function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; } - function clippaste() { wl-paste; } + function clippaste() { wl-paste --no-newline; } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | xsel --clipboard --input; } function clippaste() { xsel --clipboard --output; } From a9b6af5b231227f8ab91f922adc5e0d0a2e6fc08 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 2 Jan 2024 21:01:17 +0100 Subject: [PATCH 132/212] refactor(minikube): standardize completion generation Closes #10763 --- plugins/minikube/minikube.plugin.zsh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/minikube/minikube.plugin.zsh b/plugins/minikube/minikube.plugin.zsh index e87abceaf60cc..0d2737052c0b4 100644 --- a/plugins/minikube/minikube.plugin.zsh +++ b/plugins/minikube/minikube.plugin.zsh @@ -1,13 +1,13 @@ -# Autocompletion for Minikube. -# -if (( $+commands[minikube] )); then - __MINIKUBE_COMPLETION_FILE="${ZSH_CACHE_DIR}/minikube_completion" - - if [[ ! -f $__MINIKUBE_COMPLETION_FILE ]]; then - minikube completion zsh >! $__MINIKUBE_COMPLETION_FILE - fi - - [[ -f $__MINIKUBE_COMPLETION_FILE ]] && source $__MINIKUBE_COMPLETION_FILE +if (( ! $+commands[minikube] )); then + return +fi - unset __MINIKUBE_COMPLETION_FILE +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `minikube`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_minikube" ]]; then + typeset -g -A _comps + autoload -Uz _minikube + _comps[minikube]=_minikube fi + +minikube completion zsh >| "$ZSH_CACHE_DIR/completions/_minikube" &| From b5583a321644218702c4ef588934575f46a2159b Mon Sep 17 00:00:00 2001 From: Jared Allard Date: Wed, 3 Jan 2024 04:02:43 -0800 Subject: [PATCH 133/212] fix(rtx)!: rename `rtx` plugin to `mise` (#12143) BREAKING CHANGE: Rename `rtx` plugin to `mise`. The project swapped name in `v2024.1.0`. Replace references to `rtx` with `mise` while maintaining backwards compatibility for `rtx` installations. Co-authored-by: Carlo Sala --- plugins/mise/README.md | 32 ++++++++++++++++++++++++++++++++ plugins/mise/mise.plugin.zsh | 23 +++++++++++++++++++++++ plugins/rtx/README.md | 30 ------------------------------ plugins/rtx/rtx.plugin.zsh | 20 ++------------------ 4 files changed, 57 insertions(+), 48 deletions(-) create mode 100644 plugins/mise/README.md create mode 100644 plugins/mise/mise.plugin.zsh delete mode 100644 plugins/rtx/README.md diff --git a/plugins/mise/README.md b/plugins/mise/README.md new file mode 100644 index 0000000000000..8ec05aab99bdf --- /dev/null +++ b/plugins/mise/README.md @@ -0,0 +1,32 @@ +# mise + +Adds integration with [mise](https://github.com/jdx/mise) (formerly `rtx`), a runtime executor compatible with +npm, nodenv, pyenv, etc. mise is written in rust and is very fast. 20x-200x faster than asdf. With that being +said, mise is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement. + +## Installation + +1. [Download & install mise](https://github.com/jdx/mise#installation) by running the following: + +```bash +curl https://mise.jdx.dev/install.sh | sh +``` + +2. [Enable mise](https://github.com/jdx/mise#quickstart) by adding it to your `plugins` definition in + `~/.zshrc`. + +```bash +plugins=(mise) +``` + +## Usage + +See the [mise readme](https://github.com/jdx/mise#table-of-contents) for information on how to use mise. Here +are a few examples: + +```bash +mise install node Install the current version specified in .tool-versions/.mise.toml +mise use -g node@system Use system node as global default +mise install node@20.0.0 Install a specific version number +mise use -g node@20 Use node-20.x as global default +``` diff --git a/plugins/mise/mise.plugin.zsh b/plugins/mise/mise.plugin.zsh new file mode 100644 index 0000000000000..1b4d3ae8134e3 --- /dev/null +++ b/plugins/mise/mise.plugin.zsh @@ -0,0 +1,23 @@ +# TODO: 2024-01-03 remove rtx support +local __mise=mise +if (( ! $+commands[mise] )); then + if (( $+commands[rtx] )); then + __mise=rtx + else + return + fi +fi + +# Load mise hooks +eval "$($__mise activate zsh)" + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `mise`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_$__mise" ]]; then + typeset -g -A _comps + autoload -Uz _$__mise + _comps[$__mise]=_$__mise +fi + +# Generate and load mise completion +$__mise completion zsh >| "$ZSH_CACHE_DIR/completions/_$__mise" &| diff --git a/plugins/rtx/README.md b/plugins/rtx/README.md deleted file mode 100644 index c6436d3a7fb0f..0000000000000 --- a/plugins/rtx/README.md +++ /dev/null @@ -1,30 +0,0 @@ -## rtx - - -Adds integration with [rtx](https://github.com/jdx/rtx), a runtime executor compatible with npm, nodenv, pyenv, etc. rtx is written in rust and is very fast. 20x-200x faster than asdf. With that being said, rtx is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement. - -### Installation - -1. [Download & install rtx](https://github.com/jdx/rtx#installation) by running the following: - - ``` - curl https://rtx.pub/install.sh | sh - ``` - - -2. [Enable rtx](https://github.com/jdx/rtx#quickstart) by adding it to your `plugins` definition in `~/.zshrc`. - - ``` - plugins=(rtx) - ``` - -### Usage - -See the [rtx readme](https://github.com/jdx/rtx#table-of-contents) for information on how to use rtx. Here are a few examples: - -``` -rtx install node Install the current version specified in .tool-versions/.rtx.toml -rtx use -g node@system Use system node as global default -rtx install node@20.0.0 Install a specific version number -rtx use -g node@20 Use node-20.x as global default -``` diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh index a01828afd48eb..43127a25f66d9 100644 --- a/plugins/rtx/rtx.plugin.zsh +++ b/plugins/rtx/rtx.plugin.zsh @@ -1,18 +1,2 @@ -# rtx needs to be in $PATH -if (( ! ${+commands[rtx]} )); then - return -fi - -# Load rtx hooks -eval "$(rtx activate zsh)" - -# If the completion file doesn't exist yet, we need to autoload it and -# bind it to `rtx`. Otherwise, compinit will have already done that. -if [[ ! -f "$ZSH_CACHE_DIR/completions/_rtx" ]]; then - typeset -g -A _comps - autoload -Uz _rtx - _comps[rtx]=_rtx -fi - -# Generate and load rtx completion -rtx completion zsh >! "$ZSH_CACHE_DIR/completions/_rtx" &| +# TODO: 2024-01-03 remove rtx support +echo "[oh-my-zsh] 'rtx' plugin has been renamed to 'mise'" From f4435a4522c1070b04d4e3a5b6b705bcebc309e5 Mon Sep 17 00:00:00 2001 From: Zacharias Knudsen Date: Thu, 4 Jan 2024 10:30:14 +0100 Subject: [PATCH 134/212] feat(rails): update completion script (#12145) Source: https://github.com/zsh-users/zsh-completions/blob/f7c3173886f4f56bf97d622677c6d46ab005831f/src/_rails --- plugins/rails/_rails | 964 ++++++++++++++++++++----------------------- 1 file changed, 439 insertions(+), 525 deletions(-) diff --git a/plugins/rails/_rails b/plugins/rails/_rails index ac90d45cc4650..48fd1909ea325 100644 --- a/plugins/rails/_rails +++ b/plugins/rails/_rails @@ -1,6 +1,6 @@ #compdef rails # ------------------------------------------------------------------------------ -# Copyright (c) 2016 GitHub zsh-users - http://github.com/zsh-users +# Copyright (c) 2016 GitHub zsh-users - https://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,589 +28,503 @@ # Description # ----------- # -# Completion script for Ruby on Rails (http://rubyonrails.org/). +# Completion script for Ruby on Rails 7.1.0 (https://rubyonrails.org/). # # ------------------------------------------------------------------------------ # Authors # ------- # # * Kazuya Takeshima (https://github.com/mitukiii) +# * Shohei Yoshida (https://github.com/syohex) # # ------------------------------------------------------------------------------ - _rails() { - local context state line curcontext="$curcontext" - - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_${words[1]}" || _nothing - else - __rails_commands - fi -} - -__rails_commands() { - local context state line curcontext="$curcontext" - - local -a rails_options - __rails_setup_rails_options - - _arguments -C \ - $rails_options \ - ': :->command' - - case "$state" in - command) - local -a commands - local application_directory - __rails_setup_application_directory - - if [ -n "$application_directory" ]; then - commands=( - {generate,g}'[Generate new code]' - {console,c}'[Start the Rails console]' - {server,s}'[Start the Rails server]' - {dbconsole,db}'[Start a console for the database specified in config/database.yml]' - application'[Generate the Rails application code]' - {destroy,d}'[Undo code generated with "generate"]' - benchmarker'[See how fast a piece of code runs]' - profiler'[Get profile information from a piece of code]' - plugin'[Install a plugin]' - {runner,r}'[Run a piece of code in the application environment]' - {test,t}'[Run tests]' - ) - else - commands=( - new'[Create a new Rails application]' - ) - fi - - _values 'command' $commands - ;; - esac -} + local context state state_descr line curcontext="$curcontext" + typeset -A opt_args -__rails_setup_application_directory() { - application_directory="$(pwd)" - - while [ -n "$application_directory" ]; do - if [ -f "${application_directory}/script/rails" -o -f "${application_directory}/bin/rails" ]; then - return - fi - application_directory="${application_directory%/*}" - done - - application_directory= -} - -__rails_setup_rails_options() { - rails_options=( - {-h,--help}'[Show this help message and quit]' - {-v,--version}'[Show Rails version number and quit]' + local -a runtime_options rails_options + runtime_options=( + '(- *)'{-h,--help}'[Show this help message and quit]' + '(- *)'{-v,--version}'[Show Rails version and quit]' ) -} -__rails_setup_runtime_options() { runtime_options=( '(-f --force)'{-f,--force}'[Overwrite files that already exist]' '(-p --pretend)'{-p,--pretend}'[Run but do not make any changes]' '(-q --quiet)'{-q,--quiet}'[Suppress status output]' '(-s --skip)'{-s,--skip}'[Skip files that already exist]' ) -} - -__rails_setup_generators_options() { - local -a runtime_options - __rails_setup_runtime_options - - generators_options=( - $runtime_options - --skip-namespace'[Skip namespace (affects only isolated applications)]' - --old-style-hash"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]" - ) -} - -__rails_setup_model_generators_options() { - local -a generators_options - __rails_setup_generators_options - - model_generators_options=( - $generators_options - '(-o --orm)'{-o,--orm=}'[Orm to be invoked]:orm' - ) -} - -__rails_setup_resource_generators_options() { - local -a model_generators_options - __rails_setup_model_generators_options - - resource_generators_options=( - $model_generators_options - --force-plural'[Forces the use of a plural ModelName]' - --resource-route'[Indicates when to generate resource route]: :__rails_boolean' - ) -} - -__rails_boolean() { - _values 'boolean' 'true' 'false' -} - -__rails_migration_fields() { - if compset -P '*:*:'; then - _values 'index' 'index' 'uniq' - else - if compset -P '*:'; then - _values -s ':' 'type' 'string' 'text' 'integer' 'float' 'decimal' 'datetime' 'timestamp' 'time' 'date' 'binary' 'boolean' 'references' - else - _guard '[[:alnum:]_]#' 'field' - fi - fi -} - -_rails_generate() { - local context state line curcontext="$curcontext" - - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_generate_${words[1]}" || _rails_generate_default - else - __rails_generate_commands - fi -} - -_rails_g() { - _rails_generate -} - -__rails_generate_commands() { - local context curcontext="$curcontext" update_policy - - zstyle -s ":completion:${curcontext}:" cache-policy update_policy - if [ -z "$update_policy" ]; then - zstyle ":completion:${curcontext}:" cache-policy _rails_generate_commands_caching_policy - fi - - local application_directory - __rails_setup_application_directory - local cache_name - cache_name="rails/${application_directory##*/}/all_generators" - if ! _retrieve_cache ${cache_name}; then - local -a all_generators - all_generators=($(_call_program rails_generators rails generate 2> /dev/null | awk '/^ [a-zA-Z_]+/{ print $1 }')) - _store_cache ${cache_name} all_generators - fi - - local -a rails_generators - rails_generators=(${all_generators:#*:*}) - _describe -t rails_generators 'rails generator' rails_generators - - local -a -U namespaces - local namespace - local -a generators - namespaces=(${(R)${(M)all_generators:#*:*}%:*}) - for namespace in $namespaces; do - generators=(${${(M)all_generators:#${namespace}:*}/:/\\:}) - _describe -t ${namespace}_generators "${namespace/_/ } generator" generators - done -} - -_rails_generate_commands_caching_policy() { - local application_directory - __rails_setup_application_directory - - if [ "${application_directory}/Gemfile" -nt "$1" ]; then - return 0 - fi - - local -a oldp - oldp=( "$1"(Nmw+1) ) - (( $#oldp )) -} - -_rails_generate_default() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '*:argument' -} - -_rails_generate_assets() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-j --javascripts)'{-j,--javascripts}'[Generate JavaScripts]: :__rails_boolean' \ - '(-y --stylesheets)'{-y,--stylesheets}'[Generate Stylesheets]: :__rails_boolean' \ - '(-je --javascript-engine)'{-je,--javascript-engine=}'[Engine for JavaScripts]:javascript engine' \ - '(-se --stylesheet-engine)'{-se,--stylesheet-engine=}'[Engine for Stylesheets]:stylesheet engine' \ - ': :_guard "^-*" "name"' -} -_rails_generate_controller() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - --helper'[Indicates when to generate helper]: :__rails_boolean' \ - --assets'[Indicates when to generate assets]: :__rails_boolean' \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "action"' -} - -_rails_generate_generator() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --namespace'[Namespace generator under lib/generators/name]: :__rails_boolean' \ - ': :_guard "^-*" "name"' -} - -_rails_generate_helper() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_integration_test() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --integration-tool='[Integration tool to be invoke]:integration tool' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_jbuilder() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_mailer() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "method"' -} - -_rails_generate_migration() { - local -a modelgenerators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_model() { - _rails_generate_migration -} - -_rails_generate_observer() { - local -a model_generators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' -} - -_rails_generate_performance_test() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --performance-tool='[Performance tool to be invoked]:performance tool' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_resource() { - local context state line curcontext="$curcontext" - - local -a resource_generators_options - __rails_setup_resource_generators_options + local ret=1 _arguments -C \ - $resource_generators_options \ - '(-c --resource-controller)'{-c,--resource-controller=}'[Resource controller to be invoked]:name' \ - '(-a --actions)'{-a,--actions=}'[Actions for the resource controller]: :->actions' \ - ': :->name' \ - '*: :->fields' - - if (( words[(I)(--actions=*|-a)] > 0 && words[(I)(--actions=*|-a)] == words[(I)-*] )); then - state=actions - fi + $rails_options \ + '1: :_rails_subcommands' \ + '*:: :->command' && ret=0 case "$state" in - actions) - _guard "[[:alnum:]_]#" "actions" - ;; - name) - _guard "^-*" "name" - ;; - fields) - __rails_migration_fields + (command) + case $words[1] in + (new) + _rails_new && ret=0 + ;; + (generate|g|destroy|d) + _rails_generate && ret=0 + ;; + (console|c) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "console" in]:env:(test development production)' \ + '(-s --sandbox)'{-s,--sandbox}'[Rollback database modifications on exit]' \ + && ret=0 + ;; + (server|s) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "server" in]:env:(test development production)' \ + '(-p --port)'{-p,--port}'[Run Rails on the specified port]:port' \ + '(-b --binding)'{-b,--binding=}'[Bind Rails to the specified IP]:binding' \ + '(-c --config)'{-c,--config=}'[Use a custom rackup configuration]:config file:_files -g "*.ru"' \ + '(-d --daemon)'{-d,--daemon}'[Run server as a Daemon]' \ + '(-u --using)'{-u,--using=}'[Specify the Rack server used to run the application]:server:(thin puma webrick)' \ + '(-P --pid)'{-P,--pid=}'[Specify the PID file]:pid file:_files -g "*.pid"' \ + '(-C --dev-caching --no-dev-caching)'{-C,--dev-caching}'[Perform caching in development]' \ + '(-C --dev-caching --no-dev-caching)--no-dev-caching[Not perform caching in development]' \ + '--early-hints[Enable HTTP/2 early hints]' \ + '(--log-to-stdout --no-log-to-stdout)--log-to-stdout[Log to stdout]' \ + '(--log-to-stdout --no-log-to-stdout)--no-log-to-stdout[Not log to stdout]' \ + && ret=0 + ;; + (dbconsole|db) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "server" in]:env:(test development production)' \ + '(-p --include-password)'{-p,--include-password}'[Automatically provide the password from database.yml]' \ + '--mode=[Automatically put the sqlite3 database in the specified mode]:mode:(html list line column)' \ + '(--header --no-header)--header[Display header]' \ + '(--header --no-header)--no-header[Not display header]' \ + '(--db --database)'{--db=,--database=}'[Specify the database to use]:database:_files' \ + && ret=0 + ;; + (test|t|test:system) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '--no-plugins[Bypass minitest plugin auto-loading]' \ + '(-s --seed)'{-s,--seed=}'[Sets random seed]:seed' \ + '(-v -verbose)'{-v,--verbose}'[Show progress processing files]' \ + '--show-skips[Show skipped at the end of run]' \ + \*{-n,--name=}'[Filter run on /regexp/ or string]:pattern' \ + *--exclude='[Exclude /regexp/ or string from run]:pattern' \ + \*{-S,--skip=}'[Skip reporting of certain types of results]' \ + '(-w --warnings)'{-w,--warnings}'[Run with Ruby warnings enabled]' \ + '(-e --environment)'{-e,--environment=}'[Run tests in the given environment]' \ + '(-b --backtrace)'{-b,--backtrace}'[Show the complete backtrace]' \ + '(-d --defer-output)'{-d,--defer-output}'[Output test failures and errors after the test run]' \ + '(-f --fail-fast)'{-f,--fail-fast}'[Abort test run on first failure or error]' \ + '(-c --color --no-color)'{-c,--color}'[Enable color in the output]' \ + '(-c --color --no-color)--no-color[Disable color in the output]' \ + '--profile=[Enable profiling of tests and list the slowest test cases]:count' \ + '(-p --pride)'{-p,--pride}'[Show your testing pride]' \ + '*:: :_files -g "*.rb"' \ + && ret=0 + ;; + (runner|r) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "runner"]:env:(test development production)' \ + '*:: :_files -g "*.rb"' \ + && ret=0 + ;; + (plugin) + _arguments \ + '1: :(new)' \ + '*:: :_rails_new' \ + && ret=0 + ;; + (routes) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-c --controller)'{-c,--controller=}'[Filter by a specific controller]:controller' \ + '(-g --grep)'{-g,--grep}'[Grep routes by a specific pattern]' \ + '(-E --expanded)'{-E,--expanded}'[Print routes expanded vertically with parts explained]' \ + '(-u --unused)'{-u,--unused}'[Print unused routes]' \ + && ret=0 + ;; + (*) + _arguments \ + '(- *)'{-h,--help}'[Show help message and quit]' \ + '*:: :_files' \ + && ret=0 + ;; + esac ;; esac -} - -_rails_generate_scaffold() { - local -a resource_generators_options - __rails_setup_resource_generators_options - - _arguments \ - $resource_generators_options \ - '(-y --stylesheets)'{-y,--stylesheets}'[Generate Stylesheets]: :__rails_boolean' \ - '(-se --stylesheet-engine)'{-se,--stylesheet-engine=}'[Engine for Stylesheets]:stylesheet engine' \ - '(-c --scaffold-controller)'{-c,--scaffold-controller=}'[Scaffold controller to be invoked]:name' \ - --assets'[Indicates when to generate assets]:boolean:(true false)' \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_scaffold_controller() { - local -a model_generators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - --helper'[Indicates when to generate helper]: :__rails_boolean' \ - ': :_guard "^-*" "name"' -} - -_rails_generate_session_migration() { - local -a model_generators_options - __rails_setup_model_generators_options - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' + return ret } -_rails_generate_task() { - local -a generators_options - __rails_setup_generators_options +(( $+functions[_rails_subcommands] )) || +_rails_subcommands() { + local -a commands - _arguments \ - $generators_options \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "action"' -} - -_rails_console() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-s --sandbox)'{-s,--sandbox}'[Rollback database modifications on exit]' \ - --debugger'[Enable ruby-debugging for the console]' -} - -_rails_c() { - _rails_console -} - -_rails_server() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-p --port)'{-p,--port=}'[Runs Rails on the specified port]: :_guard "[[\:digit\:]]#" "port"' \ - '(-b --binding)'{-b,--binding=}'[Binds Rails to the specified ip]:ip:_hosts' \ - '(-c --config)'{-c,--config=}'[Use custom rackup configuration file]:file:_files -g "*.ru"' \ - '(-d --daemon)'{-d,--daemon}'[Make server run as a Daemon]' \ - '(-u --debugger)'{-u,--debugger}'[Enable ruby-debugging for the server]' \ - '(-e --environment)'{-e,--environment=}'[Specifies the environment to run this server under (test/development/production)]:name:(test development production)' \ - '(-P --pid)'{-P,--pid=}'[Specifies the PID file]:pid:_files -g "*.pid"' -} + _rails_is_in_app -_rails_s() { - _rails_server -} + if (( $? == 1 )); then + # is not in rails app directory + commands=( + new'[Create a new Rails application]' + ) + else + commands=( + {generate,g}'[Generate new code]' + {console,c}'[Start the Rails console]' + {server,s}'[Start the Rails server]' + {test,t}'[Run tests]' + "test\\:system[Run systems test only]" + {dbconsole,db}'[Start a console for the database specified in config/database.yml]' + plugin'[Install a plugin]' + + # generated by ./bin/rails --help | ruby -ne '(b=$2;printf("%s[%s]\n", $1.gsub(/:/,"\\:"),b.strip)) if /^([a-z0-9_:]+)\S*\s+([^(\n]+)/' + "about[List versions of all Rails frameworks and the environment]" + "action_mailbox\:ingress\:exim[Relay an inbound email from Exim to Action Mailbox]" + "action_mailbox\:ingress\:postfix[Relay an inbound email from Postfix to Action Mailbox]" + "action_mailbox\:ingress\:qmail[Relay an inbound email from Qmail to Action Mailbox]" + "action_mailbox\:install[Install Action Mailbox and its dependencies]" + "action_mailbox\:install\:migrations[Copy migrations from action_mailbox to application]" + "action_text\:install[Copy over the migration, stylesheet, and JavaScript files]" + "action_text\:install\:migrations[Copy migrations from action_text to application]" + "active_storage\:install[Copy over the migration needed to the application]" + "app\:template[Apply the template supplied by LOCATION=]" + "app\:update[Update configs and some other initially generated files]" + "assets\:clean[Remove old compiled assets]" + "assets\:clobber[Remove compiled assets]" + "assets\:environment[Load asset compile environment]" + "assets\:precompile[Compile all the assets named in config.assets.precompile]" + "cache_digests\:dependencies[Lookup first-level dependencies for TEMPLATE]" + "cache_digests\:nested_dependencies[Lookup nested dependencies for TEMPLATE]" + "credentials\:diff[Enroll/disenroll in decrypted diffs of credentials using git]" + "credentials\:edit[Open the decrypted credentials in $VISUAL or $EDITOR for editing]" + "credentials\:show[Show the decrypted credentials]" + "db\:create[Create the database from DATABASE_URL or config/database.yml for the current RAILS_ENV]" + "db\:drop[Drop the database from DATABASE_URL or config/database.yml for the current RAILS_ENV]" + "db\:encryption\:init[Generate a set of keys for configuring Active Record encryption in a given environment]" + "db\:environment\:set[Set the environment value for the database]" + "db\:fixtures\:load[Load fixtures into the current environment's database]" + "db\:migrate[Migrate the database]" + "db\:migrate\:down[Run the 'down' for a given migration VERSION]" + "db\:migrate\:redo[Roll back the database one migration and re-migrate up]" + "db\:migrate\:status[Display status of migrations]" + "db\:migrate\:up[Run the 'up' for a given migration VERSION]" + "db\:prepare[Run setup if database does not exist, or run migrations if it does]" + "db\:reset[Drop and recreate all databases from their schema for the current environment and load the seeds]" + "db\:rollback[Roll the schema back to the previous version]" + "db\:schema\:cache\:clear[Clear a db/schema_cache.yml file]" + "db\:schema\:cache\:dump[Create a db/schema_cache.yml file]" + "db\:schema\:dump[Create a database schema file]" + "db\:schema\:load[Load a database schema file]" + "db\:seed[Load the seed data from db/seeds.rb]" + "db\:seed\:replant[Truncate tables of each database for current environment and load the seeds]" + "db\:setup[Create all databases, load all schemas, and initialize with the seed data]" + "db\:system\:change[Change 'config/database.yml' and your database gem to the target database]" + "db\:version[Retrieve the current schema version number]" + "destroy[Remove code generated by 'bin/rails generate']" + "dev\:cache[Toggle development mode caching on/off]" + "encrypted\:edit[Open the decrypted file in $VISUAL or $EDITOR for editing]" + "encrypted\:show[Show the decrypted contents of the file]" + "importmap\:install[Setup Importmap for the app]" + "initializers[Print out all defined initializers in the order they are invoked by Rails.]" + "log\:clear[Truncate all/specified *.log files in log/ to zero bytes]" + "middleware[Print out your Rack middleware stack]" + "notes[Show comments in your code annotated with FIXME, OPTIMIZE, and TODO]" + "restart[Restart app by touching tmp/restart.txt]" + "routes[List all the defined routes]" + "runner[Run Ruby code in the context of your application]" + "secret[Generate a cryptographically secure secret key]" + "secrets\:edit[**deprecated** Open the secrets in $VISUAL or $EDITOR for editing]" + "secrets\:show[**deprecated** Show the decrypted secrets]" + "stats[Report code statistics]" + "stimulus\:install[Install Stimulus into the app]" + "stimulus\:install\:importmap[Install Stimulus on an app running importmap-rails]" + "stimulus\:install\:node[Install Stimulus on an app running node]" + "test\:all[Run all tests, including system tests]" + "test\:channels[Run tests in test/channels]" + "test\:controllers[Run tests in test/controllers]" + "test\:db[Reset the database and run 'bin/rails test']" + "test\:functionals[Run tests in test/controllers, test/mailers, and test/functional]" + "test\:generators[Run tests in test/lib/generators]" + "test\:helpers[Run tests in test/helpers]" + "test\:integration[Run tests in test/integration]" + "test\:jobs[Run tests in test/jobs]" + "test\:mailboxes[Run tests in test/mailboxes]" + "test\:mailers[Run tests in test/mailers]" + "test\:models[Run tests in test/models]" + "test\:units[Run tests in test/models, test/helpers, and test/unit]" + "time\:zones[List all time zones, list by two-letter country code]" + "tmp\:clear[Clear cache, socket and screenshot files from tmp/]" + "tmp\:create[Create tmp directories for cache, sockets, and pids]" + "turbo\:install[Install Turbo into the app]" + "turbo\:install\:importmap[Install Turbo into the app with asset pipeline]" + "turbo\:install\:node[Install Turbo into the app with webpacker]" + "turbo\:install\:redis[Switch on Redis and use it in development]" + "version[Show the Rails version]" + "yarn\:install[Install all JavaScript dependencies as specified via Yarn]" + "zeitwerk\:check[Check project structure for Zeitwerk compatibility]" + ) + fi -_rails_dbconsole() { - _arguments \ - '(- *)'--help'[Show this help message]' \ - '(-p --include-password)'{-p,--include-password}'[Automatically provide the password from database.yml]' \ - --mode'[Automatically put the sqlite3 database in the specified mode (html, list, line, column)]:mode:(html list line column)' \ - --header + _values 'command' $commands } +# rails new +(( $+functions[_rails_new] )) || _rails_new() { - local context state line curcontext="$curcontext" + local ret=1 - local _a rails_options runtime_options - __rails_setup_rails_options - __rails_setup_runtime_options - - _arguments -C \ - $rails_options \ + _arguments \ $runtime_options \ - '(-r --ruby)'{-r,--ruby=}'[Path to the Ruby binary of your choice]:path' \ - '(-b --builder)'{-b,--builder=}'[Path to a application builder (can be a filesystem path or URL)]: :->path_or_url' \ - '(-m --template)'{-m,--template=}'[Path to an application template (can be a filesystem path or URL)]: :->path_or_url' \ + $rails_options \ + --skip-namespace'[Skip namespace]' \ + '(-n --name)'{-n,--name=}'[Name of the app]:name' \ + '(-r --ruby)'{-r,--ruby=}'[Path to the Ruby binary of your choice]:path:_files' \ + '(-b --builder)'{-b,--builder=}'[Path to a application builder(can be a filesystem path or URL)]: :_rails_path_or_url' \ + '(-m --template)'{-m,--template=}'[Path to an application template(can be a filesystem path or URL)]: :_rails_path_or_url' \ + '(-d --database)'{-d,--database=}'[Preconfigure for selected database]:database:(mysql trilogy oracle postgresql sqlite3 frontbase ibm_db sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)' \ --skip-gemfile"[Don't create a Gemfile]" \ --skip-bundle"[Don't run bundle install]" \ - '(-G --skip-git)'{-G,--skip-git}'[Skip Git ignores and keeps]' \ + '(-G --skip-git)'{-G,--skip-git}'[Skip git init]' \ + --skip-docker'[Skip Dockerfile]' \ + --skip-keeps'[Skip source control .keep files]' \ + '(-M --skip-action-mailer)'{-M,--skip-action-mailer}'[Skip Action Mailer files]' \ + --skip-action-mailbox'[Skip Action Mailbox gem]' \ + --skip-action-text'[Skip Action Text gem]' \ '(-O --skip-active-record)'{-O,--skip-active-record}'[Skip Active Record files]' \ - '(-S --skip-sprockets)'{-S,--skip-sprockets}'[Skip Sprockets files]' \ - '(-d --database)'{-d,--database=}'[Preconfigure for selected database]:database:(mysql oracle postgresql sqlite3 frontbase ibm_db sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)' \ - '(-j --javascript)'{-j,--javascript=}'[Preconfigure for selected JavaScript library]:javascript' \ - '(-J --skip-javascript)'{-J,--skip-javascript}'[Skip JavaScript files]' \ + --skip-active-job'[Skip Active Job]' \ + --skip-active-storage'[Skip Active Storage files]' \ + '(-C --skip-action-cable)'{-C,--skip-action-cable}'[Skip Action Cable files]' \ + '(-A --skip-asset-pipeline)'{-A,--skip-asset-pipeline}'[Skip asset pipeline]' \ + '(-a --asset-pipeline)'{-a,--asset-pipeline=}'[Choose your asset pipeline]:asset pipeline:(sprockets propshaft)' \ + '(-J --skip-js)'{-J,--skip-js}'[Skip JavaScript files]' \ + --skip-hotwire'[Skip Hotwire integration]' \ + --skip-jbuilder'[Skip jbuilder gem]' \ + '(-T --skip-test)'{-T,--skip-test}'[Skip test files]' \ + --skip-system-test'[Skip system test files]' \ + --skip-bootsnap'[Skip bootsnap gem]' \ + --skip-dev-gems'[Skip development gems(e.g. web-console)]' \ --dev'[Setup the application with Gemfile pointing to your Rails checkout]' \ --edge'[Setup the application with Gemfile pointing to Rails repository]' \ - '(-T --skip-test-unit)'{-T,--skip-test-unit}'[Skip Test::Unit files]' \ - --old-style-hash"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]" \ - ':app path:_directories' + --master'[Set up the application with Gemfile pointing to Rails repository main branch]' \ + --rc='[Path to file containing extra configuration options for rails command]:rc:_files' \ + --api'[Preconfigure smaller stack for API only apps]' \ + --minimal'[Preconfigure a minimal rails app]' \ + '(-j --js)'{-j,--js=}'[Choose JavaScript approach]:javascript:(importmap bun webpack esbuild rollup)' \ + '(-c --css)'{-c,--css=}'[Choose CSS processor]:css processor:(tailwind bootstrap bulma postcss sass)' \ + '(-B --skip-bundle)'{-B,--skip-bundle}"[Don't run bundle install]" \ + --skip-decrypted-diffs"[Don't configure git to show decrypted diffs of encrypted credentials]" \ + ':app path:_directories' && ret=0 - case "$state" in - path_or_url) - _alternative \ - 'files:path:_files -g "*.rb"' \ - 'url:url:_urls' - ;; - esac + return ret } -_rails_application() { - _rails_new -} - -_rails_db() { - _rails_dbconsole -} - -_rails_destroy() { - _rails_generate -} - -_rails_d() { - _rails_destroy -} - -_rails_benchmarker() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-r --runs)'{-r,--runs}'[Number of runs]: :_guard "[[\:digit\:]]#" "number"' \ - '(-o --output)'{-o,--output}'[Directory to use when writing the results]:directory:_directories' \ - '(-m --metrics)'{-m,--metrics}'[Metrics to use]: :_values -s "," "metrics" "wall_time" "memory" "objects" "gc_runs" "gc_time"' \ - '*: :_guard "^-*" "ruby code"' -} - -_rails_profiler() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-r --runs)'{-r,--runs}'[Number of runs]: :_guard "[[\:digit\:]]#" "number"' \ - '(-o --output)'{-o,--output}'[Directory to use when writing the results]:directory:_directories' \ - '(-m --metrics)'{-m,--metrics}'[Metrics to use]: :_values -s "," "metrics" "process_time" "memory" "objects"' \ - '(-f --formats)'{-f,--formats}'[Formats to output to]: :_values -s "," "formats" "flat" "graph" "html" "call_tree" "call_stack"' \ - '*: :_guard "^-*" "ruby code"' -} - -_rails_plugin() { - local context state line curcontext="$curcontext" - - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_plugin_${words[1]}" || _nothing - else - __rails_plugin_commands - fi -} - -__rails_plugin_commands() { - _values 'plugin command' \ - install'[Install plugin(s) from known repositories or URLs]' \ - remove'[Uninstall plugins]' \ - new -} - -_rails_plugin_install() { - _arguments \ - '(-x --externals)'{-x,--externals}'[Use svn:externals to grab the plugin. Enables plugin updates and plugin versioning]' \ - '(-o --checkout)'{-o,--checkout}'[Use svn checkout to grab the plugin. Enables updating but does not add a svn:externals entry]' \ - '(-e --export)'{-e,--export}'[Use svn export to grab the plugin. Exports the plugin, allowing you to check it into your local repository. Does not enable updates or add an svn:externals entry]' \ - '(-q --quiet)'{-q,--quiet}'[Suppresses the output from installation. Ignored if -v is passed (rails plugin -v install ...)]' \ - '(-r --revision)'{-r,--revision=}'[Checks out the given revision from subversion or git. Ignored if subversion/git is not used]:revision' \ - '(-f --force)'{-f,--force}"[Reinstalls a plugin if it's already installed]" \ - '*:plugin:_urls' -} - -_rails_plugin_remove() { - local -a plugins - - plugins=($(_call_program rails_plugins ls -1 vendor/plugins)) - - _describe -t plugins 'plugin' plugins -} - -_rails_plugin_new() { - _rails_new -} - -_rails_runner() { - local context state line curcontext="$curcontext" +# rails generate +(( $+functions[_rails_generate] )) || +_rails_generate() { + local ret=1 _arguments -C \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-e --environment)'{-e,--environment=}'[Specifies the environment for the runner to operate under (test/development/production)]:name:(test development production)' \ - ': :->code_or_path' + '(- *)'{-h,--help}"[Print generator's options and usage]" \ + $runtime_options \ + '1:generator:_rails_generate_generator' \ + '*:: :->generate' && ret=0 case "$state" in - code_or_path) - _alternative \ - 'files:filename:_files -g "*.rb"' \ - 'codes:ruby code:_guard "^-*" "ruby code"' + (generate) + local -a opts + opts=( + '(- *)'{-h,--help}'[Show this help message and quit]' + $runtime_options + '--skip-namespace[Skip namespace]' + '--skip-collision-check[Skip collision check]' + ) + + case $words[1] in + (application_record|migration|model|resource|scaffold|scaffold_controller) + opts+=( + '(-o --orm)'{-o,--orm=}'[ORM to be invoked]:orm:(active_record)' + ) + ;| + (channel) + opts+=( + '--no-assets[Not generate assets]' + ) + ;| + (controller|resource|scaffold|scaffold_controller) + opts+=( + '--skip-routes[Do not add routes to config/routes.rb]' + '--no-helper[Not generate helper]' + ) + ;| + (controller|job|model|resource|scaffold) + opts+=( + '--parent=[The parent class for the generated controler]:parent class' + ) + ;| + (controler|mailer|resource|scaffold|scaffold_controller) + opts+=( + '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:engine:(erb)' + ) + ;| + (channel|controller|generator|helper|job|mailbox|mailer|model|scaffold|scaffold_controller) + opts+=( + '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test_framework:(test_unit)' + ) + ;| + (generator|test_unit:channel) + opts+=( + '--no-namespace[Not generate namespace generate]' + ) + ;| + (integration_test) + opts+=( + '--integration-tool=[Integration tool to be invoked]:tool:(test_unit)' + ) + ;| + (jbuilder|resource|scaffold|scaffold_controller) + opts+=( + '--model-name=[ModelName to be used]:name' + ) + ;| + (jbuilder|model|resource|scaffold|scaffold_controller) + opts+=( + '--force-plural[Do not singularize the model name]' + ) + ;| + (jbuilder|migration|model|resource|scaffold_controller) + opts+=( + '--no-timestamps[Not generate timestamps]' + ) + ;| + (job) + opts+=( + '--queue=[The queue name for the generated job]:name' + ) + ;| + (migration|model|resource|scaffold) + opts+=( + '--primary-key-type=[The type for primary key]' + '(--db --database)'{--db,--database=}'[The database for your migration]:db' + ) + ;| + (model|resource|scaffold) + opts+=( + '--no-migration[Not generate migration]' + '--no-indexes[Not add indexes for references and belongs_to columns]' + '--no-fixture[Not generate fixture]' + '(-r --fixture-replacement)'{-r,--fixture-replacement=}'[Fixture replacement to be invoked]:fixture' + ) + ;| + (resource) + opts+=( + '(-c --resource-controller)'{-c,--resource-controller=}'[Resource controller to be invoked]:controller:(controller)' + '(-a --actions)'{-a,--actions=}'[Actions for the source controller]:action' + ) + ;| + (resource|scaffold|scaffold_controller) + opts+=( + '--no-resource-route[Not generate resource route]' + ) + ;| + (scaffold) + opts+=( + '(-c --scaffold-controller)'{-c,--scaffold-controller=}'[Scaffold controller to be invoked]:controller:(scaffold_controller)' + + ) + ;| + (scaffold|scaffold_controller) + opts+=( + '--api[Generate API-only controller and tests, with no view templates]' + '--no-jbuilder[Not generate jbuilder]' + ) + ;| + (scaffold|scaffold_controller|system_test) + opts+=( + '--system-tests=[System test framework to be invoked]:framework:(test_unit)' + ) + ;| + (stimulus) + opts+=( + '--skip-manifest[Do not update the stimulus manifest]' + ) + ;| + (jbuilder|migration|resource|scaffold) + opts+=( + '*:field:_rails_migration_fields' + ) + ;| + esac + + _arguments $opts && ret=0 ;; esac + + return ret } -_rails_r() { - _rails_runner +(( $+functions[_rails_generate_generator] )) || +_rails_generate_generator() { + local -a generators=( + # rails + application_record benchmark channel controller generator helper integration_test + jbuilder job mailbox mailer migration model resource scaffold scaffold_controller + system_test task + + # active record + "active_record\\:application_record" + "active_record\\:multi_db" + + # Stimulus + stimulus + + # TestUnit + "test_unit\\:channel" "test_unit\\:generator" "test_unit\\:install" + "test_unit\\:mailbox" "test_unit\\:plugin" + ) + + _values 'generators' $generators } -_rails_test() { - local context state line curcontext="$curcontext" +# Utilities +(( $+functions[_rails_is_in_app] )) || +_rails_is_in_app() { + local dir="$PWD" + while [ -n "$dir" ]; do + if [[ -f "${dir}/bin/rails" ]]; then + return 0 + fi + dir="${dir/*}" + done - _arguments -C \ - ': :->path' + return 1 +} - case "$state" in - path) - _alternative \ - 'files:filename:_files -g "*.rb"' - ;; - esac +(( $+functions[_rails_path_or_url] )) || +_rails_path_or_url() { + _alternative \ + 'files:path:_files -g "*.rb"' \ + 'url:url:_urls' } -_rails_t() { - _rails_test +(( $+functions[_rails_migration_fields] )) || +_rails_migration_fields() { + if compset -P '*:*:'; then + _values 'index' 'index' 'uniq' + else + if compset -P '*:'; then + _values -s ':' 'type' 'string' 'text' 'integer' 'float' 'decimal' 'datetime' 'timestamp' 'time' 'date' 'binary' 'boolean' 'references' + else + _guard '[[:alnum:]_]#' 'field' + fi + fi } _rails "$@" From 8980ffebbc8e38e8a25cdeba2ef78d7e5d0d0d62 Mon Sep 17 00:00:00 2001 From: Mete Date: Fri, 5 Jan 2024 12:38:26 +0300 Subject: [PATCH 135/212] feat(gcloud): add asdf installation dir (#12146) --- plugins/gcloud/gcloud.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 9a4213aaf14d5..cf3d650ea6095 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -17,6 +17,7 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then "/opt/google-cloud-sdk" "/opt/google-cloud-cli" "/opt/local/libexec/google-cloud-sdk" + "$HOME/.asdf/installs/gcloud/*/" ) for gcloud_sdk_location in $search_locations; do From 428866e28def25593e7dd73f1c3bd909db47635b Mon Sep 17 00:00:00 2001 From: Johan Kaving Date: Sat, 6 Jan 2024 12:32:18 +0100 Subject: [PATCH 136/212] fix(macos): print usage for `man-preview` with no args (#12147) --- plugins/macos/macos.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index e27d412c822ac..a4347005e1e34 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -224,6 +224,8 @@ function quick-look() { } function man-preview() { + [[ $# -eq 0 ]] && >&2 echo "Usage: $0 command1 [command2 ...]" && return 1 + local page for page in "${(@f)"$(man -w $@)"}"; do command mandoc -Tpdf $page | open -f -a Preview From 5ea2c68be88452b33b35ba8004fc9094618bcd87 Mon Sep 17 00:00:00 2001 From: ChaosInventor Date: Mon, 8 Jan 2024 11:02:20 +0100 Subject: [PATCH 137/212] fix(rkj-repos): check if `~/.hgrc` exists (#12148) --- themes/rkj-repos.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 3cb452335d067..a9fe1a9af0a7f 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -1,7 +1,7 @@ # user, host, full path, and time/date on two lines for easier vgrepping function hg_prompt_info { - if (( $+commands[hg] )) && grep -q "prompt" ~/.hgrc; then + if (( $+commands[hg] )) && [[ -e ~/.hgrc ]] && grep -q "prompt" ~/.hgrc; then hg prompt --angle-brackets "\ %{$reset_color%}><:%{$fg[magenta]%}%{$reset_color%}>\ %{$reset_color%}>\ From 1c8dee848dad169c9eb1a7b0148842b48a99cad1 Mon Sep 17 00:00:00 2001 From: Albert Still Date: Wed, 10 Jan 2024 20:41:43 +0000 Subject: [PATCH 138/212] docs(git): align `gpristine` alias (#12155) Co-authored-by: Carlo Sala --- plugins/git/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/README.md b/plugins/git/README.md index b7b9a6635424c..cbdfdca0f69e1 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -163,7 +163,7 @@ plugins=(... git) | `grhh` | `git reset --hard` | | `grhk` | `git reset --keep` | | `grhs` | `git reset --soft` | -| `gpristine` | `git reset --hard && git clean -dffx` | +| `gpristine` | `git reset --hard && git clean --force -dfx` | | `groh` | `git reset origin/$(git_current_branch) --hard` | | `grs` | `git restore` | | `grss` | `git restore --source` | From 15479ca5aee5cd430540794d1f5aae90e2f59cd0 Mon Sep 17 00:00:00 2001 From: reda Date: Sat, 13 Jan 2024 12:36:26 +0100 Subject: [PATCH 139/212] feat(terraform): add new terraform and helm aliases (#11923) --- plugins/helm/README.md | 13 +++++++------ plugins/helm/helm.plugin.zsh | 1 + plugins/terraform/README.md | 3 +++ plugins/terraform/terraform.plugin.zsh | 2 ++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/plugins/helm/README.md b/plugins/helm/README.md index 8be024bfb3376..dcbb30b6c5707 100644 --- a/plugins/helm/README.md +++ b/plugins/helm/README.md @@ -10,9 +10,10 @@ plugins=(... helm) ## Aliases -| Alias | Full command | -| ----- | ------------ | -| h | helm | -| hin | helm install | -| hse | helm search | -| hup | helm upgrade | +| Alias | Full command | +| ----- | -------------- | +| h | helm | +| hin | helm install | +| hun | helm uninstall | +| hse | helm search | +| hup | helm upgrade | diff --git a/plugins/helm/helm.plugin.zsh b/plugins/helm/helm.plugin.zsh index 7fc05be989943..e754a6541291d 100644 --- a/plugins/helm/helm.plugin.zsh +++ b/plugins/helm/helm.plugin.zsh @@ -14,5 +14,6 @@ fi alias h='helm' alias hin='helm install' +alias hun='helm uninstall' alias hse='helm search' alias hup='helm upgrade' diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md index fc9a9f005c040..135fd78ef92dd 100644 --- a/plugins/terraform/README.md +++ b/plugins/terraform/README.md @@ -26,6 +26,9 @@ plugins=(... terraform) | `tfo` | `terraform output` | | `tfp` | `terraform plan` | | `tfv` | `terraform validate` | +| `tfs` | `terraform state` | +| `tfsh`| `terraform show` | + ## Prompt function diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index ccca5468484d4..f66a8eac946bf 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -24,3 +24,5 @@ alias tfi='terraform init' alias tfo='terraform output' alias tfp='terraform plan' alias tfv='terraform validate' +alias tfs='terraform state' +alias tfsh='terraform show' From 11b0ea33d1c770d69b1418bc78b27a936cc5a17e Mon Sep 17 00:00:00 2001 From: Gautam krishna R Date: Sat, 13 Jan 2024 23:17:54 +0530 Subject: [PATCH 140/212] fix(python): add support for cli args (#12159) --- plugins/python/python.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 3d7ca55c94ae3..77d4bf42500a6 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -44,7 +44,7 @@ function pyuserpaths() { alias pygrep='grep -nr --include="*.py"' # Run proper IPython regarding current virtualenv (if any) -alias ipython="python3 -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'" +alias ipython='python3 -c "import IPython, sys; sys.exit(IPython.start_ipython())"' # Share local directory as a HTTP server alias pyserver="python3 -m http.server" From cb7ff9fb148d14b19699d9bc35272253b698c3d8 Mon Sep 17 00:00:00 2001 From: Mladen Plavsic Date: Sat, 13 Jan 2024 18:54:56 +0100 Subject: [PATCH 141/212] feat(git): add `gcann!` alias (#12041) --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index cbdfdca0f69e1..be3f85827e0ee 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -70,6 +70,7 @@ plugins=(... git) | `gca!` | `git commit --verbose --all --amend` | | `gcan!` | `git commit --verbose --all --no-edit --amend` | | `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gcann!` | `git commit --verbose --all --date=now --no-edit --amend` | | `gc!` | `git commit --verbose --amend` | | `gcn!` | `git commit --verbose --no-edit --amend` | | `gcs` | `git commit -S` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index bee9eb67d1881..f2e472f06a31e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -194,6 +194,7 @@ alias gca='git commit --verbose --all' alias gca!='git commit --verbose --all --amend' alias gcan!='git commit --verbose --all --no-edit --amend' alias gcans!='git commit --verbose --all --signoff --no-edit --amend' +alias gcann!='git commit --verbose --all --date=now --no-edit --amend' alias gc!='git commit --verbose --amend' alias gcn!='git commit --verbose --no-edit --amend' alias gcf='git config --list' From 8be4789bbbef06fe5eed581dc8c58df51e3cd9fd Mon Sep 17 00:00:00 2001 From: Mohammad Al Zouabi Date: Sun, 14 Jan 2024 01:56:23 +0800 Subject: [PATCH 142/212] feat(git): add `greva` and `grevc` aliases (#12042) --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index f2e472f06a31e..5c3064e8a368a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -354,6 +354,8 @@ alias grss='git restore --source' alias grst='git restore --staged' alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' alias grev='git revert' +alias greva='git revert --abort' +alias grevc='git revert --continue' alias grm='git rm' alias grmc='git rm --cached' alias gcount='git shortlog --summary --numbered' From 35a5357704ace1d9732a15cc3a5d792df53f2170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A8=E3=82=93=E3=81=A8=E3=82=93=E3=81=BC?= <70003919+KaitoMuraoka@users.noreply.github.com> Date: Tue, 16 Jan 2024 18:37:13 +0900 Subject: [PATCH 143/212] feat(web-search): add `deepL` (#12165) --- plugins/web-search/README.md | 1 + plugins/web-search/web-search.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index 6e4b4d7b8a921..cf5bab3f78bf7 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -45,6 +45,7 @@ Available search contexts are: | `scholar` | `https://scholar.google.com/scholar?q=` | | `ask` | `https://www.ask.com/web?q=` | | `youtube` | `https://www.youtube.com/results?search_query=` | +| `deepl` | `https://www.deepl.com/translator#auto/auto/` | Also there are aliases for bang-searching DuckDuckGo: diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index a8848fd952c10..1b42abe86a9cf 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -26,6 +26,7 @@ function web_search() { scholar "https://scholar.google.com/scholar?q=" ask "https://www.ask.com/web?q=" youtube "https://www.youtube.com/results?search_query=" + deepl "https://www.deepl.com/translator#auto/auto/" ) # check whether the search engine is supported @@ -68,6 +69,7 @@ alias archive='web_search archive' alias scholar='web_search scholar' alias ask='web_search ask' alias youtube='web_search youtube' +alias deepl='web_search deepl' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' From d93401c642d1e5c87b06d7622bddb9bfd5eab383 Mon Sep 17 00:00:00 2001 From: Tabrez Mohammed Date: Tue, 16 Jan 2024 01:39:45 -0800 Subject: [PATCH 144/212] feat(history-substring-search): update to upstream (#12164) --- plugins/history-substring-search/README.md | 80 +++++- .../history-substring-search.plugin.zsh | 8 +- .../history-substring-search.zsh | 243 ++++++++++++------ 3 files changed, 237 insertions(+), 94 deletions(-) diff --git a/plugins/history-substring-search/README.md b/plugins/history-substring-search/README.md index 6d8b56425affe..eee279dfde796 100644 --- a/plugins/history-substring-search/README.md +++ b/plugins/history-substring-search/README.md @@ -23,7 +23,15 @@ Install Using the [Homebrew]( https://brew.sh ) package manager: brew install zsh-history-substring-search - echo 'source /usr/local/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc + echo 'source $(brew --prefix)/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc + +Using [Fig](https://fig.io): + +Fig adds apps, shortcuts, and autocomplete to your existing terminal. + +Install `zsh-history-substring-search` in just one click. + + Using [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh): @@ -33,24 +41,63 @@ Using [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh): 2. Activate the plugin in `~/.zshrc`: - plugins=( [plugins...] history-substring-search) + plugins=( [plugins...] zsh-history-substring-search) + +3. Run `exec zsh` to take changes into account: + + exec zsh + +Using [zplug](https://github.com/zplug/zplug): + +1. Add this repo to `~/.zshrc`: + + zplug "zsh-users/zsh-history-substring-search", as: plugin + +Using [antigen](https://github.com/zsh-users/antigen): -3. Source `~/.zshrc` to take changes into account: +1. Add the `antigen bundle` command just before `antigen apply`, like this: - source ~/.zshrc +``` +antigen bundle zsh-users/zsh-history-substring-search +antigen apply +``` + +2. Then, **after** `antigen apply`, add the key binding configurations, like this: + +``` +# zsh-history-substring-search configuration +bindkey '^[[A' history-substring-search-up # or '\eOA' +bindkey '^[[B' history-substring-search-down # or '\eOB' +HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1 +``` + +Using [Zinit](https://github.com/zdharma-continuum/zinit): + +1. Use the `Oh-my-zsh` Zinit snippet in `~/.zshrc`: + + zinit snippet OMZ::plugins/git/git.plugin.zsh` + +2. Load the plugin in `~/.zshrc`: + + zinit load 'zsh-users/zsh-history-substring-search + zinit ice wait atload'_history_substring_search_config' + +3. Run `exec zsh` to take changes into account: + + exec zsh Usage ------------------------------------------------------------------------------ 1. Load this script into your interactive ZSH session: - % source zsh-history-substring-search.zsh + source zsh-history-substring-search.zsh If you want to use [zsh-syntax-highlighting][6] along with this script, then make sure that you load it *before* you load this script: - % source zsh-syntax-highlighting.zsh - % source zsh-history-substring-search.zsh + source zsh-syntax-highlighting.zsh + source zsh-history-substring-search.zsh 2. Bind keyboard shortcuts to this script's functions. @@ -73,6 +120,10 @@ Usage bindkey "$terminfo[kcuu1]" history-substring-search-up bindkey "$terminfo[kcud1]" history-substring-search-down + Users have also observed that `[OA` and `[OB` are correct values, + _even if_ these were not the observed values. If you are having trouble + with the observed values, give these a try. + You might also want to bind the Control-P/N keys for use in EMACS mode: bindkey -M emacs '^P' history-substring-search-up @@ -115,7 +166,7 @@ Configuration ------------------------------------------------------------------------------ This script defines the following global variables. You may override their -default values only after having loaded this script into your ZSH session. +default values. * `HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND` is a global variable that defines how the query should be highlighted inside a matching command. Its default @@ -141,6 +192,12 @@ default values only after having loaded this script into your ZSH session. value, causes this script to perform a fuzzy search by words, matching in given order e.g. `ab c` will match `*ab*c*` +* `HISTORY_SUBSTRING_SEARCH_PREFIXED` is a global variable that defines how + the command history will be searched for your query. If set to a non-empty + value, your query will be matched against the start of each history entry. + For example, if this variable is empty, `ls` will match `ls -l` and `echo + ls`; if it is non-empty, `ls` will only match `ls -l`. + * `HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE` is a global variable that defines whether all search results returned are _unique_. If set to a non-empty value, then only unique search results are presented. This behaviour is off @@ -155,6 +212,9 @@ default values only after having loaded this script into your ZSH session. receive globally unique search results only once, then use this configuration variable, or use `setopt HIST_IGNORE_ALL_DUPS`. +* `HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_TIMEOUT` is a global variable that + defines a timeout in seconds for clearing the search highlight. + History ------------------------------------------------------------------------------ @@ -187,8 +247,8 @@ https://github.com/zsh-users/zsh-history-substring-search. This downstream copy was last updated from the following upstream commit: - SHA: 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb - Commit date: 2019-05-12 17:35:54 -0700 + SHA: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 + Commit date: 2023-11-23 12:12:14 +0200 Everything above this section is a copy of the original upstream's README, so things may differ slightly when you're using this inside OMZ. In particular, you do not diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh index 63f0bdd420037..05bdbcd75f7f2 100644 --- a/plugins/history-substring-search/history-substring-search.plugin.zsh +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -1,9 +1,5 @@ -# Handle $0 according to the standard: -# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html -0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" -0="${${(M)0:#/*}:-$PWD/$0}" - -source ${0:A:h}/history-substring-search.zsh +0=${(%):-%N} +source ${0:A:h}/zsh-history-substring-search.zsh # Bind terminal-specific up and down keys diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index c326778d41d40..471cc9ad116e8 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -43,11 +43,12 @@ # declare global configuration variables #----------------------------------------------------------------------------- -typeset -g HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold' -typeset -g HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold' -typeset -g HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i' -typeset -g HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE='' -typeset -g HISTORY_SUBSTRING_SEARCH_FUZZY='' +: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'} +: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'} +: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'} +: ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''} +: ${HISTORY_SUBSTRING_SEARCH_FUZZY=''} +: ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''} #----------------------------------------------------------------------------- # declare internal global variables @@ -64,6 +65,7 @@ typeset -g -i _history_substring_search_raw_match_index typeset -g -a _history_substring_search_matches typeset -g -i _history_substring_search_match_index typeset -g -A _history_substring_search_unique_filter +typeset -g -i _history_substring_search_zsh_5_9 #----------------------------------------------------------------------------- # the main ZLE widgets @@ -97,6 +99,11 @@ zle -N history-substring-search-down #----------------------------------------------------------------------------- zmodload -F zsh/parameter +autoload -Uz is-at-least + +if is-at-least 5.9 $ZSH_VERSION; then + _history_substring_search_zsh_5_9=1 +fi # # We have to "override" some keys and widgets if the @@ -117,80 +124,125 @@ if [[ $+functions[_zsh_highlight] -eq 0 ]]; then } # - # The following snippet was taken from the zsh-syntax-highlighting project: - # - # https://github.com/zsh-users/zsh-syntax-highlighting/blob/56b134f5d62ae3d4e66c7f52bd0cc2595f9b305b/zsh-syntax-highlighting.zsh#L126-161 - # - # Copyright (c) 2010-2011 zsh-syntax-highlighting contributors - # All rights reserved. - # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are - # met: - # - # * Redistributions of source code must retain the above copyright - # notice, this list of conditions and the following disclaimer. - # - # * Redistributions in binary form must reproduce the above copyright - # notice, this list of conditions and the following disclaimer in the - # documentation and/or other materials provided with the distribution. - # - # * Neither the name of the zsh-syntax-highlighting contributors nor the - # names of its contributors may be used to endorse or promote products - # derived from this software without specific prior written permission. - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # - #--------------8<-------------------8<-------------------8<----------------- - # Rebind all ZLE widgets to make them invoke _zsh_highlights. - _zsh_highlight_bind_widgets() - { - # Load ZSH module zsh/zleparameter, needed to override user defined widgets. - zmodload zsh/zleparameter 2>/dev/null || { - echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' >&2 - return 1 - } - - # Override ZLE widgets to make them invoke _zsh_highlight. - local cur_widget - for cur_widget in ${${(f)"$(builtin zle -la)"}:#(.*|_*|orig-*|run-help|which-command|beep|yank*)}; do - case $widgets[$cur_widget] in + # Check if $1 denotes the name of a callable function, i.e. it is fully + # defined or it is marked for autoloading and autoloading it at the first + # call to it will succeed. In particular, if $1 has been marked for + # autoloading but is not available in $fpath, then it will return 1 (false). + # + # This is based on the zsh-syntax-highlighting plugin. + # + _history-substring-search-function-callable() { + if (( ${+functions[$1]} )) && ! [[ "$functions[$1]" == *"builtin autoload -X"* ]]; then + return 0 # already fully loaded + else + # "$1" is either an autoload stub, or not a function at all. + # We expect 'autoload +X' to return non-zero if it fails to fully load + # the function. + ( autoload -U +X -- "$1" 2>/dev/null ) + return $? + fi + } - # Already rebound event: do nothing. - user:$cur_widget|user:_zsh_highlight_widget_*);; + # + # The zsh-syntax-highlighting plugin uses zle-line-pre-redraw hook instead + # of the legacy "bind all widgets" if 1) zsh has the memo= feature (added in + # version 5.9) and 2) add-zle-hook-widget is available. + # + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]] && _history-substring-search-function-callable add-zle-hook-widget; then + # + # The following code is based on the zsh-syntax-highlighting plugin. + # + autoload -U add-zle-hook-widget - # User defined widget: override and rebind old one with prefix "orig-". - user:*) eval "zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}; \ - _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + _history-substring-search-zle-line-finish() { + # + # Reset $WIDGET since the 'main' highlighter depends on it. + # + # Since $WIDGET is declared by zle as read-only in this function's scope, + # a nested function is required in order to shadow its built-in value; + # see "User-defined widgets" in zshall. + # + () { + local -h -r WIDGET=zle-line-finish + _zsh_highlight + } + } - # Completion widget: override and rebind old one with prefix "orig-". - completion:*) eval "zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \ - _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + _history-substring-search-zle-line-pre-redraw() { + # + # If the zsh-syntax-highlighting plugin has been loaded (after our plugin + # plugin, otherwise this hook wouldn't be called), remove our hooks. + # + if [[ $+ZSH_HIGHLIGHT_VERSION -eq 1 ]]; then + autoload -U add-zle-hook-widget + add-zle-hook-widget -d zle-line-pre-redraw _history-substring-search-zle-line-pre-redraw + add-zle-hook-widget -d zle-line-finish _history-substring-search-zle-line-finish + return 0 + fi + # + # Set $? to 0 for _zsh_highlight. Without this, subsequent + # zle-line-pre-redraw hooks won't run, since add-zle-hook-widget happens to + # call us with $? == 1 in the common case. + # + true && _zsh_highlight "$@" + } - # Builtin widget: override and make it call the builtin ".widget". - builtin) eval "_zsh_highlight_widget_$cur_widget() { builtin zle .$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + if [[ -o zle ]]; then + add-zle-hook-widget zle-line-pre-redraw _history-substring-search-zle-line-pre-redraw + add-zle-hook-widget zle-line-finish _history-substring-search-zle-line-finish + fi + else + # + # The following snippet was taken from the zsh-syntax-highlighting project: + # https://github.com/zsh-users/zsh-syntax-highlighting/blob/56b134f5d62ae3d4e66c7f52bd0cc2595f9b305b/zsh-syntax-highlighting.zsh#L126-161 + # + # SPDX-SnippetBegin + # SPDX-License-Identifier: BSD-3-Clause + # SPDX-SnippetCopyrightText: 2010-2011 zsh-syntax-highlighting contributors + #--------------8<-------------------8<-------------------8<----------------- + # Rebind all ZLE widgets to make them invoke _zsh_highlights. + _zsh_highlight_bind_widgets() + { + # Load ZSH module zsh/zleparameter, needed to override user defined widgets. + zmodload zsh/zleparameter 2>/dev/null || { + echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' >&2 + return 1 + } + + # Override ZLE widgets to make them invoke _zsh_highlight. + local cur_widget + for cur_widget in ${${(f)"$(builtin zle -la)"}:#(.*|_*|orig-*|run-help|which-command|beep|yank*)}; do + case $widgets[$cur_widget] in + + # Already rebound event: do nothing. + user:$cur_widget|user:_zsh_highlight_widget_*);; + + # User defined widget: override and rebind old one with prefix "orig-". + user:*) eval "zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}; \ + _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + + # Completion widget: override and rebind old one with prefix "orig-". + completion:*) eval "zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \ + _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + + # Builtin widget: override and make it call the builtin ".widget". + builtin) eval "_zsh_highlight_widget_$cur_widget() { builtin zle .$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + + # Default: unhandled case. + *) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;; + esac + done + } + #-------------->8------------------->8------------------->8----------------- + # SPDX-SnippetEnd - # Default: unhandled case. - *) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;; - esac - done - } - #-------------->8------------------->8------------------->8----------------- + _zsh_highlight_bind_widgets + fi - _zsh_highlight_bind_widgets + unfunction _history-substring-search-function-callable fi _history-substring-search-begin() { @@ -243,10 +295,17 @@ _history-substring-search-begin() { fi # - # Escape and join query parts with wildcard character '*' as separator - # `(j:CHAR:)` join array to string with CHAR as separator + # Escape and join query parts with wildcard character '*' as seperator + # `(j:CHAR:)` join array to string with CHAR as seperator + # + local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" + + # + # Support anchoring history search to the beginning of the command # - local search_pattern="*${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" + if [[ -z $HISTORY_SUBSTRING_SEARCH_PREFIXED ]]; then + search_pattern="*${search_pattern}" + fi # # Find all occurrences of the search pattern in the history file. @@ -304,12 +363,21 @@ _history-substring-search-begin() { _history-substring-search-end() { setopt localoptions extendedglob + local highlight_memo= _history_substring_search_result=$BUFFER + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]]; then + highlight_memo='memo=history-substring-search' + fi + # the search was successful so display the result properly by clearing away # existing highlights and moving the cursor to the end of the result buffer if [[ $_history_substring_search_refresh_display -eq 1 ]]; then - region_highlight=() + if [[ -n $highlight_memo ]]; then + region_highlight=( "${(@)region_highlight:#*${highlight_memo}*}" ) + else + region_highlight=() + fi CURSOR=${#BUFFER} fi @@ -329,7 +397,9 @@ _history-substring-search-end() { if [[ $query_part_match_index -le ${#BUFFER:$highlight_start_index} ]]; then highlight_start_index=$(( $highlight_start_index + $query_part_match_index )) highlight_end_index=$(( $highlight_start_index + ${#query_part} )) - region_highlight+=("$(($highlight_start_index - 1)) $(($highlight_end_index - 1)) $_history_substring_search_query_highlight") + region_highlight+=( + "$(($highlight_start_index - 1)) $(($highlight_end_index - 1)) ${_history_substring_search_query_highlight}${highlight_memo:+,$highlight_memo}" + ) fi done fi @@ -338,6 +408,23 @@ _history-substring-search-end() { # zle -R "mn: "$_history_substring_search_match_index" m#: "${#_history_substring_search_matches} # read -k -t 200 && zle -U $REPLY + # + # When this function returns, z-sy-h runs its line-pre-redraw hook. It has no + # logic for determining highlight priority, when two different memo= marked + # region highlights overlap; instead, it always prioritises itself. Below is + # a workaround for dealing with it. + # + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]]; then + zle -R + # + # After line redraw with desired highlight, wait for timeout or user input + # before removing search highlight and exiting. This ensures no highlights + # are left lingering after search is finished. + # + read -k -t ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_TIMEOUT:-1} && zle -U $REPLY + region_highlight=( "${(@)region_highlight:#*${highlight_memo}*}" ) + fi + # Exit successfully from the history-substring-search-* widgets. return 0 } From d2ffe8306a7a901569764979be917384d7e97f0f Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 16 Jan 2024 10:47:06 +0100 Subject: [PATCH 145/212] feat(history-substring-search): use new dependencies updater --- .github/dependencies.yml | 7 + .../update-from-upstream.zsh | 129 ------------------ 2 files changed, 7 insertions(+), 129 deletions(-) delete mode 100755 plugins/history-substring-search/update-from-upstream.zsh diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 6d138736ca27a..be46a79734d43 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -18,3 +18,10 @@ dependencies: set -e test -e _zshz && mv -f _zshz _z test -e zsh-z.plugin.zsh && mv -f zsh-z.plugin.zsh z.plugin.zsh + plugins/history-substring-search: + repo: zsh-users/zsh-history-substring-search + branch: master + version: 8f5d8a5aa9942da7b2a764c7fa79e0f36ba802f7 + precopy: | + set -e + test -e zsh-history-substring-search.plugin.zsh && mv zsh-history-substring-search.plugin.zsh history-substring-search.plugin.zsh diff --git a/plugins/history-substring-search/update-from-upstream.zsh b/plugins/history-substring-search/update-from-upstream.zsh deleted file mode 100755 index 81e1942a508e3..0000000000000 --- a/plugins/history-substring-search/update-from-upstream.zsh +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env zsh -# -# update-from-upstream.zsh -# -# This script updates the Oh My Zsh version of the zsh-history-substring-search -# plugin from the independent upstream repo. This is to be run by OMZ developers -# when they want to pull in new changes from upstream to OMZ. It is not run -# during normal use of the plugin. -# -# The official upstream repo is zsh-users/zsh-history-substring-search -# https://github.com/zsh-users/zsh-history-substring-search -# -# This is a zsh script, not a function. Call it with `zsh update-from-upstream.zsh` -# from the command line, running it from within the plugin directory. -# -# You can set the environment variable REPO_PATH to point it at an upstream -# repo you have already prepared. Otherwise, it will do a clean checkout of -# upstream's HEAD to a temporary local repo and use that. - - -# Just bail on any error so we don't have to do extra checking. -# This is a developer-use script, so terse output like that should -# be fine. -set -e - - -upstream_basename=zsh-history-substring-search -plugin_basename=history-substring-search -UPSTREAM_REPO=zsh-users/$upstream_basename -need_repo_cleanup=false -upstream_github_url="https://github.com/$UPSTREAM_REPO" - -if [[ -z "$UPSTREAM_REPO_PATH" ]]; then - # Do a clean checkout - my_tempdir=$(mktemp -d -t omz-update-histsubstrsrch) - UPSTREAM_REPO_PATH="$my_tempdir/$upstream_basename" - git clone "$upstream_github_url" "$UPSTREAM_REPO_PATH" - need_repo_cleanup=true - print "Checked out upstream repo to $UPSTREAM_REPO_PATH" -else - print "Using existing $upstream_basename repo at $UPSTREAM_REPO_PATH" -fi - -upstream="$UPSTREAM_REPO_PATH" - -# Figure out what we're pulling in -upstream_sha=$(cd $upstream && git rev-parse HEAD) -upstream_commit_date=$(cd $upstream && git log -1 --pretty=format:%ci) -upstream_just_date=${${=upstream_commit_date}[1]} -print "upstream SHA: $upstream_sha" -print "upstream commit time: $upstream_commit_date" -print "upstream commit date: $upstream_just_date" -print - -# Copy the files over, using the OMZ plugin's names where needed -cp -v "$upstream"/* . -mv -v zsh-history-substring-search.zsh $plugin_basename.zsh -mv -v zsh-history-substring-search.plugin.zsh $plugin_basename.plugin.zsh - -if [[ $need_repo_cleanup == true ]]; then - print "Removing temporary repo at $my_tempdir" - rm -rf "$my_tempdir" -fi - -# Do OMZ-specific edits - -print -print "Updating files with OMZ-specific stuff" -print - -# OMZ binds the keys as part of the plugin loading - -cat >> $plugin_basename.plugin.zsh <> README.md < Date: Tue, 16 Jan 2024 11:01:39 +0100 Subject: [PATCH 146/212] fix(history-substring-search): source properly plugin --- .../history-substring-search.plugin.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/history-substring-search/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh index 05bdbcd75f7f2..63f0bdd420037 100644 --- a/plugins/history-substring-search/history-substring-search.plugin.zsh +++ b/plugins/history-substring-search/history-substring-search.plugin.zsh @@ -1,5 +1,9 @@ -0=${(%):-%N} -source ${0:A:h}/zsh-history-substring-search.zsh +# Handle $0 according to the standard: +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + +source ${0:A:h}/history-substring-search.zsh # Bind terminal-specific up and down keys From d44ec1492bd46f6f0f9d6606649fee3fc11aac13 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 16 Jan 2024 11:02:07 +0100 Subject: [PATCH 147/212] ci(dependencies): create history-substring-search files as expected --- .github/dependencies.yml | 6 +++++- .../dependencies/OMZ-README.md | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 plugins/history-substring-search/dependencies/OMZ-README.md diff --git a/.github/dependencies.yml b/.github/dependencies.yml index be46a79734d43..f644322ff2a0e 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -24,4 +24,8 @@ dependencies: version: 8f5d8a5aa9942da7b2a764c7fa79e0f36ba802f7 precopy: | set -e - test -e zsh-history-substring-search.plugin.zsh && mv zsh-history-substring-search.plugin.zsh history-substring-search.plugin.zsh + rm -f zsh-history-substring-search.plugin.zsh + test -e zsh-history-substring-search.zsh && mv zsh-history-substring-search.zsh history-substring-search.zsh + postcopy: | + set -e + test -e dependencies/OMZ-README.md && cat dependencies/OMZ-README.md >> README.md diff --git a/plugins/history-substring-search/dependencies/OMZ-README.md b/plugins/history-substring-search/dependencies/OMZ-README.md new file mode 100644 index 0000000000000..9a2ef4d460789 --- /dev/null +++ b/plugins/history-substring-search/dependencies/OMZ-README.md @@ -0,0 +1,19 @@ + +--- + +## Oh My Zsh Distribution Notes + +What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search as an OMZ module inside +the Oh My Zsh distribution. + +The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at +https://github.com/zsh-users/zsh-history-substring-search. + +This downstream copy was last updated from the following upstream commit: + +SHA: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 Commit date: 2023-11-23 12:12:14 +0200 + +Everything above this section is a copy of the original upstream's README, so things may differ slightly when +you're using this inside OMZ. In particular, you do not need to set up key bindings for the up and down arrows +yourself in `~/.zshrc`; the OMZ plugin does that for you. You may still want to set up additional emacs- or +vi-specific bindings as mentioned above. From c0074974313215360a9529e01204792cdf6ca473 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 11:06:19 +0100 Subject: [PATCH 148/212] feat(history-substring-search): update to version 8dd05bfc (#12167) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> Co-authored-by: Carlo Sala --- .github/dependencies.yml | 2 +- plugins/history-substring-search/README.md | 27 +++++++------------ .../dependencies/OMZ-README.md | 4 --- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/.github/dependencies.yml b/.github/dependencies.yml index f644322ff2a0e..12beaecbb65e8 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -21,7 +21,7 @@ dependencies: plugins/history-substring-search: repo: zsh-users/zsh-history-substring-search branch: master - version: 8f5d8a5aa9942da7b2a764c7fa79e0f36ba802f7 + version: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 precopy: | set -e rm -f zsh-history-substring-search.plugin.zsh diff --git a/plugins/history-substring-search/README.md b/plugins/history-substring-search/README.md index eee279dfde796..71a389535527a 100644 --- a/plugins/history-substring-search/README.md +++ b/plugins/history-substring-search/README.md @@ -235,24 +235,17 @@ History * March 2016: Geza Lore (@gezalore) greatly refactored it in pull request #55. ------------------------------------------------------------------------------- -Oh My Zsh Distribution Notes ------------------------------------------------------------------------------- - -What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search -as an OMZ module inside the Oh My Zsh distribution. +--- -The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at -https://github.com/zsh-users/zsh-history-substring-search. - -This downstream copy was last updated from the following upstream commit: +## Oh My Zsh Distribution Notes - SHA: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 - Commit date: 2023-11-23 12:12:14 +0200 +What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search as an OMZ module inside +the Oh My Zsh distribution. -Everything above this section is a copy of the original upstream's README, so things -may differ slightly when you're using this inside OMZ. In particular, you do not -need to set up key bindings for the up and down arrows yourself in `~/.zshrc`; the OMZ -plugin does that for you. You may still want to set up additional emacs- or vi-specific -bindings as mentioned above. +The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at +https://github.com/zsh-users/zsh-history-substring-search. +Everything above this section is a copy of the original upstream's README, so things may differ slightly when +you're using this inside OMZ. In particular, you do not need to set up key bindings for the up and down arrows +yourself in `~/.zshrc`; the OMZ plugin does that for you. You may still want to set up additional emacs- or +vi-specific bindings as mentioned above. diff --git a/plugins/history-substring-search/dependencies/OMZ-README.md b/plugins/history-substring-search/dependencies/OMZ-README.md index 9a2ef4d460789..c5967bb7dcd6d 100644 --- a/plugins/history-substring-search/dependencies/OMZ-README.md +++ b/plugins/history-substring-search/dependencies/OMZ-README.md @@ -9,10 +9,6 @@ the Oh My Zsh distribution. The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at https://github.com/zsh-users/zsh-history-substring-search. -This downstream copy was last updated from the following upstream commit: - -SHA: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 Commit date: 2023-11-23 12:12:14 +0200 - Everything above this section is a copy of the original upstream's README, so things may differ slightly when you're using this inside OMZ. In particular, you do not need to set up key bindings for the up and down arrows yourself in `~/.zshrc`; the OMZ plugin does that for you. You may still want to set up additional emacs- or From c6ce22f1d221ea99e0d63edb445038a747c78884 Mon Sep 17 00:00:00 2001 From: Ali Sajid Imami <395482+AliSajid@users.noreply.github.com> Date: Wed, 17 Jan 2024 10:50:23 -0500 Subject: [PATCH 149/212] feat(vscode): add `vscp` alias (#12092) Co-authored-by: Carlo Sala --- plugins/vscode/README.md | 28 +++++++++++++++++----------- plugins/vscode/vscode.plugin.zsh | 2 ++ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md index 726b23d359f77..f91b533c99c5c 100644 --- a/plugins/vscode/README.md +++ b/plugins/vscode/README.md @@ -1,6 +1,7 @@ # VS Code -This plugin provides useful aliases to simplify the interaction between the command line and VS Code or VSCodium editor. +This plugin provides useful aliases to simplify the interaction between the command line and VS Code or +VSCodium editor. To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`: @@ -14,26 +15,30 @@ This plugin requires to have a flavour of VS Code installed and it's executable You can install either: -* VS Code (code) -* VS Code Insiders (code-insiders) -* VSCodium (codium) +- VS Code (code) +- VS Code Insiders (code-insiders) +- VSCodium (codium) ### MacOS + While Linux installations will add the executable to PATH, MacOS users might still have to do this manually: -[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), open -the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command: +[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), +open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command: + > Shell Command: Install 'code' command in PATH -[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal), open -the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command: +[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal), +open the Command Palette via (F1 or ⇧⌘P) and type shell command to find the Shell Command: + > Shell Command: Install 'codium' command in PATH ## Using multiple flavours -If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can -manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines). -This will make the plugin use your manually defined executable. +If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code +Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file +(between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined +executable. ```zsh ZSH_THEME=... @@ -61,6 +66,7 @@ source $ZSH/oh-my-zsh.sh | vscr | code --reuse-window | Force to open a file or folder in the last active window. | | vscw | code --wait | Wait for the files to be closed before returning. | | vscu `dir` | code --user-data-dir `dir` | Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code. | +| vscp `profile` | code --profile `profile` | Specifies the profile to open Code with. | ## Extensions aliases diff --git a/plugins/vscode/vscode.plugin.zsh b/plugins/vscode/vscode.plugin.zsh index 356c6236088da..77367bcac0df8 100644 --- a/plugins/vscode/vscode.plugin.zsh +++ b/plugins/vscode/vscode.plugin.zsh @@ -3,6 +3,7 @@ # https://github.com/MarsiBarsi (original author) # https://github.com/babakks # https://github.com/SteelShot +# https://github.com/AliSajid # Verify if any manual user choice of VS Code exists first. if [[ -n "$VSCODE" ]] && ! which $VSCODE &>/dev/null; then @@ -38,6 +39,7 @@ alias vscn="$VSCODE --new-window" alias vscr="$VSCODE --reuse-window" alias vscw="$VSCODE --wait" alias vscu="$VSCODE --user-data-dir" +alias vscp="$VSCODE --profile" alias vsced="$VSCODE --extensions-dir" alias vscie="$VSCODE --install-extension" From 486e56aba890e143dd02265bcd05ae32751eb55b Mon Sep 17 00:00:00 2001 From: Brian McKenna Date: Thu, 18 Jan 2024 03:09:43 +1100 Subject: [PATCH 150/212] feat(autojump): add path for nix per-user (#11935) Co-authored-by: Carlo Sala --- plugins/autojump/autojump.plugin.zsh | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 1b868ee8ddcb3..84333a89fccc1 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,18 +1,19 @@ declare -a autojump_paths autojump_paths=( - $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation - $HOME/.autojump/share/autojump/autojump.zsh # manual installation - $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation - /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation - /usr/share/autojump/autojump.zsh # Debian and Ubuntu package - /etc/profile.d/autojump.zsh # manual installation - /etc/profile.d/autojump.sh # Gentoo installation - /usr/local/share/autojump/autojump.zsh # FreeBSD installation - /usr/pkg/share/autojump/autojump.zsh # NetBSD installation - /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts - /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) - /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) - /etc/profiles/per-user/$USER/etc/profile.d/autojump.sh # macOS Nix, Home Manager and flakes + $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation + $HOME/.autojump/share/autojump/autojump.zsh # manual installation + $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation + /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation + /etc/profiles/per-user/$USER/share/autojump/autojump.zsh # Home Manager, NixOS with user-scoped packages + /usr/share/autojump/autojump.zsh # Debian and Ubuntu package + /etc/profile.d/autojump.zsh # manual installation + /etc/profile.d/autojump.sh # Gentoo installation + /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation + /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts + /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) + /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) + /etc/profiles/per-user/$USER/etc/profile.d/autojump.sh # macOS Nix, Home Manager and flakes ) for file in $autojump_paths; do From d43f03ba91c47934a40b436a6ea9e79449a4583a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlio=20Selva?= Date: Thu, 18 Jan 2024 15:34:30 -0300 Subject: [PATCH 151/212] feat(virtualenvwrapper): run function on startup (#12163) --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index d359e0c219a17..e037241e43965 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -88,4 +88,5 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then # http://zsh.sourceforge.net/Doc/Release/Functions.html autoload -U add-zsh-hook add-zsh-hook chpwd workon_cwd + [[ $PWD != ~ ]] && workon_cwd fi From f7b647e1b13ed9cd2f34f3559c112e61b8c03108 Mon Sep 17 00:00:00 2001 From: Michal Date: Sun, 21 Jan 2024 05:25:50 +0100 Subject: [PATCH 152/212] feat(spectrum): add `FX[dim]` format (#12172) --- lib/spectrum.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/spectrum.zsh b/lib/spectrum.zsh index 97f5c360a0588..31e37792c10cc 100644 --- a/lib/spectrum.zsh +++ b/lib/spectrum.zsh @@ -7,6 +7,7 @@ typeset -AHg FX FG BG FX=( reset "%{%}" bold "%{%}" no-bold "%{%}" + dim "%{%}" no-dim "%{%}" italic "%{%}" no-italic "%{%}" underline "%{%}" no-underline "%{%}" blink "%{%}" no-blink "%{%}" From e656377d36077b0ca757d995c9c35f0fea7c7fdd Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 24 Jan 2024 10:10:55 +0100 Subject: [PATCH 153/212] fix(web-search): encode spaces as `%20` --- plugins/web-search/web-search.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 1b42abe86a9cf..0fa2852dc3741 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -37,9 +37,14 @@ function web_search() { # search or go to main page depending on number of arguments passed if [[ $# -gt 1 ]]; then + # if search goes in the query string ==> space as +, otherwise %20 + # see https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 + local param="-P" + [[ "$urls[$1]" =~ .*\?.*=$ ]] && param="" + # build search url: # join arguments passed with '+', then append to search engine URL - url="${urls[$1]}$(omz_urlencode ${@[2,-1]})" + url="${urls[$1]}$(omz_urlencode $param ${@[2,-1]})" else # build main page url: # split by '/', then rejoin protocol (1) and domain (2) parts with '//' From 652037ebdfbe581e4c7dfcd0862ac2d1577c86d9 Mon Sep 17 00:00:00 2001 From: ditzy Date: Thu, 25 Jan 2024 03:19:01 -0600 Subject: [PATCH 154/212] fix(jump)!: only resolve mark symlink (#11074) BREAKING CHANGE: Previously, `jump` would resolve the symlink to the mark directory and resolve again if the mark directory was also a symlink. It only resolves once after this commit. --- plugins/jump/jump.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index 829c9d9cbf290..c2b21e92e7f0f 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -8,8 +8,10 @@ # export MARKPATH=$HOME/.marks + jump() { - builtin cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1} + local markpath="$(readlink $MARKPATH/$1)" || {echo "No such mark: $1"; return 1} + builtin cd "$markpath" 2>/dev/null || {echo "Destination does not exist for mark [$1]: $markpath"; return 2} } mark() { From 80c114cb3a64044ea50b623f96a35bc022db5e8d Mon Sep 17 00:00:00 2001 From: Eemil Lagerspetz Date: Thu, 25 Jan 2024 10:23:07 +0100 Subject: [PATCH 155/212] fix(awesomepanda): new line wrap Closes #5982 Co-authored-by: Carlo Sala --- themes/awesomepanda.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/awesomepanda.zsh-theme b/themes/awesomepanda.zsh-theme index 85036e4ace92b..00069739790a5 100644 --- a/themes/awesomepanda.zsh-theme +++ b/themes/awesomepanda.zsh-theme @@ -1,6 +1,6 @@ # the svn plugin has to be activated for this to work. local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" -PROMPT='${ret_status}%{$fg_bold[green]%} %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' +PROMPT='%{${ret_status}%}%{$fg_bold[green]%} %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 8b2ce98578da743fbc4a208285f33744d6abd3cf Mon Sep 17 00:00:00 2001 From: Frank Dana Date: Tue, 30 Jan 2024 05:43:03 -0500 Subject: [PATCH 156/212] feat(ssh): add plugin (#12186) Closes #2707 Co-authored-by: Frank Wittig Co-authored-by: Frank Wittig --- plugins/ssh/ssh.plugin.zsh | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 plugins/ssh/ssh.plugin.zsh diff --git a/plugins/ssh/ssh.plugin.zsh b/plugins/ssh/ssh.plugin.zsh new file mode 100644 index 0000000000000..085e71fa1c0b4 --- /dev/null +++ b/plugins/ssh/ssh.plugin.zsh @@ -0,0 +1,46 @@ +############################################################ +# Take all host sections in .ssh/config and offer them for +# completion as hosts (e.g. for ssh, rsync, scp and the like) +# Filter out wildcard host sections. +_ssh_configfile="$HOME/.ssh/config" +if [[ -f "$_ssh_configfile" ]]; then + _hosts=($(egrep '^Host.*' "$_ssh_configfile" | awk '{print $2}' | grep -v '^*' | sed -e 's/\.*\*$//')) + zstyle ':completion:*:hosts' hosts $_hosts + unset _hosts +fi +unset _ssh_configfile + +############################################################ +# Remove host key from known hosts based on a host section +# name from .ssh/config +function ssh_rmhkey { + local ssh_configfile="$HOME/.ssh/config" + local ssh_host="$1" + if [[ -z "$ssh_host" ]]; then return; fi + ssh-keygen -R $(grep -A10 "$ssh_host" "$ssh_configfile" | grep -i HostName | head -n 1 | awk '{print $2}') +} +compctl -k hosts ssh_rmhkey + +############################################################ +# Load SSH key into agent +function ssh_load_key() { + local key="$1" + if [[ -z "$key" ]]; then return; fi + local keyfile="$HOME/.ssh/$key" + local keysig=$(ssh-keygen -l -f "$keyfile") + if ( ! ssh-add -l | grep -q "$keysig" ); then + ssh-add "$keyfile" + fi +} + +############################################################ +# Remove SSH key from agent +function ssh_unload_key { + local key="$1" + if [[ -z "$key" ]]; then return; fi + local keyfile="$HOME/.ssh/$key" + local keysig=$(ssh-keygen -l -f "$keyfile") + if ( ssh-add -l | grep -q "$keysig" ); then + ssh-add -d "$keyfile" + fi +} From e195c7cb438224e8bcea20bdbc2e4b8a6bb3949b Mon Sep 17 00:00:00 2001 From: Gauthier Delacroix <1533042+gdlx@users.noreply.github.com> Date: Tue, 30 Jan 2024 21:36:18 +0100 Subject: [PATCH 157/212] fix(aws): pass default region to fetch regions (#12175) Co-authored-by: Gauthier Delacroix --- plugins/aws/aws.plugin.zsh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index fd00714e72c6f..7a2e08a7ca7c2 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -202,8 +202,17 @@ function aws_change_access_key() { } function aws_regions() { + local region + if [[ $AWS_DEFAULT_REGION ]];then + region="$AWS_DEFAULT_REGION" + elif [[ $AWS_REGION ]];then + region="$AWS_REGION" + else + region="us-west-1" + fi + if [[ $AWS_DEFAULT_PROFILE || $AWS_PROFILE ]];then - aws ec2 describe-regions |grep RegionName | awk -F ':' '{gsub(/"/, "", $2);gsub(/,/, "", $2);gsub(/ /, "", $2); print $2}' + aws ec2 describe-regions --region $region |grep RegionName | awk -F ':' '{gsub(/"/, "", $2);gsub(/,/, "", $2);gsub(/ /, "", $2); print $2}' else echo "You must specify a AWS profile." fi From 4efad7ab1ba0d1715af62e484c6852808581cfb9 Mon Sep 17 00:00:00 2001 From: Rejman Nascimento <72097727+rejmann@users.noreply.github.com> Date: Thu, 1 Feb 2024 12:54:24 -0300 Subject: [PATCH 158/212] feat(git-commit): add `wip` kind (#12188) --- plugins/git-commit/README.md | 4 +++- plugins/git-commit/git-commit.plugin.zsh | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md index 91cc73b44f8db..a009839355e6d 100644 --- a/plugins/git-commit/README.md +++ b/plugins/git-commit/README.md @@ -29,8 +29,9 @@ Where `type` is one of the following: - `rev` - `style` - `test` +- `wip` -> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. +> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. > It will still generate a commit message in the format `revert: ` ## Examples @@ -38,5 +39,6 @@ Where `type` is one of the following: | Git alias | Command | | --------------------------------------------- | ---------------------------------------------------- | | `git style "remove trailing whitespace"` | `git commit -m "style: remove trailing whitespace"` | +| `git wip "work in progress"` | `git commit -m "work in progress"` | | `git fix -s "router" "correct redirect link"` | `git commit -m "fix(router): correct redirect link"` | | `git rev -s "api" "rollback v2"` | `git commit -m "revert(api): rollback v2"` | diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 72cecb1d62d30..3f0c2121dda4e 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -11,6 +11,7 @@ _git_commit_aliases=( 'revert' 'style' 'test' + 'wip' ) local alias type From 6f215cd6922a76cf8ac6f629d0de386c3eb6667a Mon Sep 17 00:00:00 2001 From: Harkesh <100549064+harkeshbirman@users.noreply.github.com> Date: Thu, 1 Feb 2024 21:30:27 +0530 Subject: [PATCH 159/212] feat(git): add `grf` alias (#12176) --- plugins/git/README.md | 1 + plugins/git/git.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/git/README.md b/plugins/git/README.md index be3f85827e0ee..4acb0c8583d55 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -152,6 +152,7 @@ plugins=(... git) | `grbd` | `git rebase $(git_develop_branch)` | | `grbm` | `git rebase $(git_main_branch)` | | `grbom` | `git rebase origin/$(git_main_branch)` | +| `grf` | `git reflog` | | `gr` | `git remote` | | `grv` | `git remote --verbose` | | `gra` | `git remote add` | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5c3064e8a368a..692a36a73bb9d 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -335,6 +335,7 @@ alias grbs='git rebase --skip' alias grbd='git rebase $(git_develop_branch)' alias grbm='git rebase $(git_main_branch)' alias grbom='git rebase origin/$(git_main_branch)' +alias grf='git reflog' alias gr='git remote' alias grv='git remote --verbose' alias gra='git remote add' From 05bf69c604e34300b02406462d4376c86d595470 Mon Sep 17 00:00:00 2001 From: 0rxa Date: Thu, 1 Feb 2024 17:11:13 +0100 Subject: [PATCH 160/212] feat(aws): implement permanent state (#12018) Co-authored-by: Rei Arifi Co-authored-by: Hysen Ndregjoni --- plugins/aws/README.md | 5 +++++ plugins/aws/aws.plugin.zsh | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/plugins/aws/README.md b/plugins/aws/README.md index dbf8dcfeb8b82..0d0773f6364e3 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -47,6 +47,11 @@ plugins=(... aws) Some themes might overwrite the value of RPROMPT instead of appending to it, so they'll need to be fixed to see the AWS profile/region prompt. +* Set `AWS_PROFILE_STATE_ENABLED=true` in your zshrc file if you want the aws profile to persist between shell sessions. + This option might slow down your shell startup time. + By default the state file path is `/tmp/.aws_current_profile`. This means that the state won't survive a reboot or otherwise GC. + You can control the state file path using the `AWS_STATE_FILE` environment variable. + ## Theme The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 7a2e08a7ca7c2..071dd1f0b9a9f 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -6,10 +6,26 @@ function agr() { echo $AWS_REGION } +# Update state file if enabled +function _aws_update_state() { + if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + test -d $(dirname ${AWS_STATE_FILE}) || exit 1 + echo "${AWS_PROFILE} ${AWS_REGION}" > "${AWS_STATE_FILE}" + fi +} + +function _aws_clear_state() { + if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + test -d $(dirname ${AWS_STATE_FILE}) || exit 1 + echo -n > "${AWS_STATE_FILE}" + fi +} + # AWS profile selection function asp() { if [[ -z "$1" ]]; then unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE AWS_PROFILE_REGION + _aws_clear_state echo AWS profile cleared. return fi @@ -28,6 +44,8 @@ function asp() { export AWS_PROFILE_REGION=$(aws configure get region) + _aws_update_state + if [[ "$2" == "login" ]]; then if [[ -n "$3" ]]; then aws sso login --sso-session $3 @@ -43,6 +61,7 @@ function asp() { function asr() { if [[ -z "$1" ]]; then unset AWS_DEFAULT_REGION AWS_REGION + _aws_update_state echo AWS region cleared. return fi @@ -56,6 +75,7 @@ function asr() { export AWS_REGION=$1 export AWS_DEFAULT_REGION=$1 + _aws_update_state } # AWS profile switch @@ -255,6 +275,22 @@ if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; th RPROMPT='$(aws_prompt_info)'"$RPROMPT" fi +if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + AWS_STATE_FILE="${AWS_STATE_FILE:-/tmp/.aws_current_profile}" + test -s "${AWS_STATE_FILE}" || return + + aws_state=($(cat $AWS_STATE_FILE)) + + export AWS_DEFAULT_PROFILE="${aws_state[1]}" + export AWS_PROFILE="$AWS_DEFAULT_PROFILE" + export AWS_EB_PROFILE="$AWS_DEFAULT_PROFILE" + + test -z "${aws_state[2]}" && AWS_REGION=$(aws configure get region) + + export AWS_REGION=${AWS_REGION:-$aws_state[2]} + export AWS_DEFAULT_REGION="$AWS_REGION" +fi + # Load awscli completions # AWS CLI v2 comes with its own autocompletion. Check if that is there, otherwise fall back From d6658f9af321e615a9b8be696f557a113cd6b026 Mon Sep 17 00:00:00 2001 From: Eric Schultz Date: Thu, 1 Feb 2024 10:16:34 -0600 Subject: [PATCH 161/212] feat(stripe): add completion plugin (#12064) Co-authored-by: Carlo Sala --- plugins/stripe/README.md | 9 +++++++++ plugins/stripe/stripe.plugin.zsh | 13 +++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 plugins/stripe/README.md create mode 100644 plugins/stripe/stripe.plugin.zsh diff --git a/plugins/stripe/README.md b/plugins/stripe/README.md new file mode 100644 index 0000000000000..9f0f32bc2bcd2 --- /dev/null +++ b/plugins/stripe/README.md @@ -0,0 +1,9 @@ +# Struoe + +This plugin provides completion for the [Stripe CLI](https://stripe.com/docs/stripe-cli). + +To use it add stripe to the plugins array in your zshrc file. + +```bash +plugins=(... stripe) +``` diff --git a/plugins/stripe/stripe.plugin.zsh b/plugins/stripe/stripe.plugin.zsh new file mode 100644 index 0000000000000..e2041bef2f12b --- /dev/null +++ b/plugins/stripe/stripe.plugin.zsh @@ -0,0 +1,13 @@ +if (( ! $+commands[stripe] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `stripe`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_stripe" ]]; then + typeset -g -A _comps + autoload -Uz _stripe + _comps[stripe]=_stripe +fi + +stripe completion --shell zsh --write-to-stdout >| "$ZSH_CACHE_DIR/completions/_stripe" &| From b5e6392f2140b7aa49c248aa6c232a6922d3311b Mon Sep 17 00:00:00 2001 From: Markus Hofbauer Date: Thu, 1 Feb 2024 17:37:37 +0100 Subject: [PATCH 162/212] feat(hazel): add some aliases (#12070) --- plugins/bazel/README.md | 12 ++++++++++-- plugins/bazel/bazel.plugin.zsh | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 plugins/bazel/bazel.plugin.zsh diff --git a/plugins/bazel/README.md b/plugins/bazel/README.md index fc375d2197706..eba4175bc50fc 100644 --- a/plugins/bazel/README.md +++ b/plugins/bazel/README.md @@ -1,7 +1,6 @@ # Bazel plugin -This plugin adds completion for [bazel](https://bazel.build), an open-source build and -test tool that scalably supports multi-language and multi-platform projects. +This plugin adds completion and aliases for [bazel](https://bazel.build), an open-source build and test tool that scalably supports multi-language and multi-platform projects. To use it, add `bazel` to the plugins array in your zshrc file: @@ -12,3 +11,12 @@ plugins=(... bazel) The plugin has a copy of [the completion script from the git repository][1]. [1]: https://github.com/bazelbuild/bazel/blob/master/scripts/zsh_completion/_bazel + +## Aliases + +| Alias | Command | Description | +| ------- | -------------------------------------- | ------------------------------------------------------ | +| bzb | `bazel build` | The `bazel build` command | +| bzt | `bazel test` | The `bazel test` command | +| bzr | `bazel run` | The `bazel run` command | +| bzq | `bazel query` | The `bazel query` command | diff --git a/plugins/bazel/bazel.plugin.zsh b/plugins/bazel/bazel.plugin.zsh new file mode 100644 index 0000000000000..d239a06b57e8d --- /dev/null +++ b/plugins/bazel/bazel.plugin.zsh @@ -0,0 +1,5 @@ +# Aliases for bazel +alias bzb='bazel build' +alias bzt='bazel test' +alias bzr='bazel run' +alias bzq='bazel query' From 69b0dfeadf35a6da8de41501149cf3a3817218cf Mon Sep 17 00:00:00 2001 From: lutra <49721741+lutra@users.noreply.github.com> Date: Fri, 2 Feb 2024 17:12:36 +0100 Subject: [PATCH 163/212] fix(kubectx): k8s contexts with spaces (#12191) --- plugins/kubectx/kubectx.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kubectx/kubectx.plugin.zsh b/plugins/kubectx/kubectx.plugin.zsh index 6096feeae43d3..a3210faccd2ce 100644 --- a/plugins/kubectx/kubectx.plugin.zsh +++ b/plugins/kubectx/kubectx.plugin.zsh @@ -9,5 +9,5 @@ function kubectx_prompt_info() { # use value in associative array if it exists # otherwise fall back to the context name - echo "${kubectx_mapping[$current_ctx]:-${current_ctx:gs/%/%%}}" + echo "${kubectx_mapping[\"$current_ctx\"]:-${current_ctx:gs/%/%%}}" } From bebd9ea59f6f5ed629b659dc1f230ac71b1fd1a8 Mon Sep 17 00:00:00 2001 From: Markus Hofbauer Date: Sat, 3 Feb 2024 10:18:33 +0100 Subject: [PATCH 164/212] chore(brew): remove duplicated alias (#12192) --- plugins/brew/brew.plugin.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index 44703637612cf..b15137e0f5b73 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -36,7 +36,6 @@ fi alias bcubc='brew upgrade --cask && brew cleanup' alias bcubo='brew update && brew outdated --cask' -alias bcubc='brew upgrade --cask && brew cleanup' alias brewp='brew pin' alias brewsp='brew list --pinned' alias bubc='brew upgrade && brew cleanup' From 70bf12402ceb5599f209bd687d4ee9d9dbf1776a Mon Sep 17 00:00:00 2001 From: Taylor Cochran Date: Sat, 3 Feb 2024 13:50:44 -0800 Subject: [PATCH 165/212] fix(prompt): quote ruby prompt (#12195) --- lib/prompt_info_functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index 3dc9b6d10d042..29aca9b486f09 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -40,5 +40,5 @@ ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" # use this to enable users to see their ruby version, no matter which # version management system they use function ruby_prompt_info() { - echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info) + echo "$(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)" } From 212437090032ea1c8c7ccbc1bc2937083c2e7185 Mon Sep 17 00:00:00 2001 From: Rayzeq Date: Sun, 4 Feb 2024 18:21:31 +0100 Subject: [PATCH 166/212] fix(sublime): pass user's env to `sst` (#12194) --- plugins/sublime/sublime.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index dadf37574de3e..cc84de7377ddc 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -4,7 +4,7 @@ alias st=subl alias stt='subl .' # Define sst only if sudo exists -(( $+commands[sudo] )) && alias sst='sudo subl' +(( $+commands[sudo] )) && alias sst='sudo -EH subl' alias stp=find_project alias stn=create_project @@ -62,7 +62,7 @@ alias stn=create_project for _sublime_path in $_sublime_paths; do if [[ -a $_sublime_path ]]; then alias subl="'$_sublime_path'" - (( $+commands[sudo] )) && alias sst="sudo '$_sublime_path'" + (( $+commands[sudo] )) && alias sst="sudo -EH '$_sublime_path'" break fi done From 883da63320806532f3d3246b03f934e15aff3bab Mon Sep 17 00:00:00 2001 From: Mateus Fernandes de Mello Date: Tue, 6 Feb 2024 07:26:30 -0300 Subject: [PATCH 167/212] feat(web-search): add programming packages search (#12199) --- plugins/web-search/README.md | 4 ++++ plugins/web-search/web-search.plugin.zsh | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index cf5bab3f78bf7..d21c81ca9c566 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -46,6 +46,10 @@ Available search contexts are: | `ask` | `https://www.ask.com/web?q=` | | `youtube` | `https://www.youtube.com/results?search_query=` | | `deepl` | `https://www.deepl.com/translator#auto/auto/` | +| `dockerhub` | `https://hub.docker.com/search?q=` | +| `npmpkg` | `https://www.npmjs.com/search?q=` | +| `packagist` | `https://packagist.org/?query=` | +| `gopkg` | `https://pkg.go.dev/search?m=package&q=` | Also there are aliases for bang-searching DuckDuckGo: diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 0fa2852dc3741..2fe4aea84f28d 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -27,6 +27,10 @@ function web_search() { ask "https://www.ask.com/web?q=" youtube "https://www.youtube.com/results?search_query=" deepl "https://www.deepl.com/translator#auto/auto/" + dockerhub "https://hub.docker.com/search?q=" + npmpkg "https://www.npmjs.com/search?q=" + packagist "https://packagist.org/?query=" + gopkg "https://pkg.go.dev/search?m=package&q=" ) # check whether the search engine is supported @@ -75,6 +79,10 @@ alias scholar='web_search scholar' alias ask='web_search ask' alias youtube='web_search youtube' alias deepl='web_search deepl' +alias dockerhub='web_search dockerhub' +alias npmpkg='web_search npmpkg' +alias packagist='web_search packagist' +alias gopkg='web_search gopkg' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' From 43613d7b710f9a06971fac48dea3301bbc15b579 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Wed, 7 Feb 2024 11:16:36 +0100 Subject: [PATCH 168/212] fix(web-search): use pattern instead of regex Closes #12202 --- plugins/web-search/web-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 2fe4aea84f28d..c602e062311ac 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -44,7 +44,7 @@ function web_search() { # if search goes in the query string ==> space as +, otherwise %20 # see https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 local param="-P" - [[ "$urls[$1]" =~ .*\?.*=$ ]] && param="" + [[ "$urls[$1]" == *\?*= ]] && param="" # build search url: # join arguments passed with '+', then append to search engine URL From fff073b55defed72a0a1aac4e853b165f208735b Mon Sep 17 00:00:00 2001 From: vladislav doster <10052309+vladdoster@users.noreply.github.com> Date: Thu, 8 Feb 2024 08:41:34 -0600 Subject: [PATCH 169/212] style(completion): remove extra space (#12206) --- lib/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 63379b53f8d12..5a233a3225014 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -49,7 +49,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \ clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \ gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \ - ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \ + ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \ named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \ operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \ rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \ From bdcb4d9d1f36d5d82720dfd53f0c95242ab62dae Mon Sep 17 00:00:00 2001 From: SgtDaJim Date: Mon, 12 Feb 2024 16:43:52 +0800 Subject: [PATCH 170/212] feat(bira): add support for `kube-ps1` prompt (#8437) --- themes/bira.zsh-theme | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme index 42a70a0189531..f909afa62b8df 100644 --- a/themes/bira.zsh-theme +++ b/themes/bira.zsh-theme @@ -6,10 +6,15 @@ local current_dir="%B%{$fg[blue]%}%~ %{$reset_color%}" local vcs_branch='$(git_prompt_info)$(hg_prompt_info)' local rvm_ruby='$(ruby_prompt_info)' local venv_prompt='$(virtualenv_prompt_info)' +if [[ "${plugins[@]}" =~ 'kube-ps1' ]]; then + local kube_prompt='$(kube_ps1)' +else + local kube_prompt='' +fi ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" -PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${vcs_branch}${venv_prompt} +PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${vcs_branch}${venv_prompt}${kube_prompt} ╰─%B${user_symbol}%b " RPROMPT="%B${return_code}%b" From 8f22370af8bd390ea3b8610da1ccf388826d909d Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 12 Feb 2024 09:48:38 +0100 Subject: [PATCH 171/212] fix(key-bindings): bind default arrow keys to `beginning-search` Fixes #12197 --- lib/key-bindings.zsh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index aaa73046ea1a4..a5650dd81ce60 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -32,19 +32,26 @@ if [[ -n "${terminfo[knp]}" ]]; then fi # Start typing + [Up-Arrow] - fuzzy find history forward -if [[ -n "${terminfo[kcuu1]}" ]]; then - autoload -U up-line-or-beginning-search - zle -N up-line-or-beginning-search +autoload -U up-line-or-beginning-search +zle -N up-line-or-beginning-search +bindkey -M emacs "^[[A" up-line-or-beginning-search +bindkey -M viins "^[[A" up-line-or-beginning-search +bindkey -M vicmd "^[[A" up-line-or-beginning-search +if [[ -n "${terminfo[kcuu1]}" ]]; then bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search fi + # Start typing + [Down-Arrow] - fuzzy find history backward -if [[ -n "${terminfo[kcud1]}" ]]; then - autoload -U down-line-or-beginning-search - zle -N down-line-or-beginning-search +autoload -U down-line-or-beginning-search +zle -N down-line-or-beginning-search +bindkey -M emacs "^[[B" down-line-or-beginning-search +bindkey -M viins "^[[B" down-line-or-beginning-search +bindkey -M vicmd "^[[B" down-line-or-beginning-search +if [[ -n "${terminfo[kcud1]}" ]]; then bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search From 514d5736ea7b1af2cb2e6617048236aa9b34fc51 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Tue, 13 Feb 2024 17:25:16 +0100 Subject: [PATCH 172/212] ci: enable dependabot --- .github/dependabot.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000000..4dc9f3854138d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: "weekly" + day: "sunday" + - package-ecosystem: "pip" + directory: "/.github/workflows/dependencies" + schedule: + interval: "weekly" + day: "sunday" From f9bbf6047b35ff00ea398857d2a09ffea5cd8bfa Mon Sep 17 00:00:00 2001 From: Raphael Boidol Date: Tue, 13 Feb 2024 17:32:44 +0100 Subject: [PATCH 173/212] ci: bump `actions/checkout` version (#12210) --- .github/workflows/installer.yml | 4 ++-- .github/workflows/main.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml index cad5d445b9c85..5593c9175f412 100644 --- a/.github/workflows/installer.yml +++ b/.github/workflows/installer.yml @@ -26,7 +26,7 @@ jobs: - macos-latest steps: - name: Set up git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install zsh if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh @@ -42,7 +42,7 @@ jobs: - test steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Vercel CLI run: npm install -g vercel - name: Setup project and deploy diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index de7d982628739..264ac31f3d5b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: if: github.repository == 'ohmyzsh/ohmyzsh' steps: - name: Set up git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install zsh run: sudo apt-get update; sudo apt-get install zsh - name: Check syntax From 872b5cd4086a5547dbf788dda4e96ab3868cf59b Mon Sep 17 00:00:00 2001 From: Frederik Ring Date: Wed, 14 Feb 2024 12:14:08 +0100 Subject: [PATCH 174/212] docs(kubectx): add quoting to array keys (#12216) --- plugins/kubectx/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/kubectx/README.md b/plugins/kubectx/README.md index 98f1cf03222c4..d924e745c1d0a 100644 --- a/plugins/kubectx/README.md +++ b/plugins/kubectx/README.md @@ -17,9 +17,9 @@ One can rename default context name for better readability. _Example_. Add to **.zshrc**: ``` -kubectx_mapping[minikube]="mini" -kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]" -kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}" +kubectx_mapping["minikube"]="mini" +kubectx_mapping["context_name_from_kubeconfig"]="$emoji[wolf_face]" +kubectx_mapping["production_cluster"]="%{$fg[yellow]%}prod!%{$reset_color%}" ``` ![staging](stage.png) From 15ffbdd346daa58de6701d3421787012420aa6cc Mon Sep 17 00:00:00 2001 From: Julian <489233+naydichev@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:29:37 +0100 Subject: [PATCH 175/212] feat(zoxide): add option to override cmd (#12218) --- plugins/zoxide/README.md | 3 +++ plugins/zoxide/zoxide.plugin.zsh | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/zoxide/README.md b/plugins/zoxide/README.md index f326effe668cb..45f77bdf584e5 100644 --- a/plugins/zoxide/README.md +++ b/plugins/zoxide/README.md @@ -10,5 +10,8 @@ To use it, add `zoxide` to the plugins array in your `.zshrc` file: ```zsh plugins=(... zoxide) ``` +## Overriding `z` Alias + +You can set the `ZOXIDE_CMD_OVERRIDE`, which will be passed to the `--cmd` flag of `zoxide init`. This allows you to set your `z` command to a default of `cd`. **Note:** you have to [install zoxide](https://github.com/ajeetdsouza/zoxide#step-1-install-zoxide) first. diff --git a/plugins/zoxide/zoxide.plugin.zsh b/plugins/zoxide/zoxide.plugin.zsh index e5658b8f0a5ea..25d2e83778b78 100644 --- a/plugins/zoxide/zoxide.plugin.zsh +++ b/plugins/zoxide/zoxide.plugin.zsh @@ -1,5 +1,5 @@ if (( $+commands[zoxide] )); then - eval "$(zoxide init zsh)" + eval "$(zoxide init --cmd ${ZOXIDE_CMD_OVERRIDE:-z} zsh)" else echo '[oh-my-zsh] zoxide not found, please install it from https://github.com/ajeetdsouza/zoxide' fi From 40ff950fcd081078a8cd3de0eaab784f85c681d5 Mon Sep 17 00:00:00 2001 From: Oren Date: Tue, 20 Feb 2024 11:59:12 +0200 Subject: [PATCH 176/212] fix(docker): support completion on snap installs (#12224) --- plugins/docker/docker.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 7e657f2dfc266..b429ae211b746 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -57,6 +57,6 @@ fi ! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" else - command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker" + command docker completion zsh | tee "$ZSH_CACHE_DIR/completions/_docker" > /dev/null fi } &| From fcab8f161139d04fb1137be815d8130584a99713 Mon Sep 17 00:00:00 2001 From: Juan Morete Date: Fri, 23 Feb 2024 11:25:53 +0100 Subject: [PATCH 177/212] docs(ansible): remove duplicated alias entry (#12235) --- plugins/ansible/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/ansible/README.md b/plugins/ansible/README.md index e0e6a19bb293f..ce21e70753939 100644 --- a/plugins/ansible/README.md +++ b/plugins/ansible/README.md @@ -21,7 +21,6 @@ plugins=(... ansible) | `acon` | command `ansible-console` | | `ainv` | command `ansible-inventory` | | `aplaybook` | command `ansible-playbook` | -| `ainv` | command `ansible-inventory` | | `adoc` | command `ansible-doc` | | `agal` | command `ansible-galaxy` | | `apull` | command `ansible-pull` | From c891b7e6ada5427f4c8cca05c8ed1ae33cb49943 Mon Sep 17 00:00:00 2001 From: Dusk Date: Tue, 27 Feb 2024 15:09:02 -0400 Subject: [PATCH 178/212] feat(tmux): add option for detached mode (#12242) --- plugins/tmux/README.md | 15 ++++++++------- plugins/tmux/tmux.plugin.zsh | 6 ++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index b4516ef2657a4..a253457f2b803 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -19,13 +19,13 @@ The plugin also supports the following: | ---------- | -------------------------- | -------------------------------------------------------- | | `ta` | tmux attach -t | Attach new tmux session to already running named session | | `tad` | tmux attach -d -t | Detach named tmux session | -| `ts` | tmux new-session -s | Create a new named tmux session | -| `tl` | tmux list-sessions | Displays a list of running tmux sessions | -| `tksv` | tmux kill-server | Terminate all running tmux sessions | +| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path | | `tkss` | tmux kill-session -t | Terminate named running tmux session | +| `tksv` | tmux kill-server | Terminate all running tmux sessions | +| `tl` | tmux list-sessions | Displays a list of running tmux sessions | | `tmux` | `_zsh_tmux_plugin_run` | Start a new tmux session | | `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor | -| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path | +| `ts` | tmux new-session -s | Create a new named tmux session | ## Configuration Variables @@ -35,10 +35,11 @@ The plugin also supports the following: | `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | | `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | | `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | +| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | +| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | +| `ZSH_TMUX_DETACHED` | Set the detached mode (default: `false`) | | `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | -| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | | `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | | `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | -| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | +| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | | `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | -| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 72cdd481830b7..0ecb0a5b5a5cd 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -14,6 +14,8 @@ fi # Automatically close the terminal when tmux exits : ${ZSH_TMUX_AUTOQUIT:=$ZSH_TMUX_AUTOSTART} # Set term to screen or screen-256color based on current terminal support +: ${ZSH_TMUX_DETACHED:=false} +# Set detached mode : ${ZSH_TMUX_FIXTERM:=true} # Set '-CC' option for iTerm2 tmux integration : ${ZSH_TMUX_ITERM2:=false} @@ -79,9 +81,9 @@ function _zsh_tmux_plugin_run() { # Try to connect to an existing session. if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach -t $ZSH_TMUX_DEFAULT_SESSION_NAME + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach ${ZSH_TMUX_DETACHED:+"-d"} -t $ZSH_TMUX_DEFAULT_SESSION_NAME else - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach ${ZSH_TMUX_DETACHED:+"-d"} fi # If failed, just run tmux, fixing the TERM variable if requested. From 51bf9fc2def19f1d3059c15059df21ddddb518fd Mon Sep 17 00:00:00 2001 From: Pandu E POLUAN Date: Wed, 28 Feb 2024 16:52:09 +0700 Subject: [PATCH 179/212] feat(tmux): prioritize `tmux` terminfo (#12243) Co-authored-by: Carlo Sala --- plugins/tmux/README.md | 32 ++++++++++++++++---------------- plugins/tmux/tmux.plugin.zsh | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index a253457f2b803..50f8b2c2f21a0 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -1,7 +1,7 @@ # tmux -This plugin provides aliases for [tmux](https://tmux.github.io/), the terminal multiplexer. -To use it add `tmux` to the plugins array in your zshrc file. +This plugin provides aliases for [tmux](https://tmux.github.io/), the terminal multiplexer. To use it add +`tmux` to the plugins array in your zshrc file. ```zsh plugins=(... tmux) @@ -29,17 +29,17 @@ The plugin also supports the following: ## Configuration Variables -| Variable | Description | -| ----------------------------------- | ------------------------------------------------------------------------------------------- | -| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | -| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | -| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | -| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | -| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | -| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | -| `ZSH_TMUX_DETACHED` | Set the detached mode (default: `false`) | -| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | -| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | -| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | -| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | -| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | +| Variable | Description | +| ----------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | +| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | +| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | +| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | +| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | +| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | +| `ZSH_TMUX_DETACHED` | Set the detached mode (default: `false`) | +| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | +| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `tmux` if available, `screen` otherwise) | +| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `tmux-256color` if available, `screen-256color` otherwise) | +| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | +| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 0ecb0a5b5a5cd..09e326344f705 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -20,13 +20,21 @@ fi # Set '-CC' option for iTerm2 tmux integration : ${ZSH_TMUX_ITERM2:=false} # The TERM to use for non-256 color terminals. -# Tmux states this should be screen, but you may need to change it on +# Tmux states this should be tmux|screen, but you may need to change it on # systems without the proper terminfo -: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen} +if [[ -e /usr/share/terminfo/t/tmux ]]; then + : ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=tmux} +else + : ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen} +fi # The TERM to use for 256 color terminals. -# Tmux states this should be screen-256color, but you may need to change it on +# Tmux states this should be (tmux|screen)-256color, but you may need to change it on # systems without the proper terminfo -: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} +if [[ -e /usr/share/terminfo/t/tmux-256color ]]; then + : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=tmux-256color} +else + : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} +fi # Set the configuration path if [[ -e $HOME/.tmux.conf ]]; then : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} From 6a65ac90259d87f7549c581372403405ef01b7d2 Mon Sep 17 00:00:00 2001 From: Pandu E POLUAN Date: Thu, 29 Feb 2024 15:40:40 +0700 Subject: [PATCH 180/212] feat(eza): create plugin (#12237) Co-authored-by: Carlo Sala --- .github/CODEOWNERS | 5 +- plugins/eza/README.md | 101 +++++++++++++++++++++++++++++++++++++ plugins/eza/eza.plugin.zsh | 62 +++++++++++++++++++++++ 3 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 plugins/eza/README.md create mode 100644 plugins/eza/eza.plugin.zsh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 0c5f3aceece02..361ed624be8f2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,13 +1,14 @@ # Plugin owners plugins/archlinux/ @ratijas +plugins/dbt/ @msempere +plugins/eza/ @pepoluan plugins/genpass/ @atoponce plugins/git-lfs/ @hellovietduc plugins/gitfast/ @felipec plugins/react-native @esthor plugins/sdk/ @rgoldberg plugins/shell-proxy/ @septs +plugins/starship/ @axieax plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza -plugins/starship/ @axieax -plugins/dbt/ @msempere diff --git a/plugins/eza/README.md b/plugins/eza/README.md new file mode 100644 index 0000000000000..5de935c2c81e8 --- /dev/null +++ b/plugins/eza/README.md @@ -0,0 +1,101 @@ +# eza plugin + +This provides aliases that invoke the [`eza`](https://github.com/eza-community/eza) utility rather than `ls` + +To use it add `eza` to the plugins array in your zshrc file: + +```zsh +plugins=(... eza) +``` + +## Configuration + +All configurations are done using the `zstyle` command in the `:omz:plugins:eza` namespace. + +**NOTE:** The configuring needs to be done prior to OMZ loading the plugins. When the plugin is loaded, +changing the `zstyle` won't have any effect. + +### `dirs-first` + +```zsh +zstyle ':omz:plugins:eza' 'dirs-first' yes|no +``` + +If `yes`, directories will be grouped first. + +Default: `no` + +### `git-status` + +```zsh +zstyle ':omz:plugins:eza' 'git-status' yes|no +``` + +If `yes`, always add `--git` flag to indicate git status (if tracked / in a git repo). + +Default: `no` + +### `header` + +```zsh +zstyle ':omz:plugins:eza' 'header' yes|no +``` + +If `yes`, always add `-h` flag to add a header row for each column. + +Default: `no` + +### `show-group` + +```zsh +zstyle ':omz:plugins:eza' 'show-group' yes|no +``` + +If `yes` (default), always add `-g` flag to show the group ownership. + +Default: `yes` + +### `size-prefix` + +```zsh +zstyle ':omz:plugins:eza' 'size-prefix' (binary|none|si) +``` + +Choose the prefix to be used in displaying file size: + +- `binary` -- use [binary prefixes](https://en.wikipedia.org/wiki/Binary_prefix) such as "Ki", "Mi", "Gi" and + so on +- `none` -- don't use any prefix, show size in bytes +- `si` (default) -- use [Metric/S.I. prefixes](https://en.wikipedia.org/wiki/Metric_prefix) + +Default: `si` + +### `time-style` + +```zsh +zstyle ':omz:plugins:eza' 'time-style' $TIME_STYLE +``` + +Sets the `--time-style` option of `eza`. (See `man eza` for the options) + +Default: Not set, which means the default behavior of `eza` will take place. + +## Aliases + +**Notes:** + +- Aliases may be modified by Configuration +- The term "files" without "only" qualifier means both files & directories + +| Alias | Command | Description | +| ------ | ----------------- | -------------------------------------------------------------------------- | +| `la` | `eza -la` | List all files (except . and ..) as a long list | +| `ldot` | `eza -ld .*` | List dotfiles only (directories shown as entries instead of recursed into) | +| `lD` | `eza -lD` | List only directories (excluding dotdirs) as a long list | +| `lDD` | `eza -laD` | List only directories (including dotdirs) as a long list | +| `ll` | `eza -l` | List files as a long list | +| `ls` | `eza` | Plain eza call | +| `lsd` | `eza -d` | List specified files with directories as entries, in a grid | +| `lsdl` | `eza -dl` | List specified files with directories as entries, in a long list | +| `lS` | `eza -l -ssize` | List files as a long list, sorted by size | +| `lT` | `eza -l -snewest` | List files as a long list, sorted by date (newest last) | diff --git a/plugins/eza/eza.plugin.zsh b/plugins/eza/eza.plugin.zsh new file mode 100644 index 0000000000000..6d7f720bd98d0 --- /dev/null +++ b/plugins/eza/eza.plugin.zsh @@ -0,0 +1,62 @@ +if ! (( $+commands[eza] )); then + print "zsh eza plugin: eza not found. Please install eza before using this plugin." >&2 + return 1 +fi + +typeset -a _EZA_HEAD +typeset -a _EZA_TAIL + +function _configure_eza() { + local _val + # Get the head flags + if zstyle -T ':omz:plugins:eza' 'show-group'; then + _EZA_HEAD+=("g") + fi + if zstyle -t ':omz:plugins:eza' 'header'; then + _EZA_HEAD+=("h") + fi + zstyle -s ':omz:plugins:eza' 'size-prefix' _val + case "${_val:l}" in + binary) + _EZA_HEAD+=("b") + ;; + none) + _EZA_HEAD+=("B") + ;; + esac + # Get the tail long-options + if zstyle -t ':omz:plugins:eza' 'dirs-first'; then + _EZA_TAIL+=("--group-directories-first") + fi + if zstyle -t ':omz:plugins:eza' 'git-status'; then + _EZA_TAIL+=("--git") + fi + zstyle -s ':omz:plugins:eza' 'time-style' _val + if [[ $_val ]]; then + _EZA_TAIL+=("--time-style='$_val'") + fi +} + +_configure_eza + +function _alias_eza() { + local _head="${(j::)_EZA_HEAD}$2" + local _tail="${(j: :)_EZA_TAIL}" + alias "$1"="eza${_head:+ -}${_head}${_tail:+ }${_tail}${3:+ }$3" +} + +_alias_eza la la +_alias_eza ldot ld ".*" +_alias_eza lD lD +_alias_eza lDD lDa +_alias_eza ll l +_alias_eza ls +_alias_eza lsd d +_alias_eza lsdl dl +_alias_eza lS "l -ssize" +_alias_eza lT "l -snewest" + +unfunction _alias_eza +unfunction _configure_eza +unset _EZA_HEAD +unset _EZA_TAIL From 65b23a3328bfd7ddf3234de4538fa7c3e9644491 Mon Sep 17 00:00:00 2001 From: Jonathan De Troye Date: Thu, 29 Feb 2024 13:05:54 -0500 Subject: [PATCH 181/212] fix(tmux): do not pass empty flags to aliases (#12232) This enables compatibility with tmux >3.3a Co-authored-by: Carlo Sala --- plugins/tmux/tmux.plugin.zsh | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 09e326344f705..436e2671d06a9 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -47,14 +47,27 @@ fi : ${ZSH_TMUX_UNICODE:=false} # ALIASES -alias ta='tmux attach -t' -alias tad='tmux attach -d -t' -alias ts='tmux new-session -s' -alias tl='tmux list-sessions' +function _build_tmux_alias { + eval "function $1 { + if [[ -z \$1 ]] || [[ \${1::1} == '-' ]]; then + tmux $2 \"\$@\" + else + tmux $2 $3 \"\$@\" + fi + }" +} + alias tksv='tmux kill-server' -alias tkss='tmux kill-session -t' +alias tl='tmux list-sessions' alias tmuxconf='$EDITOR $ZSH_TMUX_CONFIG' +_build_tmux_alias "ta" "attach" "-t" +_build_tmux_alias "tad" "attach -d" "-t" +_build_tmux_alias "ts" "new-session" "-s" +_build_tmux_alias "tkss" "kill-session" "-t" + +unfunction _build_tmux_alias + # Determine if the terminal supports 256 colors if [[ $terminfo[colors] == 256 ]]; then export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR From 50fd98e5a6c9d7c36b0cc678f577f7ce1d181bea Mon Sep 17 00:00:00 2001 From: Gam <1348187+Y3K@users.noreply.github.com> Date: Thu, 29 Feb 2024 14:59:27 -0600 Subject: [PATCH 182/212] fix(ssh): allow multiple definitions per host (#12227) --- plugins/ssh/ssh.plugin.zsh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/ssh/ssh.plugin.zsh b/plugins/ssh/ssh.plugin.zsh index 085e71fa1c0b4..b5b050536afa2 100644 --- a/plugins/ssh/ssh.plugin.zsh +++ b/plugins/ssh/ssh.plugin.zsh @@ -4,9 +4,16 @@ # Filter out wildcard host sections. _ssh_configfile="$HOME/.ssh/config" if [[ -f "$_ssh_configfile" ]]; then - _hosts=($(egrep '^Host.*' "$_ssh_configfile" | awk '{print $2}' | grep -v '^*' | sed -e 's/\.*\*$//')) - zstyle ':completion:*:hosts' hosts $_hosts - unset _hosts + _ssh_hosts=($( + egrep '^Host.*' "$_ssh_configfile" |\ + awk '{for (i=2; i<=NF; i++) print $i}' |\ + sort |\ + uniq |\ + grep -v '^*' |\ + sed -e 's/\.*\*$//' + )) + zstyle ':completion:*:hosts' hosts $_ssh_hosts + unset _ssh_hosts fi unset _ssh_configfile From 9730915910c6cc7640f8af6063ffb93becf0414a Mon Sep 17 00:00:00 2001 From: Artem Babii Date: Thu, 29 Feb 2024 23:07:10 +0200 Subject: [PATCH 183/212] feat(kube-ps1): add symlink support (#12208) --- plugins/kube-ps1/README.md | 1 + plugins/kube-ps1/kube-ps1.plugin.zsh | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/plugins/kube-ps1/README.md b/plugins/kube-ps1/README.md index 1ed3e4438d16e..dd49eff39967c 100644 --- a/plugins/kube-ps1/README.md +++ b/plugins/kube-ps1/README.md @@ -136,6 +136,7 @@ the following environment variables: | `KUBE_PS1_SUFFIX` | `)` | Prompt closing character | | `KUBE_PS1_CLUSTER_FUNCTION` | No default, must be user supplied | Function to customize how cluster is displayed | | `KUBE_PS1_NAMESPACE_FUNCTION` | No default, must be user supplied | Function to customize how namespace is displayed | +| `KUBE_PS1_KUBECONFIG_SYMLINK` | `false` | Treat `KUBECONFIG` and `~/.kube/config` files as symbolic links | For terminals that do not support UTF-8, the symbol will be replaced with the string `k8s`. diff --git a/plugins/kube-ps1/kube-ps1.plugin.zsh b/plugins/kube-ps1/kube-ps1.plugin.zsh index 894e0f7f04d31..7edc62de8c91e 100644 --- a/plugins/kube-ps1/kube-ps1.plugin.zsh +++ b/plugins/kube-ps1/kube-ps1.plugin.zsh @@ -40,6 +40,7 @@ KUBE_PS1_NS_COLOR="${KUBE_PS1_NS_COLOR-cyan}" KUBE_PS1_BG_COLOR="${KUBE_PS1_BG_COLOR}" KUBE_PS1_KUBECONFIG_CACHE="${KUBECONFIG}" +KUBE_PS1_KUBECONFIG_SYMLINK="${KUBE_PS1_KUBECONFIG_SYMLINK:-false}" KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled" KUBE_PS1_LAST_TIME=0 KUBE_PS1_CLUSTER_FUNCTION="${KUBE_PS1_CLUSTER_FUNCTION}" @@ -190,14 +191,26 @@ _kube_ps1_file_newer_than() { local file=$1 local check_time=$2 - if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then - mtime=$(zstat +mtime "${file}") - elif stat -c "%s" /dev/null &> /dev/null; then - # GNU stat - mtime=$(stat -L -c %Y "${file}") + if [[ "${KUBE_PS1_KUBECONFIG_SYMLINK}" == "true" ]]; then + if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then + mtime=$(zstat -L +mtime "${file}") + elif stat -c "%s" /dev/null &> /dev/null; then + # GNU stat + mtime=$(stat -c %Y "${file}") + else + # BSD stat + mtime=$(stat -f %m "$file") + fi else - # BSD stat - mtime=$(stat -L -f %m "$file") + if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then + mtime=$(zstat +mtime "${file}") + elif stat -c "%s" /dev/null &> /dev/null; then + # GNU stat + mtime=$(stat -L -c %Y "${file}") + else + # BSD stat + mtime=$(stat -L -f %m "$file") + fi fi [[ "${mtime}" -gt "${check_time}" ]] From 0008534147a28eeeea52cfd92154ae2e801678ae Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 1 Mar 2024 16:44:20 +0100 Subject: [PATCH 184/212] fix(tmux): regression with detached sessions See https://github.com/ohmyzsh/ohmyzsh/pull/12242#issuecomment-1973236605 --- plugins/tmux/tmux.plugin.zsh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 436e2671d06a9..11550d6879d2b 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -100,11 +100,13 @@ function _zsh_tmux_plugin_run() { [[ "$ZSH_TMUX_ITERM2" == "true" ]] && tmux_cmd+=(-CC) [[ "$ZSH_TMUX_UNICODE" == "true" ]] && tmux_cmd+=(-u) + local _detached="" + [[ "$ZSH_TMUX_DETACHED" == "true" ]] && _detached="-d" # Try to connect to an existing session. if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach ${ZSH_TMUX_DETACHED:+"-d"} -t $ZSH_TMUX_DEFAULT_SESSION_NAME + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach $_detached -t $ZSH_TMUX_DEFAULT_SESSION_NAME else - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach ${ZSH_TMUX_DETACHED:+"-d"} + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach $_detached fi # If failed, just run tmux, fixing the TERM variable if requested. From e3216d15c2d2ee81716e4c2cbc999b4bed5694d9 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 2 Mar 2024 00:57:26 +0100 Subject: [PATCH 185/212] fix(git-commit)!: allow alias update BREAKING CHANGE: Prior to this commit, git aliases were not being updated after every update of oh-my-zsh. In case you were using git-commit plugin before this commit, please remove your git aliases to proceed. --- plugins/git-commit/git-commit.plugin.zsh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 3f0c2121dda4e..207c37e2175ae 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,3 +1,8 @@ +if git config --global --get-all alias.$_alias >/dev/null 2>&1 \ + && ! git config --global --get-all oh-my-zsh.git-commit-alias >/dev/null 2>&1; then + return +fi + local -a _git_commit_aliases _git_commit_aliases=( 'build' @@ -14,19 +19,18 @@ _git_commit_aliases=( 'wip' ) -local alias type -for type in "${_git_commit_aliases[@]}"; do +local _alias _type +for _type in "${_git_commit_aliases[@]}"; do # an alias can't be named "revert" because the git command takes precedence # https://stackoverflow.com/a/3538791 - case "$type" in - revert) alias=rev ;; - *) alias=$type ;; + case "$_type" in + revert) _alias=rev ;; + *) _alias=$_type ;; esac - local func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' - if ! git config --global --get-all alias.${alias} >/dev/null 2>&1; then - git config --global alias.${alias} "$func" - fi + local _func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' + + git config --global alias.$_alias "$_func" done -unset _git_commit_aliases alias type func +git config --global oh-my-zsh.git-commit-alias "true" From 3ee108ccb301dd4143080e8bfd8f9ae869957a2e Mon Sep 17 00:00:00 2001 From: Rejman Date: Sat, 2 Mar 2024 01:21:30 +0100 Subject: [PATCH 186/212] feat(git-commit): add `-a | --attention` flag Refactor function as well to reduce flaws and increase stability Closes #12234 Co-authored-by: Carlo Sala --- plugins/git-commit/git-commit.plugin.zsh | 25 +++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 207c37e2175ae..7ad349735350f 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -28,7 +28,30 @@ for _type in "${_git_commit_aliases[@]}"; do *) _alias=$_type ;; esac - local _func='!a() { if [ "$1" = "-s" ] || [ "$1" = "--scope" ]; then local scope="$2"; shift 2; git commit -m "'$type'(${scope}): ${@}"; else git commit -m "'$type': ${@}"; fi }; a' + local _func='!a() { +local _scope _attention _message +while [ $# -ne 0 ]; do +case $1 in + -s | --scope ) + if [ -z $2 ]; then + echo "Missing scope!" + return 1 + fi + _scope="$2" + shift 2 + ;; + -a | --attention ) + _attention="!" + shift 1 + ;; + * ) + _message+=" $1" + shift 1 + ;; +esac +done +git commit -m "'$_type'${_scope:+(${_scope})}${_attention}:${_message}" +}; a' git config --global alias.$_alias "$_func" done From 8e088ded8289a9db2a9f2c03cab618d6dd017dd7 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 2 Mar 2024 01:25:20 +0100 Subject: [PATCH 187/212] docs(git-commit): document attention flag --- plugins/git-commit/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md index a009839355e6d..49072d0fbf5b2 100644 --- a/plugins/git-commit/README.md +++ b/plugins/git-commit/README.md @@ -11,7 +11,7 @@ plugins=(... git-commit) ## Syntax ```zsh -git [(-s, --scope) ""] "" +git [(-s, --scope) ""] [(-a, --attention)] "" ``` > ⚠️ Single/Double quotes around the scope and message are required From 2c62584b8389cb9510c12f7c28b5ca7970619277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=A4=A9=E6=B3=BD?= <35888946+zhangtianze1997@users.noreply.github.com> Date: Sat, 2 Mar 2024 16:12:34 +0800 Subject: [PATCH 188/212] fix(tmux): use full offset parameter (#12249) --- plugins/tmux/tmux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 11550d6879d2b..791592d8f6d41 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -49,7 +49,7 @@ fi # ALIASES function _build_tmux_alias { eval "function $1 { - if [[ -z \$1 ]] || [[ \${1::1} == '-' ]]; then + if [[ -z \$1 ]] || [[ \${1:0:1} == '-' ]]; then tmux $2 \"\$@\" else tmux $2 $3 \"\$@\" From b6c1de87b01aaf5eb434b86b1d32b92cb37467bb Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 2 Mar 2024 10:05:44 +0100 Subject: [PATCH 189/212] fix(git-commit): add omz version check --- plugins/git-commit/git-commit.plugin.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 7ad349735350f..121ae59de6ca7 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -1,7 +1,8 @@ -if git config --global --get-all alias.$_alias >/dev/null 2>&1 \ - && ! git config --global --get-all oh-my-zsh.git-commit-alias >/dev/null 2>&1; then +local _rev="$(git -C $ZSH rev-parse HEAD 2> /dev/null)" +if [[ $_rev == $(git config --global --get oh-my-zsh.git-commit-alias 2> /dev/null) ]]; then return fi +git config --global oh-my-zsh.git-commit-alias "$_rev" local -a _git_commit_aliases _git_commit_aliases=( @@ -55,5 +56,3 @@ git commit -m "'$_type'${_scope:+(${_scope})}${_attention}:${_message}" git config --global alias.$_alias "$_func" done - -git config --global oh-my-zsh.git-commit-alias "true" From 458fc2e1df4757e64b036edee17ccdefdde41f73 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sat, 2 Mar 2024 10:05:54 +0100 Subject: [PATCH 190/212] docs(git-commit): add warning --- plugins/git-commit/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md index 49072d0fbf5b2..f812ee23f8cce 100644 --- a/plugins/git-commit/README.md +++ b/plugins/git-commit/README.md @@ -1,6 +1,8 @@ # git-commit plugin -The git-commit plugin adds several [git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. +The git-commit plugin adds several +[git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for +[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. To use it, add `git-commit` to the plugins array in your zshrc file: @@ -14,8 +16,6 @@ plugins=(... git-commit) git [(-s, --scope) ""] [(-a, --attention)] "" ``` -> ⚠️ Single/Double quotes around the scope and message are required - Where `type` is one of the following: - `build` @@ -34,6 +34,9 @@ Where `type` is one of the following: > NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. > It will still generate a commit message in the format `revert: ` +> ⚠️ Enabling this plugin will (potentially) overwrite all `alias.` that you manually set. Use with +> care! + ## Examples | Git alias | Command | From 70395a64637ad1a94b11f6007f29ee0c0d716884 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Sun, 3 Mar 2024 11:22:25 +0100 Subject: [PATCH 191/212] fix(git): do not use `+=` in sh script Fixes #12251 --- plugins/git-commit/git-commit.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh index 121ae59de6ca7..c4df77c8014fd 100644 --- a/plugins/git-commit/git-commit.plugin.zsh +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -46,7 +46,7 @@ case $1 in shift 1 ;; * ) - _message+=" $1" + _message="${_message} $1" shift 1 ;; esac From 97a86ed1678022683d9f0113ada51f4ed8aa7375 Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Sun, 3 Mar 2024 10:56:40 +0000 Subject: [PATCH 192/212] feat(terraform): update completion to `v1.7` (#12252) --- plugins/terraform/_terraform | 764 ++++++++++++++++++++--------------- 1 file changed, 441 insertions(+), 323 deletions(-) diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform index 6258345635a22..aad1c6096e376 100644 --- a/plugins/terraform/_terraform +++ b/plugins/terraform/_terraform @@ -1,411 +1,529 @@ #compdef terraform - -local -a _terraform_cmds opt_args -_terraform_cmds=( - 'apply:Builds or changes infrastructure' - 'console:Interactive console for Terraform interpolations' - 'destroy:Destroy Terraform-managed infrastructure' - 'fmt:Rewrites config files to canonical format' - 'force-unlock:Manually unlock the terraform state' - 'get:Download and install modules for the configuration' - 'graph:Create a visual graph of Terraform resources' - 'import:Import existing infrastructure into Terraform' - 'init:Initialize a Terraform working directory' +compdef _terraform terraform + +(( ${+functions[_terraform_commands]} )) || _terraform_commands() { + local -a _terraform_cmds + _terraform_cmds=( + 'apply:Create or update infrastructure' + 'console:Try Terraform expressions at an interactive command prompt' + 'destroy:Destroy previously-created infrastructure' + 'fmt:Reformat your configuration in the standard style' + 'force-unlock:Release a stuck lock on the current workspace' + 'get:Install or upgrade remote Terraform modules' + 'graph:Generate a Graphviz graph of the steps in an operation' + 'import:Associate existing infrastructure with a Terraform resource' + 'init:Prepare your working directory for other commands' 'login:Obtain and save credentials for a remote host' 'logout:Remove locally-stored credentials for a remote host' - 'output:Read an output from a state file' - 'plan:Generate and show an execution plan' - 'providers:Prints a tree of the providers used in the configuration' - 'refresh:Update local state file against real resources' - 'show:Inspect Terraform state or plan' + 'metadata:Metadata related commands' + 'output:Show output values from your root module' + 'plan:Show changes required by the current configuration' + 'providers:Show the providers required for this configuration' + 'refresh:Update the state to match remote systems' + 'show:Show the current state or a saved plan' 'state:Advanced state management' - 'taint:Manually mark a resource for recreation' - 'untaint:Manually unmark a resource as tainted' - 'validate:Validates the Terraform files' - 'version:Prints the Terraform version' + 'taint:Mark a resource instance as not fully functional' + 'test:Execute integration tests for Terraform modules' + 'untaint:Remove the '\''tainted'\'' state from a resource instance' + 'validate:Check whether the configuration is valid' + 'version:Show the current Terraform version' 'workspace:Workspace management' - '0.12upgrade:Rewrites pre-0.12 module source code for v0.12' - '0.13upgrade:Rewrites pre-0.13 module source code for v0.13' -) + ) + if ((CURRENT == 1)); then + _describe -t commands 'terraform commands' _terraform_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_terraform_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-${cmd}:" + + if (( ${+functions[_terraform_$cmd]} )); then + "_terraform_${cmd}" + else + _message "no more options" + fi +} -__012upgrade() { +(( ${+functions[_terraform_apply]} )) || _terraform_apply() { + _arguments \ + '-auto-approve[Skip interactive approval of plan before applying.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-destroy[Destroy Terraform-managed infrastructure. The command "terraform destroy" is a convenience alias for this option.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ + '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If applying would'\''ve normally produced an update or no-op action for this instance, Terraform will replace it instead. You can use this option multiple times to replace more than one object.]:resource:__terraform_state_resources' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' \ + ':plan:_files -' +} + +(( ${+functions[_terraform_console]} )) || _terraform_console() { _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' \ - '-force[ Override the heuristic that attempts to detect if a configuration is already written for v0.12 or later. Some of the transformations made by this command are not idempotent, so re-running against the same module may change the meanings expressions in the module.]' + '-state=[(terraform.tfstate) Legacy option for the local backend only. See the local backend'\''s documentation for more information.]' \ + '-plan[Create a new plan (as if running "terraform plan") and then evaluate expressions against its planned state, instead of evaluating against the current state. You can use this to inspect the effects of configuration changes that haven'\''t been applied yet.]' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' } -__013upgrade() { +(( ${+functions[_terraform_destroy]} )) || _terraform_destroy() { _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' + '-auto-approve[Skip interactive approval of plan before applying.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]:refresh:(true false)' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' +} + +(( ${+functions[_terraform_fmt]} )) || _terraform_fmt() { + _arguments \ + '-list=[(true) Don'\''t list files whose formatting differs (always disabled if using STDIN)]:list:(true false)' \ + '-write=[(true) Don'\''t write to source files (always disabled if using STDIN or -check)]:write:(true false)' \ + '-diff[Display diffs of formatting changes]' \ + '-check[Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-recursive[Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' \ + '*:targets:_files -' } -__apply() { - _arguments \ - '-auto-approve[Skip interactive approval of plan before applying.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-no-color[If specified, output will be colorless.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__console() { - _arguments \ - '-state=[(terraform.tfstate) Path to read state.]' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +(( ${+functions[_terraform_force-unlock]} )) || _terraform_force-unlock() { + _arguments \ + '-force[Don'\''t ask for input for unlock confirmation.]' \ + ':lock_id:' } -__destroy() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-auto-approve[Skip interactive approval before destroying.]' \ - '-force[Deprecated: same as auto-approve.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__fmt() { - _arguments \ - '-list=[(true) List files whose formatting differs (always false if using STDIN)]' \ - '-write=[(true) Write result to source file instead of STDOUT (always false if using STDIN or -check)]' \ - '-diff=[(false) Display diffs of formatting changes]' \ - '-check=[(false) Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ - '-recursive=[(false) Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' +(( ${+functions[_terraform_get]} )) || _terraform_get() { + _arguments \ + '-update[Check already-downloaded modules for available updates and install the newest versions available.]' \ + '-no-color[Disable text coloring in the output.]' \ + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' } -__force_unlock() { - _arguments \ - "-force[Don't ask for input for unlock confirmation.]" +(( ${+functions[_terraform_graph]} )) || _terraform_graph() { + _arguments \ + '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors. This option is supported only when illustrating a real evaluation graph, selected using the -type=TYPE option.]' \ + '-module-depth=[(-1) (deprecated) In prior versions of Terraform, specified the depth of modules to show in the output.]' \ + '-plan=[Render graph using the specified plan file instead of the configuration in the current directory. Implies -type=apply.]:plan:_files -' \ + '-type=[(plan) Type of operation graph to output. Can be: plan, plan-refresh-only, plan-destroy, or apply. By default Terraform just summarizes the relationships between the resources in your configuration, without any particular operation in mind. Full operation graphs are more detailed but therefore often harder to read.]:type:(plan plan-refresh-only plan-destroy apply)' } -__get() { - _arguments \ - '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]' \ - '-no-color[Disable text coloring in the output.]' +(( ${+functions[_terraform_import]} )) || _terraform_import() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]:config:_files -/' \ + '-input=[(true) Disable interactive input prompts.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' \ + ':addr:' \ + ':id:' } -__graph() { - _arguments \ - '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors.]' \ - '-type=[(plan) Type of graph to output. Can be: plan, plan-destroy, apply, validate, input, refresh.]' +(( ${+functions[_terraform_init]} )) || _terraform_init() { + _arguments \ + '-backend=[(true) Disable backend or Terraform Cloud initialization for this configuration and use what was previously initialized instead.]:backend:(true false)' \ + '-backend-config=[Configuration to be merged with what is in the configuration file'\''s '\''backend'\'' block. This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a '\''key=value'\'' format, and can be specified multiple times. The backend type must be in the configuration itself.]:backend_config:_files -' \ + '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ + '-from-module=[Copy the contents of the given module into the target directory before initialization.]:from_module:_files -/' \ + '-get=[(true) Disable downloading modules for this configuration.]:get:(true false)' \ + '-input=[(true) Disable interactive prompts. Note that some actions may require interactive prompts and will error if input is disabled.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during backend migration. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ + '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ + '-migrate-state[Reconfigure a backend, and attempt to migrate any existing state.]' \ + '-upgrade[Install the latest module and provider versions allowed within configured constraints, overriding the default behavior of selecting exactly the version recorded in the dependency lockfile.]' \ + '-lockfile=[Set a dependency lockfile mode. Currently only "readonly" is valid.]:lockfile:( readonly )' \ + '-ignore-remote-version[A rare option used for Terraform Cloud and the remote backend only. Set this to ignore checking that the local and remote Terraform versions use compatible state representations, making an operation proceed even when there is a potential mismatch. See the documentation on configuring Terraform with Terraform Cloud for more information.]' \ + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' } -__import() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]' \ - '-allow-missing-config[Allow import when no resource configuration block exists.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__init() { - _arguments \ - '-backend=[(true) Configure the backend for this configuration.]' \ - '-backend-config=[This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a 'key=value' format. This is merged with what is in the configuration file. This can be specified multiple times. The backend type must be in the configuration itself.]' \ - '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ - '-from-module=[(SOURCE) Copy the contents of the given module into the target directory before initialization.]' \ - '-get=[(true) Download any modules for this configuration.]' \ - '-get-plugins=[(true) Download any missing plugins for this configuration.]' \ - '-input=[(true) Ask for input if necessary. If false, will error if input was required.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ - '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ - '-upgrade=[(false) If installing modules (-get) or plugins (-get-plugins), ignore previously-downloaded objects and install the latest version allowed within configured constraints.]' \ - '-verify-plugins=[(true) Verify the authenticity and integrity of automatically downloaded plugins.]' -} - -__login() { - _arguments \ +(( ${+functions[_terraform_login]} )) || _terraform_login() { + _arguments \ + ':hostname:' +} +(( ${+functions[_terraform_logout]} )) || _terraform_logout() { + _arguments \ + ':hostname:' } -__logout() { - _arguments \ +(( ${+functions[_terraform_metadata]} )) || _terraform_metadata() { + local -a _metadata_cmds + _metadata_cmds=( + 'functions:Show signatures and descriptions for the available functions' + ) + if [[ "${CURRENT}" -lt 3 ]]; then + _describe -t commands "terraform metadata commands" _metadata_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_metadata_cmds[(r)$words[2]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-metadata-${cmd}:" + if (( ${+functions[_terraform_metadata_$cmd]} )); then + "_terraform_metadata_${cmd}" + else + _message "no more options" + fi } -__output() { - _arguments \ - '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-no-color[If specified, output will contain no color.]' \ - '-json[If specified, machine readable output will be printed in JSON format]' +(( ${+functions[_terraform_metadata_functions]} )) || _terraform_metadata_functions() { + _arguments \ + '-json' \ + '::' } -__plan() { - _arguments \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \ - '-detailed-exitcode[() Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[() If specified, output will contain no color.]' \ - '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences.]' \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__providers() { - local -a __providers_cmds - __providers_cmds=( - 'mirror:Mirrors the provider plugins needed for the current configuration' - 'schema:Prints the schemas of the providers used in the configuration' - ) - _describe -t providers "providers commands" __providers_cmds - -} - -__providers_mirror() { - _arguments \ - '-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ - "*:target_dir:_files -/" +(( ${+functions[_terraform_output]} )) || _terraform_output() { + _arguments \ + '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate". Ignored when remote state is used.]:statefile:_files -g "*.tfstate"' \ + '-no-color[If specified, output will contain no color.]' \ + '-json[If specified, machine readable output will be printed in JSON format]' \ + '-raw[For value types that can be automatically converted to a string, will print the raw string directly, rather than a human-oriented representation of the value.]' \ + ':name:' } -__providers_schema() { - _arguments \ - '-json[]' \ - '::' +(( ${+functions[_terraform_plan]} )) || _terraform_plan() { + _arguments \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-destroy[Select the "destroy" planning mode, which creates a plan to destroy all objects currently managed by this Terraform configuration instead of the usual behavior.]' \ + '-detailed-exitcode[Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-generate-config-out=[(path) (Experimental) If import blocks are present in configuration, instructs Terraform to generate HCL for any imported resources not already present. The configuration is written to a new file at PATH, which must not already exist. Terraform may still attempt to write configuration if the plan errors.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will contain no color.]' \ + '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ + '-parallelism=[(10) Limit the number of concurrent operations.]' \ + '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ + '-refresh-only[Select the "refresh only" planning mode, which checks whether remote objects still match the outcome of the most recent Terraform apply but does not propose any actions to undo any changes made outside of Terraform.]' \ + '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If the plan would'\''ve normally produced an update or no-op action for this instance, Terraform will plan to replace it instead. You can use this option multiple times to replace more than one object.]:replace:__terraform_state_resources' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) Limit the planning operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' } -__refresh() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will not contain any color.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__show() { +(( ${+functions[_terraform_providers]} )) || _terraform_providers() { + local -a _providers_cmds + _providers_cmds=( + 'lock:Write out dependency locks for the configured providers' + 'mirror:Save local copies of all required provider plugins' + 'schema:Show schemas for the providers used in the configuration' + ) + + if [[ "${CURRENT}" -lt 3 ]]; then _arguments \ - '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ - '-no-color[If specified, output will not contain any color.]' + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ + '*:: :->command' + + _describe -t commands "terraform providers commands" _providers_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_providers_cmds[(r)$words[2]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-providers-${cmd}:" + + if (( ${+functions[_terraform_providers_$cmd]} )); then + "_terraform_providers_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_providers_lock]} )) || _terraform_providers_lock() { + _arguments \ + '-fs-mirror=[(dir) Consult the given filesystem mirror directory instead of the origin registry for each of the given providers.]:fs_mirror:_files -/' \ + '-net-mirror=[(url) Consult the given network mirror (given as a base URL) instead of the origin registry for each of the given providers.]' \ + '*-platform=[(os_arch) Choose a target platform to request package checksums for.]' \ + '*:provider:' } -__state() { - local -a __state_cmds - __state_cmds=( - 'list:List resources in the state' - 'mv:Move an item in the state' - 'pull:Pull current state and output to stdout' - 'push:Update remote state from a local state file' - 'replace-provider:Replace provider for resources in the Terraform state' - 'rm:Remove instances from the state' - 'show:Show a resource in the state' - ) - _describe -t state "state commands" __state_cmds +(( ${+functions[_terraform_providers_mirror]} )) || _terraform_providers_mirror() { + _arguments \ + '*-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ + '::' \ + ':target_dir:_files -/' } -__state_list() { +(( ${+functions[_terraform_providers_schema]} )) || _terraform_providers_schema() { _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]' \ + '-json[]' \ + '::' +} + +(( ${+functions[_terraform_refresh]} )) || _terraform_refresh() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-no-color[If specified, output will not contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' +} + +(( ${+functions[_terraform_show]} )) || _terraform_show() { + _arguments \ + '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ + '-no-color[If specified, output will not contain any color.]' \ + ':path:_files -g "*.tfstate"' +} + +(( ${+functions[_terraform_state]} )) || _terraform_state() { + local -a _state_cmds + _state_cmds=( + 'list:List resources in the state' + 'mv:Move an item in the state' + 'pull:Pull current state and output to stdout' + 'push:Update remote state from a local state file' + 'replace-provider:Replace provider in the state' + 'rm:Remove instances from the state' + 'show:Show a resource in the state' + ) + if [[ "${CURRENT}" -lt 3 ]]; then + _describe -t commands "terraform state commands" _state_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_state_cmds[(r)$words[2]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-state-${cmd}:" + + if (( ${+functions[_terraform_state_$cmd]} )); then + "_terraform_state_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_state_list]} )) || _terraform_state_list() { + _arguments \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]:statefile:_files -g "*.tfstate"' \ '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ - "*:address:__statelist" + '*:address:__terraform_state_resources' } -__state_mv() { +(( ${+functions[_terraform_state_mv]} )) || _terraform_state_mv() { _arguments \ - "-dry-run[If set, prints out what would've been moved but doesn't actually move anything.]" \ + '-dry-run[If set, prints out what would'\''ve been moved but doesn'\''t actually move anything.]' \ '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - "::" \ - ":source:__statelist" \ - ":destination: " + '::' \ + ':source:__terraform_state_resources' \ + ':destination: ' } -__state_push() { +(( ${+functions[_terraform_state_push]} )) || _terraform_state_push() { _arguments \ - "-force[Write the state even if lineages don't match or the remote serial is higher.]" \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - "::" \ - ":destination:_files" + '-force[Write the state even if lineages don'\''t match or the remote serial is higher.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '::' \ + ':destination:_files' } -__state_replace_provider() { +(( ${+functions[_terraform_state_replace-provider]} )) || _terraform_state_replace-provider() { _arguments \ '-auto-approve[Skip interactive approval.]' \ '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - ":from_provider_fqn:" \ - ":to_provider_fqn:" + '::' \ + ':from_provider_fqn:' \ + ':to_provider_fqn:' } -__state_rm() { +(( ${+functions[_terraform_state_rm]} )) || _terraform_state_rm() { _arguments \ - "-dry-run[If set, prints out what would've been removed but doesn't actually remove anything.]" \ + '-dry-run[If set, prints out what would'\''ve been removed but doesn'\''t actually remove anything.]' \ '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ + '-ignore-remote-version[Continue even if remote and local Terraform versions are incompatible. This may result in an unusable workspace, and should be used with extreme caution.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" + '*:address:__terraform_state_resources' } - -__state_show() { +(( ${+functions[_terraform_state_show]} )) || _terraform_state_show() { _arguments \ '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" + "*:address:__terraform_state_resources" } -__statelist() { - compadd $(terraform state list $opt_args[-state]) +(( ${+functions[__terraform_state_resources]} )) || __terraform_state_resources() { + local resource + local -a resources + terraform state list -state="${opt_args[-state]}" 2>/dev/null | while read -r resource; do + resources+=( "${resource}" ) + done + compadd "${@}" - "${resources[@]}" } -__taint() { - _arguments \ - '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" +(( ${+functions[_terraform_taint]} )) || _terraform_taint() { + _arguments \ + '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ + '*:address:__terraform_state_resources' } -__untaint() { - _arguments \ +(( ${+functions[_terraform_test]} )) || _terraform_test() { + _arguments \ + '-cloud-run=[(source) If specified, Terraform will execute this test run remotely using Terraform Cloud. You must specify the source of a module registered in a private module registry as the argument to this flag. This allows Terraform to associate the cloud run with the correct Terraform Cloud module and organization.]' \ + '*-filter=[(testfile) If specified, Terraform will only execute the test files specified by this flag. You can use this option multiple times to execute more than one test file.]:testfile:_files -g "*.tftest.hcl"' \ + '-json[If specified, machine readable output will be printed in JSON format]' \ + '-no-color[If specified, machine readable output will be printed in JSON format]' \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' \ + '-verbose[Print the plan or state for each test run block as it executes.]' \ +} + +(( ${+functions[_terraform_untaint]} )) || _terraform_untaint() { + _arguments \ '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ + ':name:__terraform_state_resources' } -__validate() { - _arguments \ - '-no-color[If specified, output will not contain any color.]' \ +(( ${+functions[_terraform_validate]} )) || _terraform_validate() { + _arguments \ '-json[Produce output in a machine-readable JSON format, suitable for use in text editor integrations and other automated systems.]' \ + '-no-color[If specified, output will not contain any color.]' \ + '-no-tests[If specified, Terraform will not validate test files.]' \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ ':dir:_files -/' } -__version() { - _arguments \ - '-json[Output the version information as a JSON object.]' +(( ${+functions[_terraform_version]} )) || _terraform_version() { + _arguments \ + '-json[Output the version information as a JSON object.]' \ + '::' +} + +(( ${+functions[_terraform_workspace]} )) || _terraform_workspace() { + local -a _workspace_cmds + _workspace_cmds=( + 'delete:Delete a workspace' + 'list:List Workspaces' + 'new:Create a new workspace' + 'select:Select a workspace' + 'show:Show the name of the current workspace' + ) + if [[ "${CURRENT}" -lt 3 ]]; then + _describe -t commands "terraform workspace commands" _workspace_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_workspace_cmds[(r)$words[2]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-workspace-${cmd}:" + + if (( ${+functions[_terraform_workspace_$cmd]} )); then + "_terraform_workspace_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_workspace_delete]} )) || _terraform_workspace_delete() { + _arguments \ + '-force[Remove a workspace even if it is managing resources. Terraform can no longer track or manage the workspace'\''s infrastructure.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '::' \ + ':name:__terraform_workspaces' } -__workspace() { - local -a __workspace_cmds - __workspace_cmds=( - 'delete:Delete a workspace' - 'list:List Workspaces' - 'new:Create a new workspace' - 'select:Select a workspace' - 'show:Show the name of the current workspace' - ) - _describe -t workspace "workspace commands" __workspace_cmds +(( ${+functions[_terraform_workspace_list]} )) || _terraform_workspace_list() { + _arguments } -_arguments '*:: :->command' +(( ${+functions[_terraform_workspace_new]} )) || _terraform_workspace_new() { + _arguments \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-state=[(path) Copy an existing state file into the new workspace.]:statefile:_files -g "*.tfstate"' \ + '::' \ + ':name:' +} -if (( CURRENT == 1 )); then - _describe -t commands "terraform command" _terraform_cmds - return -fi +(( ${+functions[_terraform_workspace_select]} )) || _terraform_workspace_select() { + _arguments \ + '-or-create=[(false) Create the Terraform workspace if it doesn'\''t exist.]:or_create:(true false)' \ + '::' \ + ':name:__terraform_workspaces' +} + +(( ${+functions[_terraform_workspace_show]} )) || _terraform_workspace_show() { + _arguments +} -local -a _command_args -case "$words[1]" in - 0.12upgrade) - __012upgrade ;; - 0.13upgrade) - __013upgrade ;; - apply) - __apply ;; - console) - __console;; - destroy) - __destroy ;; - fmt) - __fmt;; - force-unlock) - __force_unlock;; - get) - __get ;; - graph) - __graph ;; - import) - __import;; - init) - __init ;; - login) - __login ;; - logout) - __logout ;; - output) - __output ;; - plan) - __plan ;; - providers) - test $CURRENT -lt 3 && __providers - [[ $words[2] = "mirror" ]] && __providers_mirror - [[ $words[2] = "schema" ]] && __providers_schema - ;; - refresh) - __refresh ;; - show) - __show ;; - state) - test $CURRENT -lt 3 && __state - [[ $words[2] = "list" ]] && __state_list - [[ $words[2] = "mv" ]] && __state_mv - [[ $words[2] = "push" ]] && __state_push - [[ $words[2] = "replace-provider" ]] && __state_replace_provider - [[ $words[2] = "rm" ]] && __state_rm - [[ $words[2] = "show" ]] && __state_show - ;; - taint) - __taint ;; - untaint) - __untaint ;; - validate) - __validate ;; - version) - __version ;; - workspace) - test $CURRENT -lt 3 && __workspace ;; -esac +(( ${+functions[__terraform_workspaces]} )) || __terraform_workspaces() { + local workspace + local -a workspaces + terraform workspace list | while read -r workspace; do + if [[ -z "${workspace}" ]]; then + continue + fi + workspaces+=( "${workspace#[ *] }" ) + done + compadd "${@}" - "${workspaces[@]}" +} + +_terraform() { + _arguments \ + '-chdir=[(DIR) Switch to a different working directory before executing the given subcommand.]:chdir:_files -/' \ + '-help[Show this help output, or the help for a specified subcommand.]' \ + '-version[An alias for the "version" subcommand.]' \ + '*::terraform command:_terraform_commands' +} + +# don't run the completion function when being source-ed or eval-ed +if [ "${funcstack[1]}" = '_terraform' ]; then + _terraform +fi From 12cd3b3e399d39b2b458fdd8f1f6286250253476 Mon Sep 17 00:00:00 2001 From: Robert Crews Date: Sun, 3 Mar 2024 04:04:19 -0800 Subject: [PATCH 193/212] feat(python): add auto venv activation (#12248) Co-authored-by: Carlo Sala --- plugins/python/README.md | 16 +++++++++++++--- plugins/python/python.plugin.zsh | 23 +++++++++++++++++++---- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/plugins/python/README.md b/plugins/python/README.md index 7bf1b34acc3ab..c99697b22c1e1 100644 --- a/plugins/python/README.md +++ b/plugins/python/README.md @@ -22,8 +22,18 @@ plugins=(... python) ## Virtual environments -The plugin provides two utilities to manage Python venvs: +The plugin provides three utilities to manage Python 3.3+ [venv](https://docs.python.org/3/library/venv.html) +virtual environments: -- `mkv [name]`: make a new virtual environment called `name` (default: `venv`) in current directory. +- `mkv [name]`: make a new virtual environment called `name` (default: if set `$PYTHON_VENV_NAME`, else + `venv`) in the current directory. -- `vrun [name]`: activate virtual environment called `name` (default: `venv`) in current directory. +- `vrun [name]`: Activate the virtual environment called `name` (default: if set `$PYTHON_VENV_NAME`, else + `venv`) in the current directory. + +- `auto_vrun`: Automatically activate the venv virtual environment when entering a directory containing + `/bin/activate`, and automatically deactivate it when navigating out of it (including + subdirectories!). + - To enable the feature, set `export PYTHON_AUTO_VRUN=true` before sourcing oh-my-zsh. + - The default virtual environment name is `venv`. To use a different name, set + `export PYTHON_VENV_NAME=`. For example: `export PYTHON_VENV_NAME=".venv"` diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 77d4bf42500a6..f6ea85027cb4d 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -51,11 +51,12 @@ alias pyserver="python3 -m http.server" ## venv utilities +: ${PYTHON_VENV_NAME:=venv} # Activate a the python virtual environment specified. -# If none specified, use 'venv'. +# If none specified, use $PYTHON_VENV_NAME, else 'venv'. function vrun() { - local name="${1:-venv}" + local name="${1:-$PYTHON_VENV_NAME}" local venvpath="${name:P}" if [[ ! -d "$venvpath" ]]; then @@ -72,12 +73,26 @@ function vrun() { echo "Activated virtual environment ${name}" } -# Create a new virtual environment, with default name 'venv'. +# Create a new virtual environment using the specified name. +# If none specfied, use $PYTHON_VENV_NAME function mkv() { - local name="${1:-venv}" + local name="${1:-$PYTHON_VENV_NAME}" local venvpath="${name:P}" python3 -m venv "${name}" || return echo >&2 "Created venv in '${venvpath}'" vrun "${name}" } + +if [[ "$PYTHON_AUTO_VRUN" == "true" ]]; then + # Automatically activate venv when changing dir + auto_vrun() { + if [[ -f "${PYTHON_VENV_NAME}/bin/activate" ]]; then + source "${PYTHON_VENV_NAME}/bin/activate" > /dev/null 2>&1 + else + (( $+functions[deactivate] )) && deactivate > /dev/null 2>&1 + fi + } + add-zsh-hook chpwd auto_vrun + auto_vrun +fi From f17aa2ffa8c12b71518f1b0233edca3a0dd7cade Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Sun, 3 Mar 2024 20:22:41 +0000 Subject: [PATCH 194/212] fix(terraform): pass `-chdir` to completion commands (#12254) --- plugins/terraform/_terraform | 166 +++++++++++++++++++---------------- 1 file changed, 91 insertions(+), 75 deletions(-) diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform index aad1c6096e376..f72f3e552a0e7 100644 --- a/plugins/terraform/_terraform +++ b/plugins/terraform/_terraform @@ -29,7 +29,7 @@ compdef _terraform terraform 'version:Show the current Terraform version' 'workspace:Workspace management' ) - if ((CURRENT == 1)); then + if (( CURRENT == 1 )); then _describe -t commands 'terraform commands' _terraform_cmds return fi @@ -38,6 +38,8 @@ compdef _terraform terraform cmd="${${_terraform_cmds[(r)$words[1]:*]%%:*}}" curcontext="${curcontext%:*:*}:terraform-${cmd}:" + local __chdir="${opt_args[-chdir]:-.}" + if (( ${+functions[_terraform_$cmd]} )); then "_terraform_${cmd}" else @@ -48,7 +50,7 @@ compdef _terraform terraform (( ${+functions[_terraform_apply]} )) || _terraform_apply() { _arguments \ '-auto-approve[Skip interactive approval of plan before applying.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-destroy[Destroy Terraform-managed infrastructure. The command "terraform destroy" is a convenience alias for this option.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ @@ -58,12 +60,12 @@ compdef _terraform terraform '-parallelism=[(10) Limit the number of parallel resource operations.]' \ '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If applying would'\''ve normally produced an update or no-op action for this instance, Terraform will replace it instead. You can use this option multiple times to replace more than one object.]:resource:__terraform_state_resources' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ - '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' \ - ':plan:_files -' + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ + ':plan:_files -W __chdir -' } (( ${+functions[_terraform_console]} )) || _terraform_console() { @@ -71,13 +73,13 @@ compdef _terraform terraform '-state=[(terraform.tfstate) Legacy option for the local backend only. See the local backend'\''s documentation for more information.]' \ '-plan[Create a new plan (as if running "terraform plan") and then evaluate expressions against its planned state, instead of evaluating against the current state. You can use this to inspect the effects of configuration changes that haven'\''t been applied yet.]' \ '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } (( ${+functions[_terraform_destroy]} )) || _terraform_destroy() { _arguments \ '-auto-approve[Skip interactive approval of plan before applying.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ @@ -85,11 +87,11 @@ compdef _terraform terraform '-no-color[If specified, output won'\''t contain any color.]' \ '-parallelism=[(10) Limit the number of parallel resource operations.]' \ '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]:refresh:(true false)' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ - '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } (( ${+functions[_terraform_fmt]} )) || _terraform_fmt() { @@ -100,7 +102,7 @@ compdef _terraform terraform '-check[Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ '-no-color[If specified, output won'\''t contain any color.]' \ '-recursive[Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' \ - '*:targets:_files -' + '*:targets:_files -W __chdir -' } (( ${+functions[_terraform_force-unlock]} )) || _terraform_force-unlock() { @@ -113,29 +115,29 @@ compdef _terraform terraform _arguments \ '-update[Check already-downloaded modules for available updates and install the newest versions available.]' \ '-no-color[Disable text coloring in the output.]' \ - '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' } (( ${+functions[_terraform_graph]} )) || _terraform_graph() { _arguments \ '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors. This option is supported only when illustrating a real evaluation graph, selected using the -type=TYPE option.]' \ '-module-depth=[(-1) (deprecated) In prior versions of Terraform, specified the depth of modules to show in the output.]' \ - '-plan=[Render graph using the specified plan file instead of the configuration in the current directory. Implies -type=apply.]:plan:_files -' \ + '-plan=[Render graph using the specified plan file instead of the configuration in the current directory. Implies -type=apply.]:plan:_files -W __chdir -' \ '-type=[(plan) Type of operation graph to output. Can be: plan, plan-refresh-only, plan-destroy, or apply. By default Terraform just summarizes the relationships between the resources in your configuration, without any particular operation in mind. Full operation graphs are more detailed but therefore often harder to read.]:type:(plan plan-refresh-only plan-destroy apply)' } (( ${+functions[_terraform_import]} )) || _terraform_import() { _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]:config:_files -/' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]:config:_files -W __chdir -/' \ '-input=[(true) Disable interactive input prompts.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-no-color[If specified, output will contain no color.]' \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ ':addr:' \ ':id:' } @@ -143,21 +145,21 @@ compdef _terraform terraform (( ${+functions[_terraform_init]} )) || _terraform_init() { _arguments \ '-backend=[(true) Disable backend or Terraform Cloud initialization for this configuration and use what was previously initialized instead.]:backend:(true false)' \ - '-backend-config=[Configuration to be merged with what is in the configuration file'\''s '\''backend'\'' block. This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a '\''key=value'\'' format, and can be specified multiple times. The backend type must be in the configuration itself.]:backend_config:_files -' \ + '-backend-config=[Configuration to be merged with what is in the configuration file'\''s '\''backend'\'' block. This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a '\''key=value'\'' format, and can be specified multiple times. The backend type must be in the configuration itself.]:backend_config:_files -W __chdir -' \ '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ - '-from-module=[Copy the contents of the given module into the target directory before initialization.]:from_module:_files -/' \ + '-from-module=[Copy the contents of the given module into the target directory before initialization.]:from_module:_files -W __chdir -/' \ '-get=[(true) Disable downloading modules for this configuration.]:get:(true false)' \ '-input=[(true) Disable interactive prompts. Note that some actions may require interactive prompts and will error if input is disabled.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during backend migration. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-no-color[If specified, output will contain no color.]' \ - '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ + '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -W __chdir -/' \ '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ '-migrate-state[Reconfigure a backend, and attempt to migrate any existing state.]' \ '-upgrade[Install the latest module and provider versions allowed within configured constraints, overriding the default behavior of selecting exactly the version recorded in the dependency lockfile.]' \ '-lockfile=[Set a dependency lockfile mode. Currently only "readonly" is valid.]:lockfile:( readonly )' \ '-ignore-remote-version[A rare option used for Terraform Cloud and the remote backend only. Set this to ignore checking that the local and remote Terraform versions use compatible state representations, making an operation proceed even when there is a potential mismatch. See the documentation on configuring Terraform with Terraform Cloud for more information.]' \ - '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' } (( ${+functions[_terraform_login]} )) || _terraform_login() { @@ -171,17 +173,22 @@ compdef _terraform terraform } (( ${+functions[_terraform_metadata]} )) || _terraform_metadata() { + _arguments \ + '*::terraform metadata command:_terraform_metadata_commands' +} + +(( ${+functions[_terraform_metadata_commands]} )) || _terraform_metadata_commands() { local -a _metadata_cmds _metadata_cmds=( 'functions:Show signatures and descriptions for the available functions' ) - if [[ "${CURRENT}" -lt 3 ]]; then + if (( CURRENT == 1 )); then _describe -t commands "terraform metadata commands" _metadata_cmds return fi local curcontext="${curcontext}" - cmd="${${_metadata_cmds[(r)$words[2]:*]%%:*}}" + cmd="${${_metadata_cmds[(r)$words[1]:*]%%:*}}" curcontext="${curcontext%:*:*}:terraform-metadata-${cmd}:" if (( ${+functions[_terraform_metadata_$cmd]} )); then @@ -193,13 +200,12 @@ compdef _terraform terraform (( ${+functions[_terraform_metadata_functions]} )) || _terraform_metadata_functions() { _arguments \ - '-json' \ - '::' + '-json[]' } (( ${+functions[_terraform_output]} )) || _terraform_output() { _arguments \ - '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate". Ignored when remote state is used.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate". Ignored when remote state is used.]:statefile:_files -W __chdir -g "*.tfstate"' \ '-no-color[If specified, output will contain no color.]' \ '-json[If specified, machine readable output will be printed in JSON format]' \ '-raw[For value types that can be automatically converted to a string, will print the raw string directly, rather than a human-oriented representation of the value.]' \ @@ -221,31 +227,32 @@ compdef _terraform terraform '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ '-refresh-only[Select the "refresh only" planning mode, which checks whether remote objects still match the outcome of the most recent Terraform apply but does not propose any actions to undo any changes made outside of Terraform.]' \ '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If the plan would'\''ve normally produced an update or no-op action for this instance, Terraform will plan to replace it instead. You can use this option multiple times to replace more than one object.]:replace:__terraform_state_resources' \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the planning operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ - '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } (( ${+functions[_terraform_providers]} )) || _terraform_providers() { + _arguments \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ + '*::terraform providers command:_terraform_providers_commands' +} + +(( ${+functions[_terraform_providers_commands]} )) || _terraform_providers_commands() { local -a _providers_cmds _providers_cmds=( 'lock:Write out dependency locks for the configured providers' 'mirror:Save local copies of all required provider plugins' 'schema:Show schemas for the providers used in the configuration' ) - - if [[ "${CURRENT}" -lt 3 ]]; then - _arguments \ - '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ - '*:: :->command' - + if (( CURRENT == 1 )); then _describe -t commands "terraform providers commands" _providers_cmds return fi local curcontext="${curcontext}" - cmd="${${_providers_cmds[(r)$words[2]:*]%%:*}}" + cmd="${${_providers_cmds[(r)$words[1]:*]%%:*}}" curcontext="${curcontext%:*:*}:terraform-providers-${cmd}:" if (( ${+functions[_terraform_providers_$cmd]} )); then @@ -257,7 +264,7 @@ compdef _terraform terraform (( ${+functions[_terraform_providers_lock]} )) || _terraform_providers_lock() { _arguments \ - '-fs-mirror=[(dir) Consult the given filesystem mirror directory instead of the origin registry for each of the given providers.]:fs_mirror:_files -/' \ + '-fs-mirror=[(dir) Consult the given filesystem mirror directory instead of the origin registry for each of the given providers.]:fs_mirror:_files -W __chdir -/' \ '-net-mirror=[(url) Consult the given network mirror (given as a base URL) instead of the origin registry for each of the given providers.]' \ '*-platform=[(os_arch) Choose a target platform to request package checksums for.]' \ '*:provider:' @@ -267,39 +274,43 @@ compdef _terraform terraform _arguments \ '*-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ '::' \ - ':target_dir:_files -/' + ':target_dir:_files -W __chdir -/' } (( ${+functions[_terraform_providers_schema]} )) || _terraform_providers_schema() { _arguments \ - '-json[]' \ - '::' + '-json[]' } (( ${+functions[_terraform_refresh]} )) || _terraform_refresh() { _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -W __chdir -g "*.backup"' \ '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ '-no-color[If specified, output will not contain any color.]' \ '-parallelism=[(10) Limit the number of parallel resource operations.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__terraform_state_resources' \ '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } (( ${+functions[_terraform_show]} )) || _terraform_show() { _arguments \ '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ '-no-color[If specified, output will not contain any color.]' \ - ':path:_files -g "*.tfstate"' + ':path:_files -W __chdir -g "*.tfstate"' } (( ${+functions[_terraform_state]} )) || _terraform_state() { + _arguments \ + '*::terraform state command:_terraform_state_commands' +} + +(( ${+functions[_terraform_state_commands]} )) || _terraform_state_commands() { local -a _state_cmds _state_cmds=( 'list:List resources in the state' @@ -310,13 +321,13 @@ compdef _terraform terraform 'rm:Remove instances from the state' 'show:Show a resource in the state' ) - if [[ "${CURRENT}" -lt 3 ]]; then + if (( CURRENT == 1 )); then _describe -t commands "terraform state commands" _state_cmds return fi local curcontext="${curcontext}" - cmd="${${_state_cmds[(r)$words[2]:*]%%:*}}" + cmd="${${_state_cmds[(r)$words[1]:*]%%:*}}" curcontext="${curcontext%:*:*}:terraform-state-${cmd}:" if (( ${+functions[_terraform_state_$cmd]} )); then @@ -328,7 +339,7 @@ compdef _terraform terraform (( ${+functions[_terraform_state_list]} )) || _terraform_state_list() { _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]:statefile:_files -g "*.tfstate"' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ '*:address:__terraform_state_resources' } @@ -336,13 +347,13 @@ compdef _terraform terraform (( ${+functions[_terraform_state_mv]} )) || _terraform_state_mv() { _arguments \ '-dry-run[If set, prints out what would'\''ve been moved but doesn'\''t actually move anything.]' \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -g "*.backup"' \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ ':source:__terraform_state_resources' \ ':destination: ' @@ -360,10 +371,10 @@ compdef _terraform terraform (( ${+functions[_terraform_state_replace-provider]} )) || _terraform_state_replace-provider() { _arguments \ '-auto-approve[Skip interactive approval.]' \ - '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ + '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -W __chdir -g "*.backup"' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ ':from_provider_fqn:' \ ':to_provider_fqn:' @@ -372,24 +383,24 @@ compdef _terraform terraform (( ${+functions[_terraform_state_rm]} )) || _terraform_state_rm() { _arguments \ '-dry-run[If set, prints out what would'\''ve been removed but doesn'\''t actually remove anything.]' \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -g "*.backup"' \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[Continue even if remote and local Terraform versions are incompatible. This may result in an unusable workspace, and should be used with extreme caution.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -g "*.tfstate"' \ + '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*:address:__terraform_state_resources' } (( ${+functions[_terraform_state_show]} )) || _terraform_state_show() { _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -W __chdir -g "*.tfstate"' \ "*:address:__terraform_state_resources" } (( ${+functions[__terraform_state_resources]} )) || __terraform_state_resources() { local resource local -a resources - terraform state list -state="${opt_args[-state]}" 2>/dev/null | while read -r resource; do + terraform -chdir="${__chdir}" state list -state="${opt_args[-state]}" 2>/dev/null | while read -r resource; do resources+=( "${resource}" ) done compadd "${@}" - "${resources[@]}" @@ -398,35 +409,35 @@ compdef _terraform terraform (( ${+functions[_terraform_taint]} )) || _terraform_taint() { _arguments \ '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*:address:__terraform_state_resources' } (( ${+functions[_terraform_test]} )) || _terraform_test() { _arguments \ '-cloud-run=[(source) If specified, Terraform will execute this test run remotely using Terraform Cloud. You must specify the source of a module registered in a private module registry as the argument to this flag. This allows Terraform to associate the cloud run with the correct Terraform Cloud module and organization.]' \ - '*-filter=[(testfile) If specified, Terraform will only execute the test files specified by this flag. You can use this option multiple times to execute more than one test file.]:testfile:_files -g "*.tftest.hcl"' \ + '*-filter=[(testfile) If specified, Terraform will only execute the test files specified by this flag. You can use this option multiple times to execute more than one test file.]:testfile:_files -W __chdir -g "*.tftest.hcl"' \ '-json[If specified, machine readable output will be printed in JSON format]' \ '-no-color[If specified, machine readable output will be printed in JSON format]' \ - '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ - '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -g "*.tfvars{,.json}"' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ '-verbose[Print the plan or state for each test run block as it executes.]' \ } (( ${+functions[_terraform_untaint]} )) || _terraform_untaint() { _arguments \ '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ ':name:__terraform_state_resources' } @@ -435,8 +446,8 @@ compdef _terraform terraform '-json[Produce output in a machine-readable JSON format, suitable for use in text editor integrations and other automated systems.]' \ '-no-color[If specified, output will not contain any color.]' \ '-no-tests[If specified, Terraform will not validate test files.]' \ - '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -/' \ - ':dir:_files -/' + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ + ':dir:_files -W __chdir -/' } (( ${+functions[_terraform_version]} )) || _terraform_version() { @@ -446,6 +457,11 @@ compdef _terraform terraform } (( ${+functions[_terraform_workspace]} )) || _terraform_workspace() { + _arguments \ + '*::terraform workspace command:_terraform_workspace_commands' +} + +(( ${+functions[_terraform_workspace_commands]} )) || _terraform_workspace_commands() { local -a _workspace_cmds _workspace_cmds=( 'delete:Delete a workspace' @@ -454,13 +470,13 @@ compdef _terraform terraform 'select:Select a workspace' 'show:Show the name of the current workspace' ) - if [[ "${CURRENT}" -lt 3 ]]; then + if (( CURRENT == 1 )); then _describe -t commands "terraform workspace commands" _workspace_cmds return fi local curcontext="${curcontext}" - cmd="${${_workspace_cmds[(r)$words[2]:*]%%:*}}" + cmd="${${_workspace_cmds[(r)$words[1]:*]%%:*}}" curcontext="${curcontext%:*:*}:terraform-workspace-${cmd}:" if (( ${+functions[_terraform_workspace_$cmd]} )); then @@ -487,7 +503,7 @@ compdef _terraform terraform _arguments \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-state=[(path) Copy an existing state file into the new workspace.]:statefile:_files -g "*.tfstate"' \ + '-state=[(path) Copy an existing state file into the new workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ ':name:' } @@ -506,7 +522,7 @@ compdef _terraform terraform (( ${+functions[__terraform_workspaces]} )) || __terraform_workspaces() { local workspace local -a workspaces - terraform workspace list | while read -r workspace; do + terraform -chdir="${__chdir}" workspace list | while read -r workspace; do if [[ -z "${workspace}" ]]; then continue fi @@ -517,7 +533,7 @@ compdef _terraform terraform _terraform() { _arguments \ - '-chdir=[(DIR) Switch to a different working directory before executing the given subcommand.]:chdir:_files -/' \ + '-chdir=[(DIR) Switch to a different working directory before executing the given subcommand.]:chdir:_files -W __chdir -/' \ '-help[Show this help output, or the help for a specified subcommand.]' \ '-version[An alias for the "version" subcommand.]' \ '*::terraform command:_terraform_commands' From da16258c5c261606d56836c0fce77188515a6c0e Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Mon, 4 Mar 2024 07:28:00 +0000 Subject: [PATCH 195/212] fix(terraform): fix completion repeating flags with value (#12256) --- plugins/terraform/_terraform | 68 ++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform index f72f3e552a0e7..15749581432e0 100644 --- a/plugins/terraform/_terraform +++ b/plugins/terraform/_terraform @@ -54,25 +54,25 @@ compdef _terraform terraform '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-destroy[Destroy Terraform-managed infrastructure. The command "terraform destroy" is a convenience alias for this option.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ '-no-color[If specified, output won'\''t contain any color.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If applying would'\''ve normally produced an update or no-op action for this instance, Terraform will replace it instead. You can use this option multiple times to replace more than one object.]:resource:__terraform_state_resources' \ '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ - '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ ':plan:_files -W __chdir -' } (( ${+functions[_terraform_console]} )) || _terraform_console() { _arguments \ - '-state=[(terraform.tfstate) Legacy option for the local backend only. See the local backend'\''s documentation for more information.]' \ + '-state=[(terraform.tfstate) Legacy option for the local backend only. See the local backend'\''s documentation for more information.]:statefile:_files -W __chdir -g "*.tfstate"' \ '-plan[Create a new plan (as if running "terraform plan") and then evaluate expressions against its planned state, instead of evaluating against the current state. You can use this to inspect the effects of configuration changes that haven'\''t been applied yet.]' \ - '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]:var:' \ '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } @@ -82,15 +82,15 @@ compdef _terraform terraform '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ '-no-color[If specified, output won'\''t contain any color.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]:refresh:(true false)' \ '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ - '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } @@ -121,7 +121,7 @@ compdef _terraform terraform (( ${+functions[_terraform_graph]} )) || _terraform_graph() { _arguments \ '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors. This option is supported only when illustrating a real evaluation graph, selected using the -type=TYPE option.]' \ - '-module-depth=[(-1) (deprecated) In prior versions of Terraform, specified the depth of modules to show in the output.]' \ + '-module-depth=[(-1) (deprecated) In prior versions of Terraform, specified the depth of modules to show in the output.]:module_depth:' \ '-plan=[Render graph using the specified plan file instead of the configuration in the current directory. Implies -type=apply.]:plan:_files -W __chdir -' \ '-type=[(plan) Type of operation graph to output. Can be: plan, plan-refresh-only, plan-destroy, or apply. By default Terraform just summarizes the relationships between the resources in your configuration, without any particular operation in mind. Full operation graphs are more detailed but therefore often harder to read.]:type:(plan plan-refresh-only plan-destroy apply)' } @@ -132,11 +132,11 @@ compdef _terraform terraform '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]:config:_files -W __chdir -/' \ '-input=[(true) Disable interactive input prompts.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-no-color[If specified, output will contain no color.]' \ '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ - '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]:var:' \ '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ ':addr:' \ ':id:' @@ -151,7 +151,7 @@ compdef _terraform terraform '-get=[(true) Disable downloading modules for this configuration.]:get:(true false)' \ '-input=[(true) Disable interactive prompts. Note that some actions may require interactive prompts and will error if input is disabled.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during backend migration. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-no-color[If specified, output will contain no color.]' \ '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -W __chdir -/' \ '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ @@ -218,18 +218,18 @@ compdef _terraform terraform '-destroy[Select the "destroy" planning mode, which creates a plan to destroy all objects currently managed by this Terraform configuration instead of the usual behavior.]' \ '-detailed-exitcode[Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ - '-generate-config-out=[(path) (Experimental) If import blocks are present in configuration, instructs Terraform to generate HCL for any imported resources not already present. The configuration is written to a new file at PATH, which must not already exist. Terraform may still attempt to write configuration if the plan errors.]' \ + '-generate-config-out=[(path) (Experimental) If import blocks are present in configuration, instructs Terraform to generate HCL for any imported resources not already present. The configuration is written to a new file at PATH, which must not already exist. Terraform may still attempt to write configuration if the plan errors.]:generate_config_out:' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-no-color[If specified, output will contain no color.]' \ - '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ + '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]:out:' \ + '-parallelism=[(10) Limit the number of concurrent operations.]:parallelism:' \ '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ '-refresh-only[Select the "refresh only" planning mode, which checks whether remote objects still match the outcome of the most recent Terraform apply but does not propose any actions to undo any changes made outside of Terraform.]' \ '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If the plan would'\''ve normally produced an update or no-op action for this instance, Terraform will plan to replace it instead. You can use this option multiple times to replace more than one object.]:replace:__terraform_state_resources' \ '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) Limit the planning operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ - '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } @@ -265,14 +265,14 @@ compdef _terraform terraform (( ${+functions[_terraform_providers_lock]} )) || _terraform_providers_lock() { _arguments \ '-fs-mirror=[(dir) Consult the given filesystem mirror directory instead of the origin registry for each of the given providers.]:fs_mirror:_files -W __chdir -/' \ - '-net-mirror=[(url) Consult the given network mirror (given as a base URL) instead of the origin registry for each of the given providers.]' \ - '*-platform=[(os_arch) Choose a target platform to request package checksums for.]' \ + '-net-mirror=[(url) Consult the given network mirror (given as a base URL) instead of the origin registry for each of the given providers.]:net_mirror:' \ + '*-platform=[(os_arch) Choose a target platform to request package checksums for.]:platform:' \ '*:provider:' } (( ${+functions[_terraform_providers_mirror]} )) || _terraform_providers_mirror() { _arguments \ - '*-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ + '*-platform=[(os_arch) Choose which target platform to build a mirror for.]:platform:' \ '::' \ ':target_dir:_files -W __chdir -/' } @@ -288,13 +288,13 @@ compdef _terraform terraform '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-no-color[If specified, output will not contain any color.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__terraform_state_resources' \ - '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]:var:' \ '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } @@ -340,7 +340,7 @@ compdef _terraform terraform (( ${+functions[_terraform_state_list]} )) || _terraform_state_list() { _arguments \ '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ - '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ + '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]:id:' \ '*:address:__terraform_state_resources' } @@ -351,7 +351,7 @@ compdef _terraform terraform '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ @@ -363,7 +363,7 @@ compdef _terraform terraform _arguments \ '-force[Write the state even if lineages don'\''t match or the remote serial is higher.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '::' \ ':destination:_files' } @@ -373,7 +373,7 @@ compdef _terraform terraform '-auto-approve[Skip interactive approval.]' \ '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -W __chdir -g "*.backup"' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ ':from_provider_fqn:' \ @@ -386,7 +386,7 @@ compdef _terraform terraform '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[Continue even if remote and local Terraform versions are incompatible. This may result in an unusable workspace, and should be used with extreme caution.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*:address:__terraform_state_resources' } @@ -412,7 +412,7 @@ compdef _terraform terraform '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ '*:address:__terraform_state_resources' @@ -420,12 +420,12 @@ compdef _terraform terraform (( ${+functions[_terraform_test]} )) || _terraform_test() { _arguments \ - '-cloud-run=[(source) If specified, Terraform will execute this test run remotely using Terraform Cloud. You must specify the source of a module registered in a private module registry as the argument to this flag. This allows Terraform to associate the cloud run with the correct Terraform Cloud module and organization.]' \ + '-cloud-run=[(source) If specified, Terraform will execute this test run remotely using Terraform Cloud. You must specify the source of a module registered in a private module registry as the argument to this flag. This allows Terraform to associate the cloud run with the correct Terraform Cloud module and organization.]:cloud_run:' \ '*-filter=[(testfile) If specified, Terraform will only execute the test files specified by this flag. You can use this option multiple times to execute more than one test file.]:testfile:_files -W __chdir -g "*.tftest.hcl"' \ '-json[If specified, machine readable output will be printed in JSON format]' \ '-no-color[If specified, machine readable output will be printed in JSON format]' \ '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ - '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ '-verbose[Print the plan or state for each test run block as it executes.]' \ } @@ -435,7 +435,7 @@ compdef _terraform terraform '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ ':name:__terraform_state_resources' @@ -490,7 +490,7 @@ compdef _terraform terraform _arguments \ '-force[Remove a workspace even if it is managing resources. Terraform can no longer track or manage the workspace'\''s infrastructure.]' \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '::' \ ':name:__terraform_workspaces' } @@ -502,7 +502,7 @@ compdef _terraform terraform (( ${+functions[_terraform_workspace_new]} )) || _terraform_workspace_new() { _arguments \ '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ '-state=[(path) Copy an existing state file into the new workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ '::' \ ':name:' From 0ea0d14288d68aba026d47517009233846c7b409 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 4 Mar 2024 10:47:34 +0100 Subject: [PATCH 196/212] fix(nvm): remove zsh completion We rely on official bash completion now on. --- plugins/nvm/_nvm | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 plugins/nvm/_nvm diff --git a/plugins/nvm/_nvm b/plugins/nvm/_nvm deleted file mode 100644 index e292a8d8c5dd4..0000000000000 --- a/plugins/nvm/_nvm +++ /dev/null @@ -1,34 +0,0 @@ -#compdef nvm -#autoload - -[[ -f "$NVM_DIR/nvm.sh" ]] || return 0 - -local -a _1st_arguments -_1st_arguments=( - 'help:show help' - '--version:print out the latest released version of nvm' - 'install:download and install a version in ' - 'install-latest-npm:download and install the latest npm version' - 'uninstall:uninstall a version' - 'use:modify PATH to use . Uses .nvmrc if available' - 'exec:run on . Uses .nvmrc if available' - 'run:run `node` on with as arguments. Uses .nvmrc if available' - 'current:list installed versions' - 'ls:list installed versions or versions matching a given description' - 'version:resolve the given description to a single local version' - 'version-remote:resolve the given description to a single remote version' - 'ls-remote:list remote versions available for install' - 'deactivate:undo effects of `nvm` on current shell' - 'alias:show or set aliases' - 'unalias:deletes an alias' - 'reinstall-packages:reinstall global `npm` packages contained in to current version' - 'unload:unload `nvm` from shell' - 'which:display path to installed node version. Uses .nvmrc if available' -) - -_arguments -C '*:: :->subcmds' && return 0 - -if (( CURRENT == 1 )); then - _describe -t commands "nvm subcommand" _1st_arguments - return -fi From 94aa49c0b96fed98d2751107301c16f32de13383 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 4 Mar 2024 11:02:37 +0100 Subject: [PATCH 197/212] feat(nvm)!: make `lazy` and `autoload` options compatible BREAKING CHANGE: Prior to this commit, if `lazy` and `autoload` options were enabled at the same time, `lazy` was getting overriden and only `autoload` was taken into account. Now they work together and `autoload` will be enabled after `nvm` has been lazy-loaded. Closes #11690 --- plugins/nvm/README.md | 3 +- plugins/nvm/nvm.plugin.zsh | 95 +++++++++++++++++++++----------------- 2 files changed, 54 insertions(+), 44 deletions(-) diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index b5ef221d31ce9..e88ce0158bbf7 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -43,8 +43,7 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ... #### `.nvmrc` autoload -Note: _this option cannot be used at the same time as `lazy`. `autoload` will override it and load `nvm` at -startup._ +Note: _if used at the same time as `lazy`, `autoload` will start working only after nvm has been lazy-loaded_ If set, the plugin will automatically load a node version when if finds a [`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 94b6661758f77..084b4846f4706 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -1,3 +1,7 @@ +# Don't try to load nvm if command already available +# Note: nvm is a function so we need to use `which` +which nvm &>/dev/null && return + # See https://github.com/nvm-sh/nvm#installation-and-update if [[ -z "$NVM_DIR" ]]; then if [[ -d "$HOME/.nvm" ]]; then @@ -12,39 +16,34 @@ if [[ -z "$NVM_DIR" ]]; then fi fi -# Don't try to load nvm if command already available -# Note: nvm is a function so we need to use `which` -which nvm &>/dev/null && return - if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then return fi -if zstyle -t ':omz:plugins:nvm' lazy && \ - ! zstyle -t ':omz:plugins:nvm' autoload; then - # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd - zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd - nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values - eval " - function $nvm_lazy_cmd { - for func in $nvm_lazy_cmd; do - if (( \$+functions[\$func] )); then - unfunction \$func - fi - done - # Load nvm if it exists in \$NVM_DIR - [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" - \"\$0\" \"\$@\" - } - " - unset nvm_lazy_cmd -else - source "$NVM_DIR/nvm.sh" -fi +function _omz_load_nvm_completion { + local _nvm_completion + # Load nvm bash completion + for _nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do + if [[ -f "$_nvm_completion" ]]; then + # Load bashcompinit + autoload -U +X bashcompinit && bashcompinit + # Bypass compinit call in nvm bash completion script. See: + # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93 + ZSH_VERSION= source "$_nvm_completion" + break + fi + done + unfunction _omz_load_nvm_completion +} + +function _omz_setup_autoload { + if ! zstyle -t ':omz:plugins:nvm' autoload; then + unfunction _omz_setup_autoload + return + fi -# Autoload nvm when finding a .nvmrc file in the current directory -# Adapted from: https://github.com/nvm-sh/nvm#zsh -if zstyle -t ':omz:plugins:nvm' autoload; then + # Autoload nvm when finding a .nvmrc file in the current directory + # Adapted from: https://github.com/nvm-sh/nvm#zsh function load-nvmrc { local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" @@ -72,18 +71,30 @@ if zstyle -t ':omz:plugins:nvm' autoload; then add-zsh-hook chpwd load-nvmrc load-nvmrc -fi - -# Load nvm bash completion -for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do - if [[ -f "$nvm_completion" ]]; then - # Load bashcompinit - autoload -U +X bashcompinit && bashcompinit - # Bypass compinit call in nvm bash completion script. See: - # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93 - ZSH_VERSION= source "$nvm_completion" - break - fi -done + unfunction _omz_setup_autoload +} -unset NVM_HOMEBREW nvm_completion +if zstyle -t ':omz:plugins:nvm' lazy; then + # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd + zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values + eval " + function $nvm_lazy_cmd { + for func in $nvm_lazy_cmd; do + if (( \$+functions[\$func] )); then + unfunction \$func + fi + done + # Load nvm if it exists in \$NVM_DIR + [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" + _omz_load_nvm_completion + _omz_setup_autoload + \"\$0\" \"\$@\" + } + " + unset nvm_lazy_cmd +else + source "$NVM_DIR/nvm.sh" + _omz_load_nvm_completion + _omz_setup_autoload +fi From fd01fd66ce27c669e5ffaea94460a37423d1e134 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Mon, 4 Mar 2024 11:08:49 +0100 Subject: [PATCH 198/212] perf(nvm): don't call `nvm version` on every cd Now we only call `nvm version` in case we changed directory and we are not anymore in a `.nvmrc` directory. See https://github.com/nvm-sh/nvm/pull/2874 --- plugins/nvm/nvm.plugin.zsh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 084b4846f4706..6a5afecfab18c 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -45,7 +45,6 @@ function _omz_setup_autoload { # Autoload nvm when finding a .nvmrc file in the current directory # Adapted from: https://github.com/nvm-sh/nvm#zsh function load-nvmrc { - local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" local nvm_silent="" zstyle -t ':omz:plugins:nvm' silent-autoload && nvm_silent="--silent" @@ -58,10 +57,8 @@ function _omz_setup_autoload { elif [[ "$nvmrc_node_version" != "$node_version" ]]; then nvm use $nvm_silent fi - elif [[ "$node_version" != "$(nvm version default)" ]]; then - if [[ -z $nvm_silent ]]; then - echo "Reverting to nvm default version" - fi + elif [[ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ]] && [[ "$(nvm version)" != "$(nvm version default)" ]]; then + [[ -z $nvm_silent ]] && echo "Reverting to nvm default version" nvm use default $nvm_silent fi From 2a71aa50170db6892abb3e173ba425c554744b37 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 7 Mar 2024 02:47:15 -0600 Subject: [PATCH 199/212] chore(gitfast): remove update script (#12262) Co-authored-by: Carlo Sala --- .github/dependencies.yml | 2 +- plugins/gitfast/README.md | 6 ------ plugins/gitfast/gitfast.plugin.zsh | 2 +- plugins/gitfast/update | 8 -------- 4 files changed, 2 insertions(+), 16 deletions(-) delete mode 100755 plugins/gitfast/update diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 12beaecbb65e8..d60ab2c92f020 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -2,7 +2,7 @@ dependencies: plugins/gitfast: repo: felipec/git-completion branch: master - version: tag:v2.0 + version: tag:v2.1 postcopy: | set -e rm -rf git-completion.plugin.zsh Makefile README.adoc t tools diff --git a/plugins/gitfast/README.md b/plugins/gitfast/README.md index fed4b120afc7b..60b84a23cccd2 100644 --- a/plugins/gitfast/README.md +++ b/plugins/gitfast/README.md @@ -7,9 +7,3 @@ To use it, add `gitfast` to the plugins array in your zshrc file: ```zsh plugins=(... gitfast) ``` - -## Aliases - -An earlier version of the plugin also loaded the git plugin. If you want to keep those -aliases enable the [git plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) -as well. diff --git a/plugins/gitfast/gitfast.plugin.zsh b/plugins/gitfast/gitfast.plugin.zsh index a6db0c6bdfc08..c456eff7f1965 100644 --- a/plugins/gitfast/gitfast.plugin.zsh +++ b/plugins/gitfast/gitfast.plugin.zsh @@ -1,6 +1,6 @@ # Handle $0 according to the standard: # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html -0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${ZERO:-${${0:#$ZSH_ARGZERO}:-${(%):-%N}}}" 0="${${(M)0:#/*}:-$PWD/$0}" source "${0:A:h}/git-prompt.sh" diff --git a/plugins/gitfast/update b/plugins/gitfast/update deleted file mode 100755 index feb13ff7ed285..0000000000000 --- a/plugins/gitfast/update +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -url="https://raw.githubusercontent.com/felipec/git-completion" -version="1.3.7" - -curl -s -o _git "${url}/v${version}/git-completion.zsh" && -curl -s -o git-completion.bash "${url}/v${version}/git-completion.bash" && -curl -s -o git-prompt.sh "${url}/v${version}/git-prompt.sh" From 4fca7ccb55eb4904f515806ffca51d27ee1cc670 Mon Sep 17 00:00:00 2001 From: Ross Williams Date: Thu, 7 Mar 2024 03:54:43 -0500 Subject: [PATCH 200/212] feat(tools): update `supports_hyperlinks` (#12258) Update to https://github.com/zkat/supports-hyperlinks/releases/tag/v3.0.0 --- tools/changelog.sh | 11 ++++++++--- tools/install.sh | 11 ++++++++--- tools/upgrade.sh | 11 ++++++++--- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/tools/changelog.sh b/tools/changelog.sh index 3ad8fe786e6d1..c4b26079e5f77 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -221,11 +221,16 @@ supports_hyperlinks() { # If $TERM_PROGRAM is set, these terminals support hyperlinks case "$TERM_PROGRAM" in - Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; esac - # kitty supports hyperlinks - if [ "$TERM" = xterm-kitty ]; then + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then return 0 fi diff --git a/tools/install.sh b/tools/install.sh index 508fc2f7739fa..e3613a28bce9c 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -166,11 +166,16 @@ supports_hyperlinks() { # If $TERM_PROGRAM is set, these terminals support hyperlinks case "$TERM_PROGRAM" in - Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; esac - # kitty supports hyperlinks - if [ "$TERM" = xterm-kitty ]; then + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then return 0 fi diff --git a/tools/upgrade.sh b/tools/upgrade.sh index f7a263d667c5d..d7016aa449ccf 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -90,11 +90,16 @@ supports_hyperlinks() { # If $TERM_PROGRAM is set, these terminals support hyperlinks case "$TERM_PROGRAM" in - Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; esac - # kitty supports hyperlinks - if [ "$TERM" = xterm-kitty ]; then + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then return 0 fi From 083cc2c8e8742bab8cce8c73a3e96f398e6b2da7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 7 Mar 2024 14:39:05 +0100 Subject: [PATCH 201/212] feat(async)!: implement async prompt API and apply to git prompt (#12257) BREAKING CHANGE: the `git_prompt_info` prompt function has been reworked by default to use the new async prompt feature. If you're experiencing issues see #12257. Co-authored-by: Carlo Sala --- lib/async_prompt.zsh | 140 +++++++++++++++++++++++++++++++++++++++++++ lib/git.zsh | 22 ++++++- 2 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 lib/async_prompt.zsh diff --git a/lib/async_prompt.zsh b/lib/async_prompt.zsh new file mode 100644 index 0000000000000..c6d03328b16f4 --- /dev/null +++ b/lib/async_prompt.zsh @@ -0,0 +1,140 @@ +# The async code is taken from +# https://github.com/zsh-users/zsh-autosuggestions/blob/master/src/async.zsh +# https://github.com/woefe/git-prompt.zsh/blob/master/git-prompt.zsh + +zmodload zsh/system + +# For now, async prompt function handlers are set up like so: +# First, define the async function handler and add the function name +# to the _omz_async_functions array: +# +# function _git_prompt_status_async { +# # Do some expensive operation that outputs to stdout +# } +# _omz_register_handler _git_prompt_status_async +# +# Then add a stub prompt function in `$PROMPT` or similar prompt variables, +# which will show the output of "$_OMZ_ASYNC_OUTPUT[handler_name]": +# +# function git_prompt_status { +# echo -n $_OMZ_ASYNC_OUTPUT[_git_prompt_status] +# } +# +# RPROMPT='$(git_prompt_status)' +# +# This API is subject to change and optimization. Rely on it at your own risk. + +function _omz_register_handler { + setopt localoptions noksharrays + typeset -ga _omz_async_functions + # we want to do nothing if there's no $1 function or we already set it up + if [[ -z "$1" ]] || (( ! ${+functions[$1]} )) \ + || (( ${_omz_async_functions[(Ie)$1]} )); then + return + fi + _omz_async_functions+=("$1") + # let's add the hook to async_request if it's not there yet + if (( ! ${precmd_functions[(Ie)_omz_async_request]} )) \ + && (( ${+functions[_omz_async_request]})); then + autoload -Uz add-zsh-hook + add-zsh-hook precmd _omz_async_request + fi +} + +# Set up async handlers and callbacks +function _omz_async_request { + typeset -gA _OMZ_ASYNC_FDS _OMZ_ASYNC_PIDS _OMZ_ASYNC_OUTPUT + + # executor runs a subshell for all async requests based on key + local handler + for handler in ${_omz_async_functions}; do + (( ${+functions[$handler]} )) || continue + + local fd=${_OMZ_ASYNC_FDS[$handler]:--1} + local pid=${_OMZ_ASYNC_PIDS[$handler]:--1} + + # If we've got a pending request, cancel it + if (( fd != -1 && pid != -1 )) && { true <&$fd } 2>/dev/null; then + # Close the file descriptor and remove the handler + exec {fd}<&- + zle -F $fd + + # Zsh will make a new process group for the child process only if job + # control is enabled (MONITOR option) + if [[ -o MONITOR ]]; then + # Send the signal to the process group to kill any processes that may + # have been forked by the async function handler + kill -TERM -$pid 2>/dev/null + else + # Kill just the child process since it wasn't placed in a new process + # group. If the async function handler forked any child processes they may + # be orphaned and left behind. + kill -TERM $pid 2>/dev/null + fi + fi + + # Define global variables to store the file descriptor, PID and output + _OMZ_ASYNC_FDS[$handler]=-1 + _OMZ_ASYNC_PIDS[$handler]=-1 + + # Fork a process to fetch the git status and open a pipe to read from it + exec {fd}< <( + # Tell parent process our PID + builtin echo ${sysparams[pid]} + # Store handler name for callback + builtin echo $handler + # Run the async function handler + $handler + ) + + # Save FD for handler + _OMZ_ASYNC_FDS[$handler]=$fd + + # There's a weird bug here where ^C stops working unless we force a fork + # See https://github.com/zsh-users/zsh-autosuggestions/issues/364 + command true + + # Save the PID from the handler child process + read pid <&$fd + _OMZ_ASYNC_PIDS[$handler]=$pid + + # When the fd is readable, call the response handler + zle -F "$fd" _omz_async_callback + done +} + +# Called when new data is ready to be read from the pipe +function _omz_async_callback() { + emulate -L zsh + + local fd=$1 # First arg will be fd ready for reading + local err=$2 # Second arg will be passed in case of error + + if [[ -z "$err" || "$err" == "hup" ]]; then + # Get handler name from first line + local handler + read handler <&$fd + + # Store old output which is supposed to be already printed + local old_output="${_OMZ_ASYNC_OUTPUT[$handler]}" + + # Read output from fd + _OMZ_ASYNC_OUTPUT[$handler]="$(cat <&$fd)" + + # Repaint prompt if output has changed + if [[ "$old_output" != "${_OMZ_ASYNC_OUTPUT[$handler]}" ]]; then + zle reset-prompt + zle -R + fi + + # Close the fd + exec {fd}<&- + fi + + # Always remove the handler + zle -F "$fd" + + # Unset global FD variable to prevent closing user created FDs in the precmd hook + _OMZ_ASYNC_FDS[$handler]=-1 + _OMZ_ASYNC_PIDS[$handler]=-1 +} diff --git a/lib/git.zsh b/lib/git.zsh index f049f73c2029e..6f48234580f6b 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -9,14 +9,18 @@ function __git_prompt_git() { GIT_OPTIONAL_LOCKS=0 command git "$@" } -function git_prompt_info() { +function _omz_git_prompt_status() { # If we are on a folder not tracked by git, get out. # Otherwise, check for hide-info at global and local repository level if ! __git_prompt_git rev-parse --git-dir &> /dev/null \ - || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then + || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then return 0 fi + # Get either: + # - the current branch name + # - the tag name if we are on a tag + # - the short SHA of the current commit local ref ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \ || ref=$(__git_prompt_git describe --tags --exact-match HEAD 2> /dev/null) \ @@ -33,6 +37,20 @@ function git_prompt_info() { echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" } +# Enable async prompt by default unless the setting is at false / no +if zstyle -T ':omz:alpha:lib:git' async-prompt; then + function git_prompt_info() { + _omz_register_handler _omz_git_prompt_status + if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" ]]; then + echo -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" + fi + } +else + function git_prompt_info() { + _omz_git_prompt_status + } +fi + # Checks if working tree is dirty function parse_git_dirty() { local STATUS From 32d4389aa6e896b27d9786d142a5c44163104056 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Thu, 7 Mar 2024 17:17:27 +0100 Subject: [PATCH 202/212] fix(git): disable temporarely async prompt --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 6f48234580f6b..8fe9990955f9e 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -38,7 +38,7 @@ function _omz_git_prompt_status() { } # Enable async prompt by default unless the setting is at false / no -if zstyle -T ':omz:alpha:lib:git' async-prompt; then +if zstyle -t ':omz:alpha:lib:git' async-prompt; then function git_prompt_info() { _omz_register_handler _omz_git_prompt_status if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" ]]; then From 06753e8146332aa787857fc5cc41caa2b5f753f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 9 Mar 2024 18:22:35 +0100 Subject: [PATCH 203/212] fix(async): register the git prompt async handler correctly (#12267) This fix conditionally registers the git prompt async handler only if `git_prompt_info` is used anywhere in the prompt variables. This is done in the proper order, so that the async request is processed once the handler has been registered. This fix also passes the return value of the previous command to each of the async handlers, in case they are needed. --- lib/async_prompt.zsh | 12 +++++++++--- lib/git.zsh | 20 +++++++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/lib/async_prompt.zsh b/lib/async_prompt.zsh index c6d03328b16f4..384e49d33e9c2 100644 --- a/lib/async_prompt.zsh +++ b/lib/async_prompt.zsh @@ -5,8 +5,8 @@ zmodload zsh/system # For now, async prompt function handlers are set up like so: -# First, define the async function handler and add the function name -# to the _omz_async_functions array: +# First, define the async function handler and register the handler +# with _omz_register_handler: # # function _git_prompt_status_async { # # Do some expensive operation that outputs to stdout @@ -17,7 +17,7 @@ zmodload zsh/system # which will show the output of "$_OMZ_ASYNC_OUTPUT[handler_name]": # # function git_prompt_status { -# echo -n $_OMZ_ASYNC_OUTPUT[_git_prompt_status] +# echo -n $_OMZ_ASYNC_OUTPUT[_git_prompt_status_async] # } # # RPROMPT='$(git_prompt_status)' @@ -43,6 +43,7 @@ function _omz_register_handler { # Set up async handlers and callbacks function _omz_async_request { + local -i ret=$? typeset -gA _OMZ_ASYNC_FDS _OMZ_ASYNC_PIDS _OMZ_ASYNC_OUTPUT # executor runs a subshell for all async requests based on key @@ -83,6 +84,8 @@ function _omz_async_request { builtin echo ${sysparams[pid]} # Store handler name for callback builtin echo $handler + # Set exit code for the handler if used + (exit $ret) # Run the async function handler $handler ) @@ -138,3 +141,6 @@ function _omz_async_callback() { _OMZ_ASYNC_FDS[$handler]=-1 _OMZ_ASYNC_PIDS[$handler]=-1 } + +autoload -Uz add-zsh-hook +add-zsh-hook precmd _omz_async_request diff --git a/lib/git.zsh b/lib/git.zsh index 8fe9990955f9e..96df5589dfb93 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -40,11 +40,29 @@ function _omz_git_prompt_status() { # Enable async prompt by default unless the setting is at false / no if zstyle -t ':omz:alpha:lib:git' async-prompt; then function git_prompt_info() { - _omz_register_handler _omz_git_prompt_status if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" ]]; then echo -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" fi } + + # Conditionally register the async handler, only if it's needed in $PROMPT + # or any of the other prompt variables + function _defer_async_git_register() { + # Check if git_prompt_info is used in a prompt variable + case "${PS1}:${PS2}:${PS3}:${PS4}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in + *(\$\(git_prompt_info\)|\`git_prompt_info\`)*) + _omz_register_handler _omz_git_prompt_status + return + ;; + esac + + add-zsh-hook -d precmd _defer_async_git_register + unset -f _defer_async_git_register + } + + # Register the async handler first. This needs to be done before + # the async request prompt is run + precmd_functions=(_defer_async_git_register $precmd_functions) else function git_prompt_info() { _omz_git_prompt_status From 4fd2af0a82e2826317d9551ecd8d5f44553828d7 Mon Sep 17 00:00:00 2001 From: Misaka Date: Sun, 10 Mar 2024 10:16:16 +0800 Subject: [PATCH 204/212] feat(fzf): add default fzf_base for msys2 (#12274) --- plugins/fzf/fzf.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index b253a23d2b9f3..7312e3d266660 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -8,6 +8,7 @@ function fzf_setup_using_base_dir() { "${HOME}/.fzf" "${HOME}/.nix-profile/share/fzf" "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" + "${MSYSTEM_PREFIX}/share/fzf" "/usr/local/opt/fzf" "/opt/homebrew/opt/fzf" "/usr/share/fzf" From 1cc41576d4d2ffe2f63bb893a40ef864dc7f2c98 Mon Sep 17 00:00:00 2001 From: webstar <814566123@qq.com> Date: Tue, 12 Mar 2024 10:43:08 +0800 Subject: [PATCH 205/212] docs(readme): add contributor list (#12236) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 98743432d5f0c..b3561a833d40b 100644 --- a/README.md +++ b/README.md @@ -449,6 +449,10 @@ Oh My Zsh has a vibrant community of happy users and delightful contributors. Wi Thank you so much! + + + + ## Follow Us We're on social media: From 4ad09ab0b10adc90730476bd27f24f93d94728ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ing=2E=20Jan=20Kal=C3=A1b?= Date: Tue, 12 Mar 2024 18:23:08 +0100 Subject: [PATCH 206/212] feat(extract): prefer using `pbzip2` instead of `bunzip2` (#12280) --- plugins/extract/extract.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 88d8b0740aca2..80ca50c504ed1 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -70,7 +70,7 @@ EOF (*.tar.lz4) lz4 -c -d "$full_path" | tar xvf - ;; (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$full_path" ;; (*.gz) (( $+commands[pigz] )) && pigz -cdk "$full_path" > "${file:t:r}" || gunzip -ck "$full_path" > "${file:t:r}" ;; - (*.bz2) bunzip2 "$full_path" ;; + (*.bz2) (( $+commands[pbzip2] )) && pbzip2 -d "$full_path" || bunzip2 "$full_path" ;; (*.xz) unxz "$full_path" ;; (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$full_path" ;; (*.lz4) lz4 -d "$full_path" ;; From 6780b19329501b66bc87274928f0a65cc7e5f473 Mon Sep 17 00:00:00 2001 From: guangwu Date: Thu, 14 Mar 2024 18:37:06 +0800 Subject: [PATCH 207/212] docs(pyenv): fix typo (#12283) --- plugins/pyenv/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pyenv/README.md b/plugins/pyenv/README.md index f1ca3d2880565..f18fc8cfb5c7e 100644 --- a/plugins/pyenv/README.md +++ b/plugins/pyenv/README.md @@ -10,7 +10,7 @@ To use it, add `pyenv` to the plugins array in your zshrc file: plugins=(... pyenv) ``` -If you receive a `Found pyenv, but it is badly configured.` error on startup, you may need to ensure that `pyenv` is initialized before the oh-my-zsh pyenv plugin is loaded. This can be achived by adding the following earlier in the `.zshrc` file than the `plugins=(...)` line: +If you receive a `Found pyenv, but it is badly configured.` error on startup, you may need to ensure that `pyenv` is initialized before the oh-my-zsh pyenv plugin is loaded. This can be achieved by adding the following earlier in the `.zshrc` file than the `plugins=(...)` line: ```zsh export PYENV_ROOT="$HOME/.pyenv" From c8ba08581dff43c18c1b0d9e7312ca32e6d97124 Mon Sep 17 00:00:00 2001 From: shuangcui Date: Fri, 15 Mar 2024 00:07:39 +0800 Subject: [PATCH 208/212] docs: fix typos (#12284) --- lib/cli.zsh | 2 +- plugins/catimg/README.md | 2 +- plugins/emacs/README.md | 2 +- plugins/emacs/emacs.plugin.zsh | 2 +- plugins/ipfs/_ipfs | 2 +- plugins/nomad/_nomad | 2 +- plugins/per-directory-history/per-directory-history.zsh | 2 +- plugins/ssh-agent/README.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/cli.zsh b/lib/cli.zsh index 561c1b98b12e5..aa36a6ab57ab4 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -448,7 +448,7 @@ function _omz::plugin::load { if [[ ! -f "$base/_$plugin" && ! -f "$base/$plugin.plugin.zsh" ]]; then _omz::log warn "'$plugin' is not a valid plugin" continue - # It it is a valid plugin, add its directory to $fpath unless it is already there + # It is a valid plugin, add its directory to $fpath unless it is already there elif (( ! ${fpath[(Ie)$base]} )); then fpath=("$base" $fpath) fi diff --git a/plugins/catimg/README.md b/plugins/catimg/README.md index 8f268805072d6..68dc33c1f429c 100644 --- a/plugins/catimg/README.md +++ b/plugins/catimg/README.md @@ -1,6 +1,6 @@ # catimg -Plugin for displaying images on the terminal using the the `catimg.sh` script provided by [posva](https://github.com/posva/catimg) +Plugin for displaying images on the terminal using the `catimg.sh` script provided by [posva](https://github.com/posva/catimg) To use it, add `catimg` to the plugins array in your zshrc file: diff --git a/plugins/emacs/README.md b/plugins/emacs/README.md index 8ed4a14733078..47c7644ab56c8 100644 --- a/plugins/emacs/README.md +++ b/plugins/emacs/README.md @@ -27,4 +27,4 @@ The plugin uses a custom launcher (which we'll call here `$EMACS_LAUNCHER`) that | eeval | `$EMACS_LAUNCHER --eval` | Same as `M-x eval` but from outside Emacs | | eframe | `emacsclient --alternate-editor="" --create-frame` | Create new X frame | | efile | - | Print the path to the file open in the current buffer | -| ecd | - | Print the directory of the file open in the the current buffer | +| ecd | - | Print the directory of the file open in the current buffer | diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 4747f035b9d5b..5aa621803aae4 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -60,7 +60,7 @@ function efile { } # Write to standard output the directory of the file -# opened in the the current buffer +# opened in the current buffer function ecd { local file file="$(efile)" || return $? diff --git a/plugins/ipfs/_ipfs b/plugins/ipfs/_ipfs index 8771bc4ba9b8e..5b8b05b98ff41 100644 --- a/plugins/ipfs/_ipfs +++ b/plugins/ipfs/_ipfs @@ -202,7 +202,7 @@ _ipfs_subcommand(){ _arguments \ '--resolve[Check if the given path can be resolved before publishing. Default: true.]' \ '(-t --lifetime)'{-t,--lifetime}'[Time duration that the record will be valid for. Default: 24h.]' \ - '--allow-offline[When offline, save the IPNS record to the the local datastore without broadcasting to the network instead of simply failing.]' \ + '--allow-offline[When offline, save the IPNS record to the local datastore without broadcasting to the network instead of simply failing.]' \ '--ttl[Time duration this record should be cached for. Uses the same syntax as the lifetime option. (caution: experimental).]' \ '(-k --key)'{-k,--key}"[Name of the key to be used or a valid PeerID, as listed by 'ipfs key list -l'. Default: self.]" \ '(-Q --quieter)'{-Q,--quieter}'[Write only final hash.]' \ diff --git a/plugins/nomad/_nomad b/plugins/nomad/_nomad index 1c935a02eac93..4c6cb2fcb0728 100644 --- a/plugins/nomad/_nomad +++ b/plugins/nomad/_nomad @@ -97,7 +97,7 @@ __run() { '-address=[(addr) The address of the Nomad server. Overrides the NOMAD_ADDR environment variable if set. Default = http://127.0.0.1:4646]' \ '-region=[(region) The region of the Nomad servers to forward commands to. Overrides the NOMAD_REGION environment variable if set. Defaults to the Agent s local region.]' \ '-no-color[Disables colored command output.]' \ - '-check-index[If set, the job is only registered or updated if the the passed job modify index matches the server side version. If a check-index value of zero is passed, the job is only registered if it does not yet exist. If a non-zero value is passed, it ensures that the job is being updated from a known state. The use of this flag is most common in conjunction with plan command.]' \ + '-check-index[If set, the job is only registered or updated if the passed job modify index matches the server side version. If a check-index value of zero is passed, the job is only registered if it does not yet exist. If a non-zero value is passed, it ensures that the job is being updated from a known state. The use of this flag is most common in conjunction with plan command.]' \ '-detach[Return immediately instead of entering monitor mode. After job submission, the evaluation ID will be printed to the screen, which can be used to examine the evaluation using the eval-status command.]' \ '-output[Output the JSON that would be submitted to the HTTP API without submitting the job.]' \ '-verbose[Show full information.]' diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index b33e0b5dd4e0e..926373ae0fe28 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -21,7 +21,7 @@ #------------------------------------------------------------------------------- # # The idea/inspiration for a per directory history is from Stewart MacArthur[1] -# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh +# and Dieter[2], the implementation idea is from Bart Schaefer on the zsh # mailing list[3]. The implementation is by Jim Hester in September 2012. # # [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html diff --git a/plugins/ssh-agent/README.md b/plugins/ssh-agent/README.md index 8c118e65bfa0a..0afa80cc87a1b 100644 --- a/plugins/ssh-agent/README.md +++ b/plugins/ssh-agent/README.md @@ -90,7 +90,7 @@ use the `ssh-add-args` setting. You can pass multiple arguments separated by spa zstyle :omz:plugins:ssh-agent ssh-add-args -K -c -a /run/user/1000/ssh-auth ``` -These will then be passed the the `ssh-add` call as if written directly. The example +These will then be passed the `ssh-add` call as if written directly. The example above will turn into: ```zsh From fff9ab7619fc26341908f63b18341f113805967a Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 15 Mar 2024 19:49:24 +0700 Subject: [PATCH 209/212] feat(dependencies): enable gradle plugin --- .github/dependencies.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/dependencies.yml b/.github/dependencies.yml index d60ab2c92f020..add39f7f30790 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -29,3 +29,10 @@ dependencies: postcopy: | set -e test -e dependencies/OMZ-README.md && cat dependencies/OMZ-README.md >> README.md + plugins/gradle: + repo: gradle/gradle-completion + branch: master + version: ea018400d86610d0f79f84debbb33c2d2ef5dbec + precopy: | + set -e + find . ! -name _gradle -delete From 8940fa29134e5b06bbe383e8f741dbe097244626 Mon Sep 17 00:00:00 2001 From: Carlo Sala Date: Fri, 15 Mar 2024 19:53:43 +0700 Subject: [PATCH 210/212] fix(dependencies): copy gradle LICENSE --- .github/dependencies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependencies.yml b/.github/dependencies.yml index add39f7f30790..98b52ffa91e3d 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -35,4 +35,4 @@ dependencies: version: ea018400d86610d0f79f84debbb33c2d2ef5dbec precopy: | set -e - find . ! -name _gradle -delete + find . ! -name _gradle ! -name LICENSE -delete From d0bddee6e3703e78f588d037078606d41a4d6237 Mon Sep 17 00:00:00 2001 From: "ohmyzsh[bot]" <54982679+ohmyzsh[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 19:55:43 +0700 Subject: [PATCH 211/212] feat(gradle): update completion to version 25da917c (#12287) Co-authored-by: ohmyzsh[bot] <54982679+ohmyzsh[bot]@users.noreply.github.com> --- .github/dependencies.yml | 2 +- plugins/gradle/LICENSE | 19 +++++++++++++++++++ plugins/gradle/_gradle | 30 +++--------------------------- 3 files changed, 23 insertions(+), 28 deletions(-) create mode 100644 plugins/gradle/LICENSE diff --git a/.github/dependencies.yml b/.github/dependencies.yml index 98b52ffa91e3d..f760ddcef802f 100644 --- a/.github/dependencies.yml +++ b/.github/dependencies.yml @@ -32,7 +32,7 @@ dependencies: plugins/gradle: repo: gradle/gradle-completion branch: master - version: ea018400d86610d0f79f84debbb33c2d2ef5dbec + version: 25da917cf5a88f3e58f05be3868a7b2748c8afe6 precopy: | set -e find . ! -name _gradle ! -name LICENSE -delete diff --git a/plugins/gradle/LICENSE b/plugins/gradle/LICENSE new file mode 100644 index 0000000000000..06edf4af2662e --- /dev/null +++ b/plugins/gradle/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2017 Eric Wendelin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/gradle/_gradle b/plugins/gradle/_gradle index f8df928b4d6c9..ca13fd0b01ea3 100644 --- a/plugins/gradle/_gradle +++ b/plugins/gradle/_gradle @@ -1,28 +1,4 @@ #compdef gradle gradlew gw -# THE LINE ABOVE MUST BE THE FIRST LINE OF THIS FILE IN ORDER FOR COMPLETION TO WORK - -# -# Taken from https://github.com/gradle/gradle-completion -# Copyright (c) 2017 Eric Wendelin -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of -# this software and associated documentation files (the "Software"), to deal in -# the Software without restriction, including without limitation the rights to -# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -# of the Software, and to permit persons to whom the Software is furnished to do -# so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# Terms __gradle-set-project-root-dir() { local dir=`pwd` @@ -38,7 +14,7 @@ __gradle-set-project-root-dir() { } __gradle-init-cache-dir() { - cache_dir="$HOME/.gradle/completion" + cache_dir="${GRADLE_USER_HOME:-$HOME/.gradle}/completion" mkdir -p $cache_dir } @@ -98,7 +74,7 @@ __gradle-generate-script-cache() { zle -R "Generating Gradle build script cache" # Cache all Gradle scripts local -a gradle_build_scripts - gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | egrep -v "$script_exclude_pattern") ) + gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | grep -E -v "$script_exclude_pattern") ) printf "%s\n" "${gradle_build_scripts[@]}" >| $cache_dir/$cache_name fi } @@ -125,7 +101,7 @@ __gradle-generate-tasks-cache() { local gradle_all_tasks="" root_tasks="" subproject_tasks="" output_line local -a match for output_line in ${(f)"$(printf "%s\n" "${gradle_tasks_output[@]}")"}; do - if [[ $output_line =~ ^([[:lower:]][[:alnum:][:punct:]]*)([[:space:]]-[[:space:]]([[:print:]]*))? ]]; then + if [[ $output_line =~ ^([[:alpha:]][[:alnum:][:punct:]]*)([[:space:]]-[[:space:]]([[:print:]]*))? ]]; then local task_name="${match[1]}" local task_description="${match[3]}" # Completion for subproject tasks with ':' prefix From 0fed36688f9a60d8b1f2182f27de7fdc8a1e6b72 Mon Sep 17 00:00:00 2001 From: Colin Barnabas <1637663+colin-barnabas@users.noreply.github.com> Date: Fri, 15 Mar 2024 21:26:48 -0700 Subject: [PATCH 212/212] fix(docker-compose): completion regression (#12288) --- plugins/docker-compose/_docker-compose | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/docker-compose/_docker-compose b/plugins/docker-compose/_docker-compose index c6b733500b319..d0ebfe515e088 100644 --- a/plugins/docker-compose/_docker-compose +++ b/plugins/docker-compose/_docker-compose @@ -128,7 +128,7 @@ __docker-compose_subcommand() { '--resolve-image-digests[Pin image tags to digests.]' \ '--services[Print the service names, one per line.]' \ '--volumes[Print the volume names, one per line.]' \ - '--hash[Print the service config hash, one per line. Set "service1,service2" for a list of specified services.]' \ && ret=0 + '--hash[Print the service config hash, one per line. Set "service1,service2" for a list of specified services.]' && ret=0 ;; (create) _arguments \

    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 rxI9p*{_ym=Zr9V$f?pZE# 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